Optional parent POM that provides shared configuration for Maven Central publishing.
Projects can optionally inherit from this parent to get pre-configured:
central-publishing-maven-pluginwithautoPublish=truemaven-gpg-pluginwith loopback pinentry for CI/CDmaven-source-pluginandmaven-javadoc-pluginflatten-maven-pluginfor CI-friendly versioningspring-javaformat-maven-pluginfor consistent code formatting
<parent>
<groupId>org.springaicommunity</groupId>
<artifactId>spring-ai-community-parent</artifactId>
<version>1.0.0</version>
</parent>Projects that cannot use parent inheritance can copy the relevant plugin configurations from this POM into their own pom.xml.
The release profile activates Maven Central publishing with GPG signing:
./mvnw deploy -PreleaseAll plugin versions are centrally managed:
| Plugin | Version |
|---|---|
| maven-compiler-plugin | 3.11.0 |
| maven-surefire-plugin | 3.1.2 |
| maven-source-plugin | 3.3.0 |
| maven-javadoc-plugin | 3.6.0 |
| maven-gpg-plugin | 3.2.7 |
| flatten-maven-plugin | 1.5.0 |
| central-publishing-maven-plugin | 0.9.0 |
| spring-javaformat-maven-plugin | 0.0.43 |
Default Java version is 17. Override with:
<properties>
<java.version>21</java.version>
</properties>For Maven Central publishing, configure these secrets:
| Secret | Description |
|---|---|
MAVEN_USERNAME |
Sonatype Portal username |
MAVEN_PASSWORD |
Sonatype Portal token |
GPG_SECRET_KEY |
ASCII-armored GPG private key |
GPG_PASSPHRASE |
GPG passphrase |
This parent POM is optional. Projects can:
- Full adoption: Inherit from parent POM
- Partial adoption: Copy specific plugin configurations
- Independent: Maintain their own complete configuration
All Spring AI Community projects work with or without this parent.