JVM | Platform | Status |
---|---|---|
OpenJDK (Temurin) Current | Linux | |
OpenJDK (Temurin) LTS | Linux | |
OpenJDK (Temurin) Current | Windows | |
OpenJDK (Temurin) LTS | Windows |
The plugin is designed to be used on the command line without any
POM configuration. The plugin currently contains a single goal: crystallize
.
Due to limitations in Maven, the crystallize
goal MUST be executed after
the Maven package
phase, in the same execution:
$ mvn package com.io7m.halite:com.io7m.halite.maven.plugin:0.0.1:crystallize
The crystallize
goal copies all of the compile and runtime dependencies
and artifacts of the current project to a specified directory. The outputDirectory
parameter specifies the output directory:
$ mvn package com.io7m.halite:com.io7m.halite.maven.plugin:0.0.1:crystallize \
-Dhalite.outputDirectory=/tmp/crystallized
...
[INFO] --- com.io7m.halite.maven.plugin:0.0.1:crystallize (default-cli) @ com.io7m.jregions ---
[INFO] included: com.io7m.jregions:com.io7m.jregions:pom:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions:pom:2.1.0-SNAPSHOT → included unconditionally
[INFO] copy com.io7m.jregions:com.io7m.jregions:pom:2.1.0-SNAPSHOT
[INFO] mkdir /tmp/crystallized
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] artifact com.io7m.jregions:com.io7m.jregions:pom:2.1.0-SNAPSHOT has no file
...
[INFO] --- com.io7m.halite.maven.plugin:0.0.1:crystallize (default-cli) @ com.io7m.jregions.generators ---
[INFO] included: com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.generators:test-jar:tests:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.junreachable:com.io7m.junreachable.core:jar:2.1.1 → included unconditionally
[INFO] included: com.io7m.jaffirm:com.io7m.jaffirm.core:jar:2.0.0 → included unconditionally
[INFO] included: net.java.quickcheck:quickcheck:jar:0.6 → included unconditionally
[INFO] included: net.java.quickcheck:quickcheck-src-generator:jar:0.6 → included unconditionally
[INFO] copy com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT
[INFO] copy com.io7m.jregions:com.io7m.jregions.generators:test-jar:tests:2.1.0-SNAPSHOT
[INFO] copy com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT
[INFO] copy com.io7m.junreachable:com.io7m.junreachable.core:jar:2.1.1
[INFO] copy com.io7m.jaffirm:com.io7m.jaffirm.core:jar:2.0.0
[INFO] copy net.java.quickcheck:quickcheck:jar:0.6
[INFO] copy net.java.quickcheck:quickcheck-src-generator:jar:0.6
[INFO] mkdir /tmp/crystallized
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.generators/target/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.generators/target/com.io7m.jregions.generators-2.1.0-SNAPSHOT-tests.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT-tests.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT-tests.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT-tests.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.core/target/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar
[INFO] mkdir /tmp/crystallized/com.io7m.junreachable
[INFO] copy /build/.m2/repository/com/io7m/junreachable/com.io7m.junreachable.core/2.1.1/com.io7m.junreachable.core-2.1.1.jar /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar.tmp /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jaffirm
[INFO] copy /build/.m2/repository/com/io7m/jaffirm/com.io7m.jaffirm.core/2.0.0/com.io7m.jaffirm.core-2.0.0.jar /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar.tmp /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar
[INFO] mkdir /tmp/crystallized/net.java.quickcheck
[INFO] copy /build/.m2/repository/net/java/quickcheck/quickcheck/0.6/quickcheck-0.6.jar /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar.tmp
[INFO] rename /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar.tmp /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar
[INFO] mkdir /tmp/crystallized/net.java.quickcheck
[INFO] copy /build/.m2/repository/net/java/quickcheck/quickcheck-src-generator/0.6/quickcheck-src-generator-0.6.jar /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar.tmp
[INFO] rename /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar.tmp /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar
...
[INFO] included: com.io7m.jregions:com.io7m.jregions.documentation:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.documentation:test-jar:tests:2.1.0-SNAPSHOT → included unconditionally
[INFO] excluded: org.immutables:value:jar:2.6.1 → scope is provided
[INFO] excluded: com.io7m.immutables.style:com.io7m.immutables.style:jar:0.0.1 → scope is provided
[INFO] included: com.io7m.jregions:com.io7m.jregions.documentation:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.junreachable:com.io7m.junreachable.core:jar:2.1.1 → included unconditionally
[INFO] included: com.io7m.jaffirm:com.io7m.jaffirm.core:jar:2.0.0 → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: net.java.quickcheck:quickcheck:jar:0.6 → included unconditionally
[INFO] included: net.java.quickcheck:quickcheck-src-generator:jar:0.6 → included unconditionally
[INFO] copy com.io7m.jregions:com.io7m.jregions.documentation:jar:2.1.0-SNAPSHOT
[INFO] copy com.io7m.jregions:com.io7m.jregions.documentation:test-jar:tests:2.1.0-SNAPSHOT
[INFO] copy com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT
[INFO] copy com.io7m.junreachable:com.io7m.junreachable.core:jar:2.1.1
[INFO] copy com.io7m.jaffirm:com.io7m.jaffirm.core:jar:2.0.0
[INFO] copy com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT
[INFO] copy net.java.quickcheck:quickcheck:jar:0.6
[INFO] copy net.java.quickcheck:quickcheck-src-generator:jar:0.6
[INFO] mkdir /tmp/crystallized
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.documentation/target/com.io7m.jregions.documentation-2.1.0-SNAPSHOT.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.documentation-2.1.0-SNAPSHOT.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.documentation-2.1.0-SNAPSHOT.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.documentation-2.1.0-SNAPSHOT.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.documentation/target/com.io7m.jregions.documentation-2.1.0-SNAPSHOT-tests.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.documentation-2.1.0-SNAPSHOT-tests.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.documentation-2.1.0-SNAPSHOT-tests.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.documentation-2.1.0-SNAPSHOT-tests.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.core/target/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar
[INFO] mkdir /tmp/crystallized/com.io7m.junreachable
[INFO] copy /build/.m2/repository/com/io7m/junreachable/com.io7m.junreachable.core/2.1.1/com.io7m.junreachable.core-2.1.1.jar /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar.tmp /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jaffirm
[INFO] copy /build/.m2/repository/com/io7m/jaffirm/com.io7m.jaffirm.core/2.0.0/com.io7m.jaffirm.core-2.0.0.jar /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar.tmp /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.generators/target/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar
[INFO] mkdir /tmp/crystallized/net.java.quickcheck
[INFO] copy /build/.m2/repository/net/java/quickcheck/quickcheck/0.6/quickcheck-0.6.jar /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar.tmp
[INFO] rename /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar.tmp /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar
[INFO] mkdir /tmp/crystallized/net.java.quickcheck
[INFO] copy /build/.m2/repository/net/java/quickcheck/quickcheck-src-generator/0.6/quickcheck-src-generator-0.6.jar /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar.tmp
[INFO] rename /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar.tmp /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar
...
[INFO] included: com.io7m.jregions:com.io7m.jregions.tests:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.tests:test-jar:tests:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.tests:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT → included unconditionally
[INFO] included: org.slf4j:slf4j-api:jar:1.8.0-beta2 → included unconditionally
[INFO] included: ch.qos.logback:logback-classic:jar:1.3.0-alpha4 → included unconditionally
[INFO] included: ch.qos.logback:logback-core:jar:1.3.0-alpha4 → included unconditionally
[INFO] included: com.sun.mail:javax.mail:jar:1.6.0 → included unconditionally
[INFO] included: javax.activation:activation:jar:1.1 → included unconditionally
[INFO] included: com.io7m.junreachable:com.io7m.junreachable.core:jar:2.1.1 → included unconditionally
[INFO] included: com.io7m.jaffirm:com.io7m.jaffirm.core:jar:2.0.0 → included unconditionally
[INFO] included: net.java.quickcheck:quickcheck:jar:0.6 → included unconditionally
[INFO] included: net.java.quickcheck:quickcheck-src-generator:jar:0.6 → included unconditionally
[INFO] included: junit:junit:jar:4.12 → included unconditionally
[INFO] included: org.hamcrest:hamcrest-core:jar:1.3 → included unconditionally
[INFO] copy com.io7m.jregions:com.io7m.jregions.tests:jar:2.1.0-SNAPSHOT
[INFO] copy com.io7m.jregions:com.io7m.jregions.tests:test-jar:tests:2.1.0-SNAPSHOT
[INFO] copy com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT
[INFO] copy com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT
[INFO] copy org.slf4j:slf4j-api:jar:1.8.0-beta2
[INFO] copy ch.qos.logback:logback-classic:jar:1.3.0-alpha4
[INFO] copy ch.qos.logback:logback-core:jar:1.3.0-alpha4
[INFO] copy com.sun.mail:javax.mail:jar:1.6.0
[INFO] copy javax.activation:activation:jar:1.1
[INFO] copy com.io7m.junreachable:com.io7m.junreachable.core:jar:2.1.1
[INFO] copy com.io7m.jaffirm:com.io7m.jaffirm.core:jar:2.0.0
[INFO] copy net.java.quickcheck:quickcheck:jar:0.6
[INFO] copy net.java.quickcheck:quickcheck-src-generator:jar:0.6
[INFO] copy junit:junit:jar:4.12
[INFO] copy org.hamcrest:hamcrest-core:jar:1.3
[INFO] mkdir /tmp/crystallized
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.tests/target/com.io7m.jregions.tests-2.1.0-SNAPSHOT.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.tests/target/com.io7m.jregions.tests-2.1.0-SNAPSHOT-tests.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT-tests.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT-tests.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT-tests.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.core/target/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jregions
[INFO] copy /build/git/com.github/io7m/jregions/com.io7m.jregions.generators/target/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar.tmp /tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar
[INFO] mkdir /tmp/crystallized/org.slf4j
[INFO] copy /build/.m2/repository/org/slf4j/slf4j-api/1.8.0-beta2/slf4j-api-1.8.0-beta2.jar /tmp/crystallized/org.slf4j/slf4j-api-1.8.0-beta2.jar.tmp
[INFO] rename /tmp/crystallized/org.slf4j/slf4j-api-1.8.0-beta2.jar.tmp /tmp/crystallized/org.slf4j/slf4j-api-1.8.0-beta2.jar
[INFO] mkdir /tmp/crystallized/ch.qos.logback
[INFO] copy /build/.m2/repository/ch/qos/logback/logback-classic/1.3.0-alpha4/logback-classic-1.3.0-alpha4.jar /tmp/crystallized/ch.qos.logback/logback-classic-1.3.0-alpha4.jar.tmp
[INFO] rename /tmp/crystallized/ch.qos.logback/logback-classic-1.3.0-alpha4.jar.tmp /tmp/crystallized/ch.qos.logback/logback-classic-1.3.0-alpha4.jar
[INFO] mkdir /tmp/crystallized/ch.qos.logback
[INFO] copy /build/.m2/repository/ch/qos/logback/logback-core/1.3.0-alpha4/logback-core-1.3.0-alpha4.jar /tmp/crystallized/ch.qos.logback/logback-core-1.3.0-alpha4.jar.tmp
[INFO] rename /tmp/crystallized/ch.qos.logback/logback-core-1.3.0-alpha4.jar.tmp /tmp/crystallized/ch.qos.logback/logback-core-1.3.0-alpha4.jar
[INFO] mkdir /tmp/crystallized/com.sun.mail
[INFO] copy /build/.m2/repository/com/sun/mail/javax.mail/1.6.0/javax.mail-1.6.0.jar /tmp/crystallized/com.sun.mail/javax.mail-1.6.0.jar.tmp
[INFO] rename /tmp/crystallized/com.sun.mail/javax.mail-1.6.0.jar.tmp /tmp/crystallized/com.sun.mail/javax.mail-1.6.0.jar
[INFO] mkdir /tmp/crystallized/javax.activation
[INFO] copy /build/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar /tmp/crystallized/javax.activation/activation-1.1.jar.tmp
[INFO] rename /tmp/crystallized/javax.activation/activation-1.1.jar.tmp /tmp/crystallized/javax.activation/activation-1.1.jar
[INFO] mkdir /tmp/crystallized/com.io7m.junreachable
[INFO] copy /build/.m2/repository/com/io7m/junreachable/com.io7m.junreachable.core/2.1.1/com.io7m.junreachable.core-2.1.1.jar /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar.tmp /tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar
[INFO] mkdir /tmp/crystallized/com.io7m.jaffirm
[INFO] copy /build/.m2/repository/com/io7m/jaffirm/com.io7m.jaffirm.core/2.0.0/com.io7m.jaffirm.core-2.0.0.jar /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar.tmp
[INFO] rename /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar.tmp /tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar
[INFO] mkdir /tmp/crystallized/net.java.quickcheck
[INFO] copy /build/.m2/repository/net/java/quickcheck/quickcheck/0.6/quickcheck-0.6.jar /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar.tmp
[INFO] rename /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar.tmp /tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar
[INFO] mkdir /tmp/crystallized/net.java.quickcheck
[INFO] copy /build/.m2/repository/net/java/quickcheck/quickcheck-src-generator/0.6/quickcheck-src-generator-0.6.jar /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar.tmp
[INFO] rename /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar.tmp /tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar
[INFO] mkdir /tmp/crystallized/junit
[INFO] copy /build/.m2/repository/junit/junit/4.12/junit-4.12.jar /tmp/crystallized/junit/junit-4.12.jar.tmp
[INFO] rename /tmp/crystallized/junit/junit-4.12.jar.tmp /tmp/crystallized/junit/junit-4.12.jar
[INFO] mkdir /tmp/crystallized/org.hamcrest
[INFO] copy /build/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar /tmp/crystallized/org.hamcrest/hamcrest-core-1.3.jar.tmp
[INFO] rename /tmp/crystallized/org.hamcrest/hamcrest-core-1.3.jar.tmp /tmp/crystallized/org.hamcrest/hamcrest-core-1.3.jar
$ find /tmp/crystallized/ -type f
/tmp/crystallized/org.hamcrest/hamcrest-core-1.3.jar
/tmp/crystallized/junit/junit-4.12.jar
/tmp/crystallized/javax.activation/activation-1.1.jar
/tmp/crystallized/com.sun.mail/javax.mail-1.6.0.jar
/tmp/crystallized/ch.qos.logback/logback-core-1.3.0-alpha4.jar
/tmp/crystallized/ch.qos.logback/logback-classic-1.3.0-alpha4.jar
/tmp/crystallized/org.slf4j/slf4j-api-1.8.0-beta2.jar
/tmp/crystallized/net.java.quickcheck/quickcheck-src-generator-0.6.jar
/tmp/crystallized/net.java.quickcheck/quickcheck-0.6.jar
/tmp/crystallized/com.io7m.jaffirm/com.io7m.jaffirm.core-2.0.0.jar
/tmp/crystallized/com.io7m.junreachable/com.io7m.junreachable.core-2.1.1.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT-tests.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.documentation-2.1.0-SNAPSHOT-tests.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.documentation-2.1.0-SNAPSHOT.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT-tests.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT-tests.jar
Sometimes it is desirable to filter the dependencies/artifacts that will be copied. The
plugin supports a flexible inclusion/exclusion mechanism to achieve this. The plugin
can accept filter files against which the full identifiers of each artifact will
be tested. A filter file is a file containing one java.util.Pattern per line. Lines beginning with the #
character are ignored.
More formally, if C
is the set of artifacts that will be copied by the plugin,
I
is the set of artifacts to be included, and X
is the set of artifacts
to be excluded then, for any given artifact a
, a ∈ C iff a ∈ I ∧ a ∉ X
.
For example, an inclusion filter file containing the following:
ch\.qos\.logback:logback-classic:jar:.*
Will result in only artifacts of type jar
, with a group
ch.qos.logback
artifact logback-classic
, and of any version,
being copied. Filter files are evaluated from top to bottom, and
the first pattern that matches will halt evaluation and cause the
artifact being tested to be included into the set of artifacts that
will be copied. The halite.inclusionListFile
parameter specifies
an inclusion filter file. If no inclusion filter file is specified,
a default filter is used that effectively includes all artifacts.
The halite.exclusionListFile
parameter specifies an exclusion
filter file that can be used to exclude artifacts. The syntax of
an exclusion filter file is identical to that of the inclusion
filter file. If a pattern in the exclusion filter file matches an
artifact, then that artifact will be excluded from copying.
As an example:
$ cat inclusion.txt
# Include all of jregions
com\.io7m\.jregions:.*
# Include the SLF4J API
org\.slf4j:.*
$ cat exclusion.txt
# Do not copy documentation
com\.io7m\.jregions:com\.io7m\.jregions\.documentation:.*
$ mvn package com.io7m.halite:com.io7m.halite.maven.plugin:0.0.1:crystallize \
-Dhalite.outputDirectory=/tmp/crystallized \
-Dhalite.inclusionListFile=inclusion.txt \
-Dhalite.exclusionListFile=exclusion.txt
$ find /tmp/crystallized/ -type f
/tmp/crystallized/org.slf4j/slf4j-api-1.8.0-beta2.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT-tests.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.tests-2.1.0-SNAPSHOT.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.generators-2.1.0-SNAPSHOT-tests.jar
/tmp/crystallized/com.io7m.jregions/com.io7m.jregions.core-2.1.0-SNAPSHOT-tests.jar
Note that artifacts in the com.io7m.jregions
and org.slf4j
groups were included,
and the com.io7m.jregions.documentation
artifact was specifically excluded.
Finally, the halite.scopes
parameter can be used to specify a comma separated list
of other scopes (such as test
or provided
scope dependencies) from which to
include dependencies. If no halite.scopes
parameter is specified, the plugin behaves
as if the user had specified compile,runtime
.
The halite.logCopies
parameter specifies a file to which the names of artifacts
that will be copied will be written. This can be used if, for some reason, you
only want to know what will be copied but want some other system to handle the
actual copying. Using the example above:
$ mvn package com.io7m.halite:com.io7m.halite.maven.plugin:0.0.1:crystallize \
-Dhalite.outputDirectory=/tmp/crystallized \
-Dhalite.inclusionListFile=inclusion.txt \
-Dhalite.exclusionListFile=exclusion.txt \
-Dhalite.logCopies=/tmp/copies.txt
$ cat /tmp/copies.txt
copy com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.core/target/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar
copy com.io7m.jregions:com.io7m.jregions.core:test-jar:tests:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.core/target/com.io7m.jregions.core-2.1.0-SNAPSHOT-tests.jar
copy com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.generators/target/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar
copy com.io7m.jregions:com.io7m.jregions.generators:test-jar:tests:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.generators/target/com.io7m.jregions.generators-2.1.0-SNAPSHOT-tests.jar
copy com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.core/target/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar
copy com.io7m.jregions:com.io7m.jregions.tests:jar:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.tests/target/com.io7m.jregions.tests-2.1.0-SNAPSHOT.jar
copy com.io7m.jregions:com.io7m.jregions.tests:test-jar:tests:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.tests/target/com.io7m.jregions.tests-2.1.0-SNAPSHOT-tests.jar
copy com.io7m.jregions:com.io7m.jregions.core:jar:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.core/target/com.io7m.jregions.core-2.1.0-SNAPSHOT.jar
copy com.io7m.jregions:com.io7m.jregions.generators:jar:2.1.0-SNAPSHOT /build/git/com.github/io7m/jregions/com.io7m.jregions.generators/target/com.io7m.jregions.generators-2.1.0-SNAPSHOT.jar
copy org.slf4j:slf4j-api:jar:1.8.0-beta2 /build/.m2/repository/org/slf4j/slf4j-api/1.8.0-beta2/slf4j-api-1.8.0-beta2.jar
The first field is always copy
, the second field is the artifact
identifier, and the third field is the absolute path to the artifact
on disk.
Finally the halite.dryRun
parameter can be used to disable the
actual copying of artifacts and/or creation of directories.