#385: Support for Maven Upload via Sonatype#637
Open
kfriedberger wants to merge 30 commits intomasterfrom
Open
#385: Support for Maven Upload via Sonatype#637kfriedberger wants to merge 30 commits intomasterfrom
kfriedberger wants to merge 30 commits intomasterfrom
Conversation
…5"), and update pom-template with text from latest release.
In Maven, Jars usually do not use "artifact" pattern for plain jars, except for cases like "source"/"javadoc".
The POM file will contain the dependencies section, and it will reference the latest versions of dependencies, not the actual dependencies.
…l in the repository, instead of updated local one.
The old script was limited to OSSRH only, which was shut down in June 2025. The updated replacement is available in build/build-maven-central.
split off retrieval of JavaSMT's own jars. use full name for components to make the script more flexible and developer friendly.
8 tasks
…ps in Maven, and update documentation
…, and update documentation.
With version 1.8.1, we can provide sources and JavaDoc. Thus, we can use JAR as default packaging type.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR provides a way to publish into Maven (Sonatype Maven Central, and will bring a solution for #385 .
During the development of this branch/PR, the several steps were performed and bugfixes applied.
This should improve the process of publishing into Maven Central,
make it easier to maintain the published artifacts in the future,
and also improve user experience for users of JavaSMT and its solvers when using Maven.
For example, we improved dependency handling for JavaSMT itself and JavaSMT's Yices2 bindings.
The artifacts are available at https://repo1.maven.org/maven2/org/sosy-lab/ .
1. Update publication script in
build/build-maven-central.xmlThe new publication script represents the migration from OSSRH to Maven Central (see #385),
and is a complete rewrite of the previous script, decommissioning the old one from 2014.
It contains documentation on how to publish into Maven Central, and the script to do so.
We also added a small test-script to locally check whether a new release
can be published into Maven Central, which is available at
build/test-maven-central.sh.2. Update all solver libraries in Maven (missing since 2025-06)
mathsat5 -> mathsat, be careful when updating your Maven project from older releases)mathsat5 -> mathsat, be careful when updating your Maven project from older releases)next version)
3. Update JavaSMT's Yices2 bindings (missing since 2025-06)
optional, will be changed with an upcoming version)optional, will be changed with an upcoming version)The POM file contains updated dependencies to all Java dependencies (they were completely missing until now)
as well as (new) an optional dependency on
javasmt-solver-yices2which is the corresponding version available in Maven Central,
and should be used by users of JavaSMT when they want to use Yices2 as a solver.
Currently, all dependencies are marked as
scope=optionalto be compatible with older releases of JavaSMT in Maven,but the Java dependencies will be changed in the next release to be non-optional (
scope=compile).4. Update JavaSMT itself (missing since 2025-06)
The POM file contains updated dependencies to all Java dependencies
as well as (new) optional dependencies for all solver-related artifacts,
i.e.,
javasmt-solver-<SOLVER>,smtinterpol, andprincess/ostrich(for the corresponding versions available in Maven Central).Previously, Java-based solvers were always included (
scope=compile), but now they are marked asscope=optional.Previously, other solvers were not mentioned at all,
making it quite difficult to search the corresponding versions for a release of JavaSMT from Ivy.
In the future, we might want to add a BOM file for JavaSMT itself,
which would make it even more convenient to use JavaSMT and its solvers in Maven projects,
but for now, the POM file should be sufficient to find the correct versions of the dependencies.