Run ./mvnw clean install to build all
Run ./mvnw clean install -pl backend to build only the backend
After build, run docker-compose up --build. This will start Tomcat with deployed applicaiton and ActiveMQ server. Start JmsTool or ActiveMQ Web Console
Run npm start in frontend/src/main/frontend for a dev server with proxy to Spring Boot. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.
Trunk-based development with releases managed via versions-maven-plugin and Git tags.
Use GitHub Actions for automated release process:
# Create and push a tag
git tag v1.7.0
git push origin v1.7.0The release workflow will:
- Update pom.xml versions
- Build and test the project
- Deploy to Maven repository
- Build and push Docker image
- Create GitHub Release
- Set next development version
For local releases:
# Set release version
./mvnw versions:set -DnewVersion=1.7.0
# Commit and push
git add pom.xml frontend/pom.xml backend/pom.xml
git commit -m "Release 1.7.0"
git push
# Build and deploy
./mvnw clean deploy
# Tag the release
git tag v1.7.0
git push --tags
# Set next development version
./mvnw versions:set -DnewVersion=1.8-SNAPSHOT
git add pom.xml frontend/pom.xml backend/pom.xml
git commit -m "Prepare for next development iteration"
git pushFor automated releases, configure these secrets in your GitHub repository:
MAVEN_USERNAME- Maven repository usernameMAVEN_PASSWORD- Maven repository passwordGPG_PRIVATE_KEY- GPG signing key for artifactsGPG_PASSPHRASE- GPG key passphraseDOCKER_USERNAME- Docker Hub usernameDOCKER_PASSWORD- Docker Hub password/token