- JDK 11+
- Gradle wrapper included (
./gradlew)
./gradlew buildSource sets include src/main/java, src/generated/java, src/sender/java, and src/test/java.
The code generator reads an IMC.xml definitions file and produces Java bindings under src/generated/.
Message definitions come from the oceanscan/imc repository, included as a git submodule under imc/. After cloning, initialise it with:
git submodule update --initUsing the default IMC submodule (imc/):
./gradlew generateUsing a custom IMC directory:
./gradlew generate -PimcDir=/path/to/imcOr use the helper script:
./update-imc.sh /path/to/imcThe target directory must contain an IMC.xml file. Archived versions are kept in conf/imc/.
The current version is set in build.gradle (version property). Update it before publishing a new release.
Print the current version:
./gradlew printVersion -q./gradlew publishToMavenLocalThis installs the artifact into ~/.m2/repository.
Requires GitHub credentials via properties or environment variables:
export GITHUB_ACTOR=<username>
export GITHUB_TOKEN=<token>
./gradlew publishMavenJavaPublicationToGitHubPackagesRepositoryA GitHub Actions workflow (.github/workflows/publish.yml) publishes automatically when a GitHub release is created or the workflow is manually triggered.
Requires OMST credentials in ~/.gradle/gradle.properties:
omst.user=your-username
omst.password=your-passwordOr as environment variables (OMST_USER, OMST_PASSWORD).
Publish to both OMST public and releases repositories:
./gradlew publishToOmstMavenThe mvn_update.sh script publishes to every configured repository (local, OMST, GitHub Packages):
./mvn_update.shgroupId: pt.lsts
artifactId: imcjava