Scala Maven Plugin
The scala-maven-plugin (previously maven-scala-plugin) is used for compiling/testing/running/documenting Scala code in Maven.
Similar plugins
Build
Currently, you need Maven 3.x & JDK 8 to build the plugin, create the site, and run integration-test
.
Commands
./mvnw package
: generate jar./mvnw site
: generate the plugin website./mvnw integration-test
:./mvnw package
+ run all integration test- note: to run
test_scalaHome
: you have to setscala.home
property insrc/it/test_scalaHome/pom.xml
to correspond to your environment. See Build section above for a simple setup.
- note: to run
./mvnw integration-test -Dinvoker.test=test1
: run integration test 'test1' (against all configuration) useful for tuning/debug./mvnw install
: ./mvnw integration-test` + publish on local maven repository./mvnw install -Dmaven.test.skip=true
: ./mvnw install` without run of unit test and run of integration test- release :
gpg --use-agent --armor --detach-sign --output $(mktemp) pom.xml
to avoid issue on macosx with gpg signature see [MGPG-59] GPG Plugin: "gpg: signing failed: Inappropriate ioctl for device" - ASF JIRA./mvnw release:clean && ./mvnw release:prepare && ./mvnw release:perform
: to publish on staging repository via plugin./mvnw release:clean && ./mvnw release:prepare -Darguments="-DskipTests -Dmaven.test.skip=true" && ./mvnw release:perform -Darguments="-DskipTests -Dmaven.test.skip=true"
to publish without tests (integration test require 30min on CI)./mvnw site package source:jar javadoc:jar install:install gpg:sign deploy:deploy changes:announcement-generate -Dmaven.test.skip=true -DperformRelease=true
: manual- connect to http://oss.sonatype.org/ close and release the request(about scala-maven-plugin) in staging repositories
- browse the updated mvnsite (check version into samples, ...)
TODO
- close issues from https://github.com/davidB/scala-maven-plugin/issues/
- refactor :
- reduce copy-paste
- file path management can be improved (a lot)
- clean the code