The following procedures are used for publishing the plugin.
GPG Signing (macOS Fix)
To avoid GPG signing issues on macOS (gpg: signing failed: Inappropriate ioctl for device), use this command to sign the pom.xml using a temporary file:
gpg --use-agent --armor --detach-sign --output $(mktemp) pom.xml
Automated Release
To publish to the staging repository using the Maven release plugin:
./mvnw release:clean && ./mvnw release:prepare && ./mvnw release:perform
To perform a release while skipping tests (recommended for faster CI cycles as integration tests can take ~30 minutes):
./mvnw release:clean && ./mvnw release:prepare -Darguments="-DskipTests -Dmaven.test.skip=true" && ./mvnw release:perform -Darguments="-DskipTests -Dmaven.test.skip=true"
Manual Release
For a manual release process:
./mvnw site package source:jar javadoc:jar install:install gpg:sign deploy:deploy changes:announcement-generate -Dmaven.test.skip=true -DperformRelease=true
Post-Release Steps
- Connect to Sonatype OSS.
- Close and release the request for
scala-maven-plugin in the staging repositories. - Verify the release by browsing the updated mvnsite.
# Automated release
./mvnw release:clean && ./mvnw release:prepare && ./mvnw release:perform
# Release without tests
./mvnw release:clean && ./mvnw release:prepare -Darguments="-DskipTests -Dmaven.test.skip=true" && ./mvnw release:perform -Darguments="-DskipTests -Dmaven.test.skip=true"