This document describes how to build, test, and release flexmark-java to the internal Antidot Maven repository hosted on GitLab.
Artifacts are published to the internal Antidot GitLab Maven registry:
https://scm.mrs.antidot.net/api/v4/projects/672/packages/maven
This is configured in the root pom.xml under <distributionManagement>.
Install Maven if needed:
brew install mavenThen in IntelliJ IDEA, right-click the root pom.xml and select Add as Maven Project. IDEA will import all 58 modules automatically.
Having both a personal and a professional GitHub account on the same machine can cause issues: SSH will use the first key available in the agent, which may not match the expected account.
A simple solution is to explicitly specify which SSH key to use via the GIT_SSH_COMMAND variable:
GIT_SSH_COMMAND='ssh -i ~/.ssh/id_ed25519_gitlab -o IdentitiesOnly=yes' git pushThis can be prepended to any git command (push, pull, fetch, etc.) without affecting the global configuration.
A GitHub Actions workflow runs on every push and on pull requests targeting master. It builds the project and runs the test suite on Java 21.
The CI does not deploy automatically — releases are triggered manually.
Maven must be able to authenticate against the Antidot GitLab Maven registry. Add a server entry to your local ~/.m2/settings.xml using a GitLab Personal Access Token with api scope:
<settings>
<servers>
<server>
<id>gitlab-maven</id>
<configuration>
<httpHeaders>
<property>
<name>Private-Token</name>
<value>YOUR_GITLAB_PERSONAL_ACCESS_TOKEN</value>
</property>
</httpHeaders>
</configuration>
</server>
</servers>
</settings>The <id> must match exactly: gitlab-maven.
The current version is defined at the top of the root pom.xml. Use the versions-maven-plugin to update all modules at once:
mvn versions:set -DnewVersion=antidot-0.64.11Review the diff, then commit:
git add pom.xml '**/pom.xml'
git commit -m "Bump version to antidot-0.64.11"mvn clean verifyMake sure all tests pass before deploying. The CI also runs mvn verify on every push to GitHub.
mvn clean deploy -DskipTestsDo not use
-Pdeploy— that profile is the original upstream Sonatype/OSS profile (GPG signing, Nexus staging) and is not intended for the Antidot internal registry.
This publishes all 58 modules to https://scm.mrs.antidot.net/api/v4/projects/672/packages/maven.
git tag antidot-0.64.11
git push origin antidot-0.64.11Two tests are intentionally disabled:
- Pegdown profile tests — skipped on Java 9+. Pegdown's underlying parser (Parboiled) relies on reflective access to JVM internals that have been restricted since Java 9, causing a runtime error. These tests only work on Java 8.
- Abbreviation/typographic quotes interaction test — marked as ignored. The test is locale-sensitive: abbreviation matching for accented characters (e.g.
É.U.) behaves inconsistently across systems due to how Java handles regex word boundaries with non-ASCII characters.