This repository has been archived by the owner on Apr 21, 2024. It is now read-only.
/
README.in
315 lines (287 loc) · 25.3 KB
/
README.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
## Usage
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
```
## Filtering
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](https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html) 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`.
## Copying
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.