Init project#
Here is a step-by-step to initialize a new project from basic-application.
This initialization is performed by a script that wraps maven-archetype-plugin and git
commands. This script is needed as maven-archetype-plugin is not able to generate a working
project. Some workaround / fixes are needed.
# ensure mvn, git and xmllint commands are installed
git clone git@github.com:igloo-project/igloo-parent.git
cd igloo-parent
git checkout dev
cd tools/igloo-project-init
hatch run igloo-project-init --check-build --igloo-branch dev \
--target-url https://HOST/group/project --target-branch main \
hello-world com.mygroup 1.0-SNAPSHOT helloworld \
HelloWorld helloWorld "Hello World" hello_world
This command creates and pushes a projet to https://HOST/group/project repository. Project
is locally built before git push.
Remove --target-url and --target-branch not to push project. Add --no-clean argument.
Project is generated in the folder pointed by the log message :
INFO:igloo:Project com.mygroup:hello-world generated into /tmp/igloo-project-init-3nq6u513/hello-world/hello-world
Use GIT_USER and GIT_PASSWORD for target repository authentication. For gitlab token access, GIT_USER can
be any not-empty value, only GIT_PASSWORD is relevant.
If errors are raised, use -v --debug.
See --help details.
Database#
Use a Docker Compose file with correct db port (<XX>32):
name: hello-world
services:
bdd:
image: "igloo-containers.tools.kobalt.fr/containers/postgres-igloo:15"
ports:
- "127.0.0.1:<XX>32:5432"
volumes:
- hello-world-bdd:/var/lib/postgresql/data
environment:
- POSTGRES_DB=hello_world
- POSTGRES_USER=hello_world
- POSTGRES_HOST_AUTH_METHOD=trust
- TZ=Europe/Paris
- PGTZ=Europe/Paris
volumes:
hello-world-bdd:
Update db port for property spring.datasource.url in configuration.properties file.
Filesystem#
sudo mkdir /data/services/hello-world
sudo chown "${USER}." /data/services/hello-world
Launch#
Launch application with de launcher from app module (cf start-class in pom.xml, e.g. basicapp.app.SpringBootMain).