Xactus is FINGO's open-source XPath 2.0 processing library based on the Eclipse's XPath 2.0 implementation from the Eclipse Web Tools Platform Project's.
Pull requests are welcome. We will respond as much as possible. For major changes please open an issue first to discuss what you would like to do.
To protect the rights of others, we use the Developer Certificate of Origin. If you want to develop the project with us, please confirm authorship by signing-off your commits. The procedure is verified using Probot: DCO.
The library is published under the Eclipse Public License v2.0 license, a copy you will find in the license file. If you received this library from another party, conditions other than those stated here might apply. Please check it with your Redistributor.
./gradlew jar
- builds the library../gradlew sourcesJar
- builds sources JAR../gradlew javadoc
- builds Javadocs../gradlew javadocJar
- builds Javadoc JAR.
./gradlew test
- run all tests excluding JUnit 3 test suites../gradlew testSuite
- runs JUnit 3 test suites only.
Xactus is using Axion Release Plugin for version management. Please refer to Axion's documentation for usage tips.
Xactus has an automated release process created with GitHub Actions. Validate and publish workflow is responsible for validating the build and releasing artifacts to Sonatype. Snapshot versions are published to the Xactus Snapshot repo and release versions go to Maven Central repository.
For every commit pushed to master a new snapshot will be published. The version for the snapshot is determined using Axion's currentVersion
Gradle task:
./gradlew cV
Release versions are automatically published whenever a release tag shows up in the repo (e.g. v1.2.3
). The release tag can be created either manually or using Axions's ./gradlew release
task:
./gradlew release
Successful test run is a prerequisite to all publications. Also be advised that both snapshot and release publications might become available with a delay (from a few minutes to a few hours after publication).
There are a few publishing targets:
-
local folder ('build/repos/releases' and 'build/repos/snapshots'):
./gradlew -Pversion=<publish version> publishToLocalRepository
-
M2 local cache:
./gradlew -Pversion=<publish version> publishToMavenLocal
-
Maven Central/Sonatype (requires OSSRH credentials to be set - see below):
./gradlew -Pversion=<publish version> publishToSonatype
Publishing tasks require some project properties to be set:
pgpSecretKey
- ascii-armored PGP secret key to sign the artifact.pgpSecretKeyPassword
- the password for the PGP secret key.pgpKeyId
(optional) - the id of the OpenPGP sub-key.
Specifying pgpSecretKey
and pgpSecretKeyPassword
causes the signing mechanism to use in-memory ascii armored keys or in-memory ascii-armored OpenPGP subkeys (when signing.pgp.keyId
is set as well).
When neither of the pgpSecretKey
and pgpSecretKeyPassword
parameters are supplied then the default set of settings is taken into account.
Command to publish Xactus to Maven Central:
./gradlew -Pversion=<publish version> publishToSonatype
You can also automatically close and release the staging repository after the release (thanks to Gradle Nexus Publish Plugin):
./gradlew -Pversion=<publish version> publishToSonatype closeAndReleaseSonatypeStagingRepository
This will publish Xactus to Maven Central automatically, without the need to use Sonatype Nexus UI.
To publish an artifact to Maven Central OSSRH credentials need to be supplied in addition to the PGP configuration:
ossrhUserName
- OSSRH username to be used to deploy the artifact.ossrhPassword
- password for the OSSRH user.