maven.scm
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> |
3 | ;;; |
4 | ;;; This file is part of GNU Guix. |
5 | ;;; |
6 | ;;; GNU Guix is free software; you can redistribute it and/or modify it |
7 | ;;; under the terms of the GNU General Public License as published by |
8 | ;;; the Free Software Foundation; either version 3 of the License, or (at |
9 | ;;; your option) any later version. |
10 | ;;; |
11 | ;;; GNU Guix is distributed in the hope that it will be useful, but |
12 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | ;;; GNU General Public License for more details. |
15 | ;;; |
16 | ;;; You should have received a copy of the GNU General Public License |
17 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
18 | |
19 | (define-module (more packages maven) |
20 | #:use-module ((guix licenses) #:prefix license:) |
21 | #:use-module (gnu packages) |
22 | #:use-module (guix packages) |
23 | #:use-module (guix download) |
24 | #:use-module (guix git-download) |
25 | #:use-module (guix svn-download) |
26 | #:use-module (guix cvs-download) |
27 | #:use-module (guix utils) |
28 | #:use-module (guix build-system ant) |
29 | #:use-module (guix build-system gnu) |
30 | #:use-module (guix build-system trivial) |
31 | #:use-module (gnu packages autotools) |
32 | #:use-module (gnu packages base) |
33 | #:use-module (gnu packages compression) |
34 | #:use-module (gnu packages docbook) |
35 | #:use-module (gnu packages groovy) |
36 | #:use-module (gnu packages java) |
37 | #:use-module (gnu packages maven) |
38 | #:use-module (gnu packages perl) |
39 | #:use-module (gnu packages web) |
40 | #:use-module (gnu packages xml) |
41 | #:use-module (more packages java)) |
42 | |
43 | (define-public java-plexus-component-metadata |
44 | (package |
45 | (inherit java-plexus-container-default) |
46 | (name "java-plexus-component-metadata") |
47 | (arguments |
48 | `(#:jar-name "plexus-component-metadata.jar" |
49 | #:source-dir "src/main/java" |
50 | #:test-dir "src/test" |
51 | #:jdk ,icedtea-8 |
52 | #:phases |
53 | (modify-phases %standard-phases |
54 | (add-before 'configure 'chdir |
55 | (lambda _ |
56 | (chdir "plexus-component-metadata"))) |
57 | (add-before 'build 'copy-resources |
58 | (lambda _ |
59 | (copy-recursively "src/main/resources" |
60 | "build/classes/") |
61 | #t))))) |
62 | (inputs |
63 | `(("java-plexus-container-default" ,java-plexus-container-default) |
64 | ("java-plexu-component-annotations" ,java-plexus-component-annotations) |
65 | ("java-plexus-utils" ,java-plexus-utils) |
66 | ("java-plexus-cli" ,java-plexus-cli) |
67 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
68 | ("maven-plugin-api" ,maven-plugin-api) |
69 | ("maven-plugin-annotations" ,maven-plugin-annotations) |
70 | ("maven-core-boot" ,maven-core-boot) |
71 | ("maven-model" ,maven-model) |
72 | ("java-commons-cli" ,java-commons-cli) |
73 | ("java-qdox" ,java-qdox) |
74 | ("java-jdom2" ,java-jdom2) |
75 | ("java-asm" ,java-asm))) |
76 | (native-inputs |
77 | `(("java-junit" ,java-junit) |
78 | ("java-guava" ,java-guava) |
79 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect))))) |
80 | |
81 | ;; Needs maven-core |
82 | (define-public maven-plugin-testing-harness |
83 | (package |
84 | (name "maven-plugin-testing-harness") |
85 | (version "3.3.0") |
86 | (source (origin |
87 | (method url-fetch) |
88 | (uri (string-append "https://archive.apache.org/dist/maven/plugin-" |
89 | "testing/maven-plugin-testing-" version |
90 | "-source-release.zip")) |
91 | (sha256 |
92 | (base32 |
93 | "15vgjar275nkz47c05mpqb4g2rha0abc752xhxcxc34z2z47z6p5")))) |
94 | (build-system ant-build-system) |
95 | (arguments |
96 | `(#:jar-name "maven-plugin-testing-harness.jar" |
97 | #:source-dir "maven-plugin-testing-harness/src/main/java" |
98 | #:jdk ,icedtea-8)) |
99 | (inputs |
100 | `(("maven-artifact" ,maven-artifact))) |
101 | (native-inputs |
102 | `(("unzip" ,unzip))) |
103 | (home-page "") |
104 | (synopsis "") |
105 | (description "") |
106 | (license license:asl2.0))) |
107 | |
108 | (define-public maven-shared-utils |
109 | (package |
110 | (name "maven-shared-utils") |
111 | (version "3.2.1") |
112 | (source (origin |
113 | (method url-fetch) |
114 | (uri (string-append "https://archive.apache.org/dist/maven/shared/" |
115 | "maven-shared-utils-" version "-source-release.zip")) |
116 | (sha256 |
117 | (base32 |
118 | "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6")))) |
119 | (build-system ant-build-system) |
120 | (arguments |
121 | `(#:jar-name "maven-shared-utils.jar" |
122 | #:source-dir "src/main/java" |
123 | #:jdk ,icedtea-8 |
124 | #:phases |
125 | (modify-phases %standard-phases |
126 | (add-before 'check 'remove-cyclic-dep |
127 | (lambda _ |
128 | (delete-file "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java") |
129 | #t))))) |
130 | (inputs |
131 | `(("java-jansi" ,java-jansi) |
132 | ("java-commons-io" ,java-commons-io) |
133 | ("java-jsr305" ,java-jsr305) |
134 | ("java-plexus-container-default" ,java-plexus-container-default))) |
135 | (native-inputs |
136 | `(("unzip" ,unzip) |
137 | ("java-junit" ,java-junit) |
138 | ("java-hamcrest-core" ,java-hamcrest-core) |
139 | ("java-commons-lang3" ,java-commons-lang3))) |
140 | (home-page "") |
141 | (synopsis "") |
142 | (description "") |
143 | (license license:asl2.0))) |
144 | |
145 | (define-public maven |
146 | (package |
147 | (name "maven") |
148 | (version "3.5.3") |
149 | (source (origin |
150 | (method url-fetch) |
151 | (uri (string-append "https://archive.apache.org/dist/maven/" |
152 | "maven-3/" version "/source/" |
153 | "apache-maven-" version "-src.tar.gz")) |
154 | (sha256 (base32 "06by23fz207lkvsndq883irfcf4p77jzkgf7n2q7hzyw1hs4h5s7")) |
155 | (modules '((guix build utils))) |
156 | (snippet |
157 | '(begin |
158 | (for-each delete-file (find-files "." "\\.jar$")) |
159 | #t)) |
160 | (patches |
161 | (search-patches "maven-generate-component-xml.patch" |
162 | "maven-generate-javax-inject-named.patch")))) |
163 | (build-system ant-build-system) |
164 | (arguments |
165 | `(#:phases |
166 | (modify-phases %standard-phases |
167 | (replace 'build |
168 | (lambda _ |
169 | (substitute* "apache-maven/src/bin/mvn" |
170 | (("cygwin=false;") |
171 | (string-append |
172 | "CLASSPATH=" (getenv "CLASSPATH") "\n" |
173 | "cygwin=false;")) |
174 | (("-classpath.*") "-classpath ${CLASSPATH} \\\n")))) |
175 | (delete 'check) |
176 | (replace 'install |
177 | (lambda* (#:key outputs #:allow-other-keys) |
178 | (let ((bin (string-append (assoc-ref outputs "out") "/bin/")) |
179 | (conf (string-append (assoc-ref outputs "out") "/conf/"))) |
180 | (mkdir-p (string-append (assoc-ref outputs "out") "/lib")) |
181 | (for-each (lambda (file) |
182 | (install-file (string-append "apache-maven/src/bin/" file) |
183 | bin) |
184 | (chmod (string-append bin file) #o755)) |
185 | '("mvn" "mvnDebug" "mvnyjp")) |
186 | (install-file "apache-maven/src/bin/m2.conf" bin) |
187 | (copy-recursively "apache-maven/src/conf" conf))))))) |
188 | (inputs |
189 | `(("java-plexus-classworlds" ,java-plexus-classworlds) |
190 | ("maven-artifact" ,maven-artifact) |
191 | ("maven-embedder" ,maven-embedder) |
192 | ("maven-core" ,maven-core) |
193 | ("maven-compat" ,maven-compat) |
194 | ("maven-builder-support" ,maven-builder-support) |
195 | ("maven-model" ,maven-model) |
196 | ("maven-model-builder" ,maven-model-builder) |
197 | ("maven-settings" ,maven-settings) |
198 | ("maven-settings-builder" ,maven-settings-builder) |
199 | ("maven-plugin-api" ,maven-plugin-api) |
200 | ("maven-repository-metadata", maven-repository-metadata) |
201 | ("maven-shared-utils" ,maven-shared-utils) |
202 | ("maven-resolver-api" ,maven-resolver-api) |
203 | ("maven-resolver-spi" ,maven-resolver-spi) |
204 | ("maven-resolver-util" ,maven-resolver-util) |
205 | ("maven-resolver-impl" ,maven-resolver-impl) |
206 | ("maven-resolver-connector-basic" ,maven-resolver-connector-basic) |
207 | ("maven-resolver-provider" ,maven-resolver-provider) |
208 | ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon) |
209 | ("maven-wagon-provider-api" ,maven-wagon-provider-api) |
210 | ("maven-wagon-file" ,maven-wagon-file) |
211 | ("maven-wagon-http" ,maven-wagon-http) |
212 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) |
213 | ("java-httpcomponents-client" ,java-httpcomponents-client) |
214 | ("java-httpcomponents-core" ,java-httpcomponents-core) |
215 | ("maven-wagon-http-shared" ,maven-wagon-http-shared) |
216 | ("maven-wagon-tck-http" ,maven-wagon-tck-http) |
217 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
218 | ("java-guice" ,java-guice) |
219 | ("java-aopalliance" ,java-aopalliance) |
220 | ("java-cglib" ,java-cglib) |
221 | ("java-asm" ,java-asm) |
222 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
223 | ("java-javax-inject" ,java-javax-inject) |
224 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
225 | ("java-plexus-utils" ,java-plexus-utils) |
226 | ("java-plexus-interpolation" ,java-plexus-interpolation) |
227 | ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) |
228 | ("java-plexus-cipher" ,java-plexus-cipher) |
229 | ("java-guava" ,java-guava) |
230 | ("java-jansi" ,java-jansi) |
231 | ("java-jsr250" ,java-jsr250) |
232 | ("java-cdi-api" ,java-cdi-api) |
233 | ("java-commons-cli" ,java-commons-cli) |
234 | ("java-commons-io" ,java-commons-io) |
235 | ("java-commons-lang3" ,java-commons-lang3) |
236 | ("java-slf4j-api" ,java-slf4j-api) |
237 | ;; TODO: replace with maven-slf4j-provider |
238 | ("java-slf4j-simple" ,java-slf4j-simple))) |
239 | (home-page "") |
240 | (synopsis "") |
241 | (description "") |
242 | (license license:asl2.0))) |
243 | |
244 | (define-public maven-artifact |
245 | (package |
246 | (inherit maven) |
247 | (name "maven-artifact") |
248 | (arguments |
249 | `(#:jar-name "maven-artifact.jar" |
250 | #:source-dir "maven-artifact/src/main/java" |
251 | #:test-dir "maven-artifact/src/test" |
252 | #:main-class "org.apache.maven.artifact.versioning.ComparableVersion")) |
253 | (inputs |
254 | `(("java-plexus-utils" ,java-plexus-utils) |
255 | ("java-commons-lang3" ,java-commons-lang3))) |
256 | (native-inputs |
257 | `(("java-junit" ,java-junit))))) |
258 | |
259 | (define-public maven-model |
260 | (package |
261 | (inherit maven) |
262 | (name "maven-model") |
263 | (arguments |
264 | `(#:jar-name "maven-model.jar" |
265 | #:source-dir "maven-model/src/main/java" |
266 | #:test-dir "maven-model/src/test" |
267 | #:jdk ,icedtea-8 |
268 | #:phases |
269 | (modify-phases %standard-phases |
270 | (add-before 'build 'generate-models |
271 | (lambda* (#:key inputs #:allow-other-keys) |
272 | (define (modello-single-mode file version mode) |
273 | (zero? (system* "java" |
274 | "org.codehaus.modello.ModelloCli" |
275 | file mode "maven-model/src/main/java" version |
276 | "false" "true"))) |
277 | (let ((file "maven-model/src/main/mdo/maven.mdo")) |
278 | (and |
279 | (modello-single-mode file "4.0.0" "java") |
280 | (modello-single-mode file "4.0.0" "xpp3-reader") |
281 | (modello-single-mode file "4.0.0" "xpp3-writer") |
282 | (modello-single-mode file "4.0.0" "xpp3-extended-reader")))))))) |
283 | (inputs |
284 | `(("java-commons-lang3" ,java-commons-lang3) |
285 | ("java-plexus-utils" ,java-plexus-utils))) |
286 | (native-inputs |
287 | `(("java-modello-core" ,java-modello-core) |
288 | ;; for modello: |
289 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
290 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
291 | ("java-guice" ,java-guice) |
292 | ("java-cglib" ,java-cglib) |
293 | ("java-asm" ,java-asm) |
294 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
295 | ("java-javax-inject" ,java-javax-inject) |
296 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
297 | ("java-guava" ,java-guava) |
298 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
299 | ("java-sisu-build-api" ,java-sisu-build-api) |
300 | ;; modello plugins: |
301 | ("java-modello-plugins-java" ,java-modello-plugins-java) |
302 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) |
303 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) |
304 | ;; for tests |
305 | ("java-junit" ,java-junit))))) |
306 | |
307 | (define-public maven-settings |
308 | (package |
309 | (inherit maven) |
310 | (name "maven-settings") |
311 | (arguments |
312 | `(#:jar-name "maven-settings.jar" |
313 | #:source-dir "maven-settings/src/main/java" |
314 | #:jdk ,icedtea-8 |
315 | #:tests? #f; no tests |
316 | #:phases |
317 | (modify-phases %standard-phases |
318 | (add-before 'build 'generate-models |
319 | (lambda* (#:key inputs #:allow-other-keys) |
320 | (define (modello-single-mode file version mode) |
321 | (zero? (system* "java" |
322 | "org.codehaus.modello.ModelloCli" |
323 | file mode "maven-settings/src/main/java" version |
324 | "false" "true"))) |
325 | (let ((file "maven-settings/src/main/mdo/settings.mdo")) |
326 | (and |
327 | (modello-single-mode file "1.1.0" "java") |
328 | (modello-single-mode file "1.1.0" "xpp3-reader") |
329 | (modello-single-mode file "1.1.0" "xpp3-writer")))))))) |
330 | (inputs '()) |
331 | (native-inputs |
332 | `(("java-modello-core" ,java-modello-core) |
333 | ;; for modello: |
334 | ;("container" ,java-plexus-container-default) |
335 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
336 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
337 | ("java-guice" ,java-guice) |
338 | ("java-cglib" ,java-cglib) |
339 | ("java-asm" ,java-asm) |
340 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
341 | ("java-javax-inject" ,java-javax-inject) |
342 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
343 | ("java-plexus-utils" ,java-plexus-utils) |
344 | ("java-guava" ,java-guava) |
345 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
346 | ("java-sisu-build-api" ,java-sisu-build-api) |
347 | ;; modello plugins: |
348 | ("java-modello-plugins-java" ,java-modello-plugins-java) |
349 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) |
350 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3))))) |
351 | |
352 | (define-public maven-builder-support |
353 | (package |
354 | (inherit maven) |
355 | (name "maven-builder-support") |
356 | (arguments |
357 | `(#:jar-name "maven-builder-support.jar" |
358 | #:source-dir "maven-builder-support/src/main/java" |
359 | #:jdk ,icedtea-8 |
360 | #:test-dir "maven-builder-support/src/test" |
361 | #:phases |
362 | (modify-phases %standard-phases |
363 | (add-before 'check 'fix-paths |
364 | (lambda _ |
365 | (substitute* '("maven-builder-support/src/test/java/org/apache/maven/building/FileSourceTest.java" |
366 | "maven-builder-support/src/test/java/org/apache/maven/building/UrlSourceTest.java") |
367 | (("target/test-classes") "maven-builder-support/src/test/resources")) |
368 | #t))))) |
369 | (inputs |
370 | `(("java-plexus-utils" ,java-plexus-utils) |
371 | ("java-commons-lang3" ,java-commons-lang3))) |
372 | (native-inputs |
373 | `(("java-junit" ,java-junit) |
374 | ("java-hamcrest-core" ,java-hamcrest-core))))) |
375 | |
376 | (define-public maven-settings-builder |
377 | (package |
378 | (inherit maven) |
379 | (name "maven-settings-builder") |
380 | (arguments |
381 | `(#:jar-name "maven-settings-builder.jar" |
382 | #:source-dir "maven-settings-builder/src/main/java" |
383 | #:jdk ,icedtea-8 |
384 | #:test-dir "maven-settings-builder/src/test" |
385 | #:phases |
386 | (modify-phases %standard-phases |
387 | (add-before 'build 'generate-components.xml |
388 | (lambda _ |
389 | (mkdir-p "build/classes/META-INF/plexus") |
390 | (chmod "components.sh" #o755) |
391 | (zero? (system* "./components.sh" "maven-settings-builder/src/main/java" |
392 | "build/classes/META-INF/plexus/components.xml"))))))) |
393 | (inputs |
394 | `(("java-plexus-utils" ,java-plexus-utils) |
395 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
396 | ("java-plexus-interpolation" ,java-plexus-interpolation) |
397 | ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) |
398 | ("maven-builder-support" ,maven-builder-support) |
399 | ("maven-settings" ,maven-settings) |
400 | ("java-commons-lang3" ,java-commons-lang3))) |
401 | (native-inputs |
402 | `(("java-junit" ,java-junit))))) |
403 | |
404 | (define-public maven-plugin-api |
405 | (package |
406 | (inherit maven) |
407 | (name "maven-plugin-api") |
408 | (arguments |
409 | `(#:jar-name "maven-plugin-api.jar" |
410 | #:source-dir "maven-plugin-api/src/main/java" |
411 | #:jdk ,icedtea-8 |
412 | #:test-dir "maven-plugin-api/src/test" |
413 | #:phases |
414 | (modify-phases %standard-phases |
415 | (add-before 'build 'generate-models |
416 | (lambda* (#:key inputs #:allow-other-keys) |
417 | (define (modello-single-mode file version mode) |
418 | (zero? (system* "java" |
419 | "org.codehaus.modello.ModelloCli" |
420 | file mode "maven-plugin-api/src/main/java" version |
421 | "false" "true"))) |
422 | (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo")) |
423 | (and |
424 | (modello-single-mode file "1.0.0" "java") |
425 | (modello-single-mode file "1.0.0" "xpp3-reader") |
426 | (modello-single-mode file "1.0.0" "xpp3-writer")))))))) |
427 | (inputs |
428 | `(("maven-artifact" ,maven-artifact) |
429 | ("maven-model" ,maven-model) |
430 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
431 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
432 | ("guice" ,java-guice) |
433 | ("java-cglib" ,java-cglib) |
434 | ("java-asm" ,java-asm) |
435 | ("sisu-inject" ,java-eclipse-sisu-inject) |
436 | ("javax-inject" ,java-javax-inject) |
437 | ("utils" ,java-plexus-utils))) |
438 | (native-inputs |
439 | `(("modello" ,java-modello-core) |
440 | ;; for modello: |
441 | ("classworlds" ,java-plexus-classworlds) |
442 | ("guava" ,java-guava) |
443 | ("xbean" ,java-geronimo-xbean-reflect) |
444 | ("build-api" ,java-sisu-build-api) |
445 | ;; modello plugins: |
446 | ("java" ,java-modello-plugins-java) |
447 | ("xml" ,java-modello-plugins-xml) |
448 | ("xpp3" ,java-modello-plugins-xpp3) |
449 | ;; for tests |
450 | ("java-junit" ,java-junit))))) |
451 | |
452 | (define-public maven-model-builder |
453 | (package |
454 | (inherit maven) |
455 | (name "maven-model-builder") |
456 | (arguments |
457 | `(#:jar-name "maven-model-builder.jar" |
458 | #:source-dir "maven-model-builder/src/main/java" |
459 | #:jdk ,icedtea-8 |
460 | #:test-dir "maven-model-builder/src/test" |
461 | #:phases |
462 | (modify-phases %standard-phases |
463 | (add-before 'build 'copy-resources |
464 | (lambda _ |
465 | (copy-recursively "maven-model-builder/src/main/resources" |
466 | "build/classes"))) |
467 | (add-before 'build 'generate-components.xml |
468 | (lambda _ |
469 | (mkdir-p "build/classes/META-INF/plexus") |
470 | (chmod "components.sh" #o755) |
471 | (zero? (system* "./components.sh" "maven-model-builder/src/main/java" |
472 | "build/classes/META-INF/plexus/components.xml")))) |
473 | (add-before 'check 'fix-paths |
474 | (lambda _ |
475 | (substitute* (find-files "maven-model-builder/src/test/java" ".*.java") |
476 | (("src/test") "maven-model-builder/src/test")) |
477 | #t))))) |
478 | (inputs |
479 | `(("model" ,maven-model) |
480 | ("artifact" ,maven-artifact) |
481 | ("support" ,maven-builder-support) |
482 | ("annotations" ,java-plexus-component-annotations) |
483 | ("utils" ,java-plexus-utils) |
484 | ("interpolation" ,java-plexus-interpolation) |
485 | ("lang3" ,java-commons-lang3) |
486 | ("guava" ,java-guava))) |
487 | (native-inputs |
488 | `(("java-junit" ,java-junit) |
489 | ("java-hamcrest-core" ,java-hamcrest-core) |
490 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
491 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
492 | ("guice" ,java-guice) |
493 | ("java-cglib" ,java-cglib) |
494 | ("java-asm" ,java-asm) |
495 | ("sisu-inject" ,java-eclipse-sisu-inject) |
496 | ("javax-inject" ,java-javax-inject) |
497 | ("xmlunit" ,java-xmlunit) |
498 | ("xmlunit" ,java-xmlunit-legacy) |
499 | ("xbean" ,java-geronimo-xbean-reflect) |
500 | ("classworlds" ,java-plexus-classworlds))))) |
501 | |
502 | (define-public maven-repository-metadata |
503 | (package |
504 | (inherit maven) |
505 | (name "maven-repository-metadata") |
506 | (arguments |
507 | `(#:jar-name "maven-repository-metadata.jar" |
508 | #:source-dir "maven-repository-metadata/src/main/java" |
509 | #:jdk ,icedtea-8 |
510 | #:tests? #f; no tests |
511 | #:phases |
512 | (modify-phases %standard-phases |
513 | (add-before 'build 'generate-models |
514 | (lambda* (#:key inputs #:allow-other-keys) |
515 | (define (modello-single-mode file version mode) |
516 | (zero? (system* "java" |
517 | "org.codehaus.modello.ModelloCli" |
518 | file mode "maven-repository-metadata/src/main/java" version |
519 | "false" "true"))) |
520 | (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo")) |
521 | (and |
522 | (modello-single-mode file "1.1.0" "java") |
523 | (modello-single-mode file "1.1.0" "xpp3-reader") |
524 | (modello-single-mode file "1.1.0" "xpp3-writer")))))))) |
525 | (inputs '()) |
526 | (native-inputs |
527 | `(("modello" ,java-modello-core) |
528 | ;; for modello: |
529 | ;("container" ,java-plexus-container-default) |
530 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
531 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
532 | ("java-guice" ,java-guice) |
533 | ("java-cglib" ,java-cglib) |
534 | ("java-asm" ,java-asm) |
535 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
536 | ("java-javax-inject" ,java-javax-inject) |
537 | ("java-plexus-utils" ,java-plexus-utils) |
538 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
539 | ("java-guava" ,java-guava) |
540 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
541 | ("java-sisu-build-api" ,java-sisu-build-api) |
542 | ;; modello plugins: |
543 | ("java-modello-plugins-java" ,java-modello-plugins-java) |
544 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) |
545 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) |
546 | ;; for tests |
547 | ("java-junit" ,java-junit))))) |
548 | |
549 | ;; In case of "null returned by binding at org.eclipse.sisu.wire.LocatorWiring" |
550 | ;; this package is the probably the culprit. Check it contains a |
551 | ;; META-INF/plexus/components.xml that makes sense. |
552 | (define-public maven-resolver-provider |
553 | (package |
554 | (inherit maven) |
555 | (name "maven-resolver-provider") |
556 | (arguments |
557 | `(#:jar-name "maven-resolver-provider.jar" |
558 | #:source-dir "maven-resolver-provider/src/main/java" |
559 | #:test-dir "maven-resolver-provider/src/test" |
560 | #:jdk ,icedtea-8 |
561 | #:tests? #f; dependency loop on maven-core (@Component RepositorySystem) |
562 | #:phases |
563 | (modify-phases %standard-phases |
564 | (add-before 'build 'generate-sisu-named |
565 | (lambda _ |
566 | (mkdir-p "build/classes/META-INF/sisu") |
567 | (chmod "./sisu.sh" #o755) |
568 | (zero? (system* "./sisu.sh" "maven-resolver-provider/src/main/java" |
569 | "build/classes/META-INF/sisu/javax.inject.Named"))))))) |
570 | (inputs |
571 | `(("maven-resolver-spi" ,maven-resolver-spi) |
572 | ("maven-resolver-api" ,maven-resolver-api) |
573 | ("maven-resolver-impl" ,maven-resolver-impl) |
574 | ("maven-resolver-util" ,maven-resolver-util) |
575 | ("maven-model" ,maven-model) |
576 | ("maven-model-builder" ,maven-model-builder) |
577 | ("maven-builder-support" ,maven-builder-support) |
578 | ("maven-repository-metadata" ,maven-repository-metadata) |
579 | ("java-plexus-utils" ,java-plexus-utils) |
580 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
581 | ("java-commons-lang3" ,java-commons-lang3) |
582 | ("java-guice" ,java-guice) |
583 | ("java-guava" ,java-guava) |
584 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
585 | ("java-javax-inject" ,java-javax-inject))))) |
586 | |
587 | ;(define-public maven-resolver-provider |
588 | ; (package |
589 | ; (inherit maven-resolver-provider-boot) |
590 | ; (arguments |
591 | ; `(#:jar-name "maven-resolver-provider.jar" |
592 | ; #:source-dir "src/main/java" |
593 | ; #:jdk ,icedtea-8 |
594 | ; #:test-exclude (list "**/DefaultArtifactDescriptorReaderTest.java") |
595 | ; #:phases |
596 | ; (modify-phases %standard-phases |
597 | ; (add-before 'configure 'chdir |
598 | ; (lambda _ |
599 | ; ;; Tests assume we're in this directory |
600 | ; (chdir "maven-resolver-provider"))) |
601 | ; (add-before 'build 'generate-components.xml |
602 | ; (lambda _ |
603 | ; (mkdir-p "build/classes/META-INF/plexus") |
604 | ; (chmod "../components.sh" #o755) |
605 | ; (zero? (system* "../components.sh" "src/main/java" |
606 | ; "build/classes/META-INF/plexus/components.xml")))) |
607 | ; (add-before 'check 'fix-assumptions |
608 | ; (lambda _ |
609 | ; ;; Errors about the version of some files |
610 | ; (substitute* "src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java" |
611 | ; (("20130404.090532-2") "SNAPSHOT"))))))) |
612 | ; ;(add-before 'check 'copy-test-classes |
613 | ; ; (lambda _ |
614 | ; ; (system* "ant" "compile-tests") |
615 | ; ; (mkdir-p "target/test-classes") |
616 | ; ; (copy-recursively "build/test-classes" "target/test-classes") |
617 | ; ; ;(copy-recursively "src/test/resources/repo" "target/test-classes/repo") |
618 | ; ; #t))))) |
619 | ; (native-inputs |
620 | ; `(;; For building tests: |
621 | ; ("maven-core" ,maven-core-boot) |
622 | ; ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
623 | ; ("java-junit" ,java-junit) |
624 | ; ("java-mockito-1" ,java-mockito-1) |
625 | ; ;; For running tests: |
626 | ; ("java-hamcrest-core" ,java-hamcrest-core) |
627 | ; ("aop" ,java-aopalliance) |
628 | ; ("classworlds" ,java-plexus-classworlds) |
629 | ; ("plugin" ,maven-plugin-api) |
630 | ; ("java-cglib" ,java-cglib) |
631 | ; ("java-asm" ,java-asm) |
632 | ; ("interpolation" ,java-plexus-interpolation) |
633 | ; ("artifact" ,maven-artifact) |
634 | ; ("java-objenesis" ,java-objenesis) |
635 | ; ("transport-wagon" ,maven-resolver-transport-wagon) |
636 | ; ("wagon-file" ,maven-wagon-file) |
637 | ; ("wagon-api" ,maven-wagon-provider-api) |
638 | ; ("connector-basic" ,maven-resolver-connector-basic))))) |
639 | |
640 | (define maven-core-boot |
641 | (package |
642 | (inherit maven) |
643 | (name "maven-core-boot") |
644 | (arguments |
645 | `(#:jar-name "maven-core.jar" |
646 | #:source-dir "src/main/java" |
647 | #:jdk ,icedtea-8 |
648 | ;; Tests fail with |
649 | ;; org.codehaus.plexus.component.repository.exception.ComponentLookupException: java.util.NoSuchElementException |
650 | ;; role: org.apache.maven.repository.RepositorySystem |
651 | ;; It seems they need maven-compat, which requires maven-core |
652 | #:tests? #f |
653 | ;#:fake-maven? #t |
654 | ;#:version ,(package-version maven) |
655 | ;#:pom-file "pom.xml" |
656 | ;#:group-id "org.apache.maven" |
657 | ;#:artifact-id "maven-core" |
658 | #:phases |
659 | (modify-phases %standard-phases |
660 | (add-before 'configure 'chdir |
661 | (lambda _ |
662 | ;; Required for generating components.xml in maven-core |
663 | (chdir "maven-core"))) |
664 | (add-before 'build 'copy-resources |
665 | (lambda _ |
666 | (mkdir-p "build/classes/") |
667 | (copy-recursively "src/main/resources" "build/classes"))) |
668 | (add-before 'build 'generate-sisu-named |
669 | (lambda _ |
670 | (mkdir-p "build/classes/META-INF/sisu") |
671 | (chmod "../sisu.sh" #o755) |
672 | (zero? (system* "../sisu.sh" "src/main/java" |
673 | "build/classes/META-INF/sisu/javax.inject.Named")))) |
674 | (add-before 'build 'generate-models |
675 | (lambda* (#:key inputs #:allow-other-keys) |
676 | (define (modello-single-mode file version mode) |
677 | (zero? (system* "java" |
678 | "org.codehaus.modello.ModelloCli" |
679 | file mode "src/main/java" version |
680 | "false" "true"))) |
681 | (let ((file "src/main/mdo/toolchains.mdo")) |
682 | (and |
683 | (modello-single-mode file "1.1.0" "java") |
684 | (modello-single-mode file "1.1.0" "xpp3-reader") |
685 | (modello-single-mode file "1.1.0" "xpp3-writer")))))))) |
686 | (inputs |
687 | `(("maven-artifact" ,maven-artifact) |
688 | ("maven-resolver-provider" ,maven-resolver-provider) |
689 | ("maven-builder-support" ,maven-builder-support) |
690 | ("maven-model" ,maven-model) |
691 | ("maven-model-builder" ,maven-model-builder) |
692 | ("maven-settings" ,maven-settings) |
693 | ("maven-settings-builder" ,maven-settings-builder) |
694 | ("maven-plugin-api" ,maven-plugin-api) |
695 | ("maven-repository-metadata" ,maven-repository-metadata) |
696 | ("maven-shared-utils" ,maven-shared-utils) |
697 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
698 | ("java-plexus-utils" ,java-plexus-utils) |
699 | ("java-commons-lang3" ,java-commons-lang3) |
700 | ("java-guava" ,java-guava) |
701 | ("java-guice" ,java-guice) |
702 | ("maven-resolver-api" ,maven-resolver-api) |
703 | ("maven-resolver-spi" ,maven-resolver-spi) |
704 | ("maven-resolver-util" ,maven-resolver-util) |
705 | ("maven-resolver-impl" ,maven-resolver-impl) |
706 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
707 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
708 | ("java-javax-inject" ,java-javax-inject) |
709 | ("java-plexus-classworld" ,java-plexus-classworlds))) |
710 | (native-inputs |
711 | `(("java-modello-core" ,java-modello-core) |
712 | ("java-cglib" ,java-cglib) |
713 | ("java-asm" ,java-asm) |
714 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
715 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
716 | ("java-sisu-build-api" ,java-sisu-build-api) |
717 | ("java-modello-plugins-java" ,java-modello-plugins-java) |
718 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) |
719 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) |
720 | ;; tests |
721 | ("java-junit" ,java-junit) |
722 | ("java-mockito-1" ,java-mockito-1) |
723 | ("java-commons-jxpath" ,java-commons-jxpath))))) |
724 | |
725 | (define-public maven-core |
726 | (package |
727 | (inherit maven-core-boot) |
728 | (name "maven-core") |
729 | (arguments |
730 | (substitute-keyword-arguments (package-arguments maven-core-boot) |
731 | ((#:phases phases) |
732 | `(modify-phases ,phases |
733 | (add-after 'build 'generate-metadata |
734 | (lambda _ |
735 | (delete-file "build/classes/META-INF/plexus/components.xml") |
736 | (and (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") |
737 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" |
738 | "--source" "build/classes/META-INF/plexus" |
739 | "--output" "build/classes/META-INF/plexus/components.t.xml" |
740 | ;; I don't know what these two options do, but if |
741 | ;; not present, it ends with a NullPointerException. |
742 | "--classes" "build/classes" |
743 | "--descriptors" "build/classes")) |
744 | ;; Now we merge all other components from hand-written xml |
745 | ;; FIXME: This should be taken care of by plexus-component-metadata directly |
746 | (zero? (system* "sh" "-c" |
747 | (string-append "(cat build/classes/META-INF/plexus/components.t.xml |" |
748 | "sed -e 's|</component-set>||' -e 's|</components>||' ; " |
749 | "cat src/main/resources/META-INF/plexus/artifact-handlers.xml |" |
750 | " sed -e 's|<?xml.*||' -e 's|<component-set>||' -e 's|<components>||'" |
751 | " -e 's|</component-set>||' -e 's|</components>||'; " |
752 | "cat src/main/resources/META-INF/plexus/components.xml |" |
753 | " sed -e 's|<?xml.*||' -e 's|<component-set>||' -e 's|<components>||'" |
754 | " -e 's|</component-set>||' -e 's|</components>||'; " |
755 | "cat src/main/resources/META-INF/plexus/default-bindings.xml |" |
756 | " sed -e 's|<?xml.*||' -e 's|<component-set>||' -e 's|<components>||' )>" |
757 | "build/classes/META-INF/plexus/components.xml")))))) |
758 | (add-after 'generate-metadata 'rebuild |
759 | (lambda _ |
760 | (zero? (system* "ant" "jar")))))))) |
761 | (native-inputs |
762 | `(("java-plexus-component-metadata" ,java-plexus-component-metadata) |
763 | ("java-commons-cli" ,java-commons-cli) |
764 | ("java-plexus-cli" ,java-plexus-cli) |
765 | ("java-jdom2" ,java-jdom2) |
766 | ("java-qdox" ,java-qdox) |
767 | ("maven-core-boot" ,maven-core-boot) |
768 | ,@(package-native-inputs maven-core-boot))))) |
769 | |
770 | (define-public maven-wagon-provider-api |
771 | (package |
772 | (name "maven-wagon-provider-api") |
773 | (version "3.0.0") |
774 | (source (origin |
775 | (method url-fetch) |
776 | (uri (string-append "https://archive.apache.org/dist/maven/wagon/" |
777 | "wagon-" version "-source-release.zip")) |
778 | (sha256 (base32 "1qb0q4m7vmf290xp3fnfdi3pwl3hkskia5g3z2v82q1ch3y2knqv")))) |
779 | (build-system ant-build-system) |
780 | (arguments |
781 | `(#:jar-name "maven-wagon-provider-api.jar" |
782 | #:source-dir "wagon-provider-api/src/main/java" |
783 | #:test-dir "wagon-provider-api/src/test")) |
784 | (inputs |
785 | `(("java-plexus-utils" ,java-plexus-utils))) |
786 | (native-inputs |
787 | `(("unzip" ,unzip) |
788 | ("java-junit" ,java-junit) |
789 | ("java-easymock" ,java-easymock))) |
790 | (home-page "") |
791 | (synopsis "") |
792 | (description "") |
793 | (license license:asl2.0))) |
794 | |
795 | (define-public maven-wagon-provider-test |
796 | (package |
797 | (inherit maven-wagon-provider-api) |
798 | (name "maven-wagon-provider-test") |
799 | (arguments |
800 | `(#:jar-name "maven-wagon-provider-test.jar" |
801 | #:source-dir "wagon-provider-test/src/main/java" |
802 | #:tests? #f; no tests |
803 | #:jdk ,icedtea-8)) |
804 | (inputs |
805 | `(("java-plexus-utils" ,java-plexus-utils) |
806 | ("java-plexus-container-default" ,java-plexus-container-default) |
807 | ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) |
808 | ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) |
809 | ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) |
810 | ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) |
811 | ("java-slf4j-api" ,java-slf4j-api) |
812 | ("java-tomcat" ,java-tomcat) |
813 | ("maven-wagon-provider-api" ,maven-wagon-provider-api))))) |
814 | |
815 | (define-public maven-wagon-file |
816 | (package |
817 | (inherit maven-wagon-provider-api) |
818 | (name "maven-wagon-file") |
819 | (arguments |
820 | `(#:jar-name "maven-wagon-file.jar" |
821 | #:source-dir "wagon-providers/wagon-file/src/main/java" |
822 | #:test-dir "wagon-providers/wagon-file/src/test" |
823 | #:jdk ,icedtea-8 |
824 | #:phases |
825 | (modify-phases %standard-phases |
826 | (add-before 'check 'fix-paths |
827 | (lambda _ |
828 | (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java" |
829 | (("target") "build")))) |
830 | (add-after 'build 'generate-metadata |
831 | (lambda _ |
832 | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") |
833 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" |
834 | "--source" "wagon-providers/wagon-file/src/main/java" |
835 | "--output" "build/classes/META-INF/plexus/components.xml" |
836 | ;; I don't know what these two options do, but if |
837 | ;; not present, it ends with a NullPointerException. |
838 | "--classes" "build/classes" |
839 | "--descriptors" "build/classes/META-INF")))) |
840 | (add-after 'generate-metadata 'rebuild |
841 | (lambda _ |
842 | (zero? (system* "ant" "jar"))))))) |
843 | (inputs |
844 | `(("java-plexus-utils" ,java-plexus-utils) |
845 | ("maven-wagon-provider-api" ,maven-wagon-provider-api))) |
846 | (native-inputs |
847 | `(("maven-wagon-provider-test" ,maven-wagon-provider-test) |
848 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) |
849 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
850 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
851 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
852 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
853 | ("java-guava" ,java-guava) |
854 | ("java-guice" ,java-guice) |
855 | ("java-javax-inject" ,java-javax-inject) |
856 | ("java-cglib" ,java-cglib) |
857 | ("java-slf4j-api" ,java-slf4j-api) |
858 | ("java-plexus-utils" ,java-plexus-utils) |
859 | ("java-plexus-cli" ,java-plexus-cli) |
860 | ("maven-plugin-api" ,maven-plugin-api) |
861 | ("maven-plugin-annotations" ,maven-plugin-annotations) |
862 | ("maven-core" ,maven-core) |
863 | ("maven-model" ,maven-model) |
864 | ("java-commons-cli" ,java-commons-cli) |
865 | ("java-qdox" ,java-qdox) |
866 | ("java-jdom2" ,java-jdom2) |
867 | ("java-asm" ,java-asm) |
868 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
869 | ,@(package-native-inputs maven-wagon-provider-api))))) |
870 | |
871 | (define-public maven-wagon-http-shared |
872 | (package |
873 | (inherit maven-wagon-provider-api) |
874 | (name "maven-wagon-http-shared") |
875 | (arguments |
876 | `(#:jar-name "maven-wagon-http-shared.jar" |
877 | #:source-dir "wagon-providers/wagon-http-shared/src/main/java" |
878 | #:test-dir "wagon-providers/wagon-http-shared/src/test" |
879 | #:jdk ,icedtea-8 |
880 | #:phases |
881 | (modify-phases %standard-phases |
882 | (add-after 'build 'generate-metadata |
883 | (lambda _ |
884 | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") |
885 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" |
886 | "--source" "wagon-providers/wagon-http-shared/src/main/java" |
887 | "--output" "build/classes/META-INF/plexus/components.xml" |
888 | ;; I don't know what these two options do, but if |
889 | ;; not present, it ends with a NullPointerException. |
890 | "--classes" "build/classes" |
891 | "--descriptors" "build/classes/META-INF")))) |
892 | (add-after 'generate-metadata 'rebuild |
893 | (lambda _ |
894 | (zero? (system* "ant" "jar"))))))) |
895 | (inputs |
896 | `(("java-plexus-utils" ,java-plexus-utils) |
897 | ("java-httpcomponents-client" ,java-httpcomponents-client) |
898 | ("java-httpcomponents-core" ,java-httpcomponents-core) |
899 | ("java-commons-io" ,java-commons-io) |
900 | ("java-jsoup" ,java-jsoup) |
901 | ("maven-wagon-provider-api" ,maven-wagon-provider-api))) |
902 | (native-inputs |
903 | `(("maven-wagon-provider-test" ,maven-wagon-provider-test) |
904 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) |
905 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
906 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
907 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
908 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
909 | ("java-guava" ,java-guava) |
910 | ("java-guice" ,java-guice) |
911 | ("java-javax-inject" ,java-javax-inject) |
912 | ("java-cglib" ,java-cglib) |
913 | ("java-slf4j-api" ,java-slf4j-api) |
914 | ("java-plexus-utils" ,java-plexus-utils) |
915 | ("java-plexus-cli" ,java-plexus-cli) |
916 | ("maven-plugin-api" ,maven-plugin-api) |
917 | ("maven-plugin-annotations" ,maven-plugin-annotations) |
918 | ("maven-core" ,maven-core) |
919 | ("maven-model" ,maven-model) |
920 | ("java-commons-cli" ,java-commons-cli) |
921 | ("java-qdox" ,java-qdox) |
922 | ("java-jdom2" ,java-jdom2) |
923 | ("java-asm" ,java-asm) |
924 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
925 | ,@(package-native-inputs maven-wagon-provider-api))))) |
926 | |
927 | (define-public maven-wagon-tck-http |
928 | (package |
929 | (inherit maven-wagon-provider-api) |
930 | (name "maven-wagon-tck-http") |
931 | (arguments |
932 | `(#:jar-name "maven-wagon-tck-http.jar" |
933 | #:source-dir "wagon-tcks/wagon-tck-http/src/main/java" |
934 | #:tests? #f; no tests |
935 | #:jdk ,icedtea-8)) |
936 | (inputs |
937 | `(("java-plexus-util" ,java-plexus-utils) |
938 | ("maven-wagon-provider-api" ,maven-wagon-provider-api) |
939 | ("java-tomcat" ,java-tomcat) |
940 | ("java-slf4j-api" ,java-slf4j-api) |
941 | ("java-commons-codec" ,java-commons-codec) |
942 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
943 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
944 | ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) |
945 | ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2) |
946 | ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) |
947 | ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) |
948 | ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2))))) |
949 | |
950 | (define-public maven-wagon-http-lightweight |
951 | (package |
952 | (inherit maven-wagon-provider-api) |
953 | (name "maven-wagon-http-lightweight") |
954 | (arguments |
955 | `(#:jar-name "maven-wagon-http-lightweight.jar" |
956 | #:source-dir "wagon-providers/wagon-http-lightweight/src/main/java" |
957 | #:test-dir "wagon-providers/wagon-http-lightweight/src/test" |
958 | #:jdk ,icedtea-8 |
959 | #:phases |
960 | (modify-phases %standard-phases |
961 | (add-after 'build 'generate-metadata |
962 | (lambda _ |
963 | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") |
964 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" |
965 | "--source" "wagon-providers/wagon-http-lightweight/src/main/java" |
966 | "--output" "build/classes/META-INF/plexus/components.xml" |
967 | ;; I don't know what these two options do, but if |
968 | ;; not present, it ends with a NullPointerException. |
969 | "--classes" "build/classes" |
970 | "--descriptors" "build/classes/META-INF")))) |
971 | (add-after 'generate-metadata 'rebuild |
972 | (lambda _ |
973 | (zero? (system* "ant" "jar")))) |
974 | (add-before 'check 'fix-resource-path |
975 | (lambda _ |
976 | (substitute* "wagon-providers/wagon-http-lightweight/src/test/java/org/apache/maven/wagon/providers/http/LightweightHttpsWagonTest.java" |
977 | (("src/test") "wagon-providers/wagon-http-lightweight/src/test")) |
978 | #t))))) |
979 | (inputs |
980 | `(("java-plexus-utils" ,java-plexus-utils) |
981 | ("java-httpcomponents-client" ,java-httpcomponents-client) |
982 | ("java-httpcomponents-core" ,java-httpcomponents-core) |
983 | ("maven-wagon-http-shared" ,maven-wagon-http-shared) |
984 | ("maven-wagon-tck-http" ,maven-wagon-tck-http) |
985 | ("maven-wagon-provider-api" ,maven-wagon-provider-api) |
986 | ("java-commons-io" ,java-commons-io))) |
987 | (native-inputs |
988 | `(("maven-wagon-provider-test" ,maven-wagon-provider-test) |
989 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) |
990 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
991 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
992 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
993 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
994 | ("java-guava" ,java-guava) |
995 | ("java-guice" ,java-guice) |
996 | ("java-javax-inject" ,java-javax-inject) |
997 | ("java-cglib" ,java-cglib) |
998 | ("java-slf4j-api" ,java-slf4j-api) |
999 | ("java-plexus-utils" ,java-plexus-utils) |
1000 | ("java-plexus-cli" ,java-plexus-cli) |
1001 | ("maven-plugin-api" ,maven-plugin-api) |
1002 | ("maven-plugin-annotations" ,maven-plugin-annotations) |
1003 | ("maven-core" ,maven-core) |
1004 | ("maven-model" ,maven-model) |
1005 | ("java-commons-cli" ,java-commons-cli) |
1006 | ("java-qdox" ,java-qdox) |
1007 | ("java-jdom2" ,java-jdom2) |
1008 | ("java-asm" ,java-asm) |
1009 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
1010 | ("java-tomcat" ,java-tomcat) |
1011 | ("java-eclispe-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) |
1012 | ("java-eclispe-jetty-io-9.2" ,java-eclipse-jetty-io-9.2) |
1013 | ("java-eclispe-jetty-http-9.2" ,java-eclipse-jetty-http-9.2) |
1014 | ("java-eclispe-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) |
1015 | ("java-eclispe-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) |
1016 | ("java-eclispe-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) |
1017 | ("java-jsoup" ,java-jsoup) |
1018 | ("java-hamcrest-core" ,java-hamcrest-core) |
1019 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) |
1020 | ("java-slf4j-simple" ,java-slf4j-simple) |
1021 | ,@(package-native-inputs maven-wagon-provider-api))))) |
1022 | |
1023 | (define-public maven-wagon-http |
1024 | (package |
1025 | (inherit maven-wagon-provider-api) |
1026 | (name "maven-wagon-http") |
1027 | (arguments |
1028 | `(#:jar-name "maven-wagon-http.jar" |
1029 | #:source-dir "wagon-providers/wagon-http/src/main/java" |
1030 | #:test-dir "wagon-providers/wagon-http/src/test" |
1031 | #:test-exclude (list |
1032 | "**/Abstract*.java" |
1033 | ;; FIXME: javax.net.ssl.SSLHandshakeException: |
1034 | ;; sun.security.validator.ValidatorException: |
1035 | ;; PKIX path building failed: |
1036 | ;; sun.security.provider.certpath.SunCertPathBuilderException: |
1037 | ;; unable to find valid certification path to requested target |
1038 | "**/HttpsWagonPreemptiveTest.java" |
1039 | "**/HttpsWagonTest.java" |
1040 | ;; Injection errors |
1041 | "**/TckTest.java") |
1042 | #:jdk ,icedtea-8 |
1043 | #:phases |
1044 | (modify-phases %standard-phases |
1045 | (add-before 'build 'copy-resources |
1046 | (lambda _ |
1047 | (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml" |
1048 | "build/classes/META-INF/plexus") |
1049 | #t)) |
1050 | (add-before 'check 'fix-resource-path |
1051 | (lambda _ |
1052 | (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java" |
1053 | "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java") |
1054 | (("src/test") "wagon-providers/wagon-http/src/test")) |
1055 | #t))))) |
1056 | (inputs |
1057 | `(("java-plexus-utils" ,java-plexus-utils) |
1058 | ("java-httpcomponents-client" ,java-httpcomponents-client) |
1059 | ("java-httpcomponents-core" ,java-httpcomponents-core) |
1060 | ("maven-wagon-http-shared" ,maven-wagon-http-shared) |
1061 | ("maven-wagon-tck-http" ,maven-wagon-tck-http) |
1062 | ("maven-wagon-provider-api" ,maven-wagon-provider-api))) |
1063 | (native-inputs |
1064 | `(("maven-wagon-provider-test" ,maven-wagon-provider-test) |
1065 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) |
1066 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
1067 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
1068 | ("java-plexus-container-default" ,java-plexus-container-default) |
1069 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
1070 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
1071 | ("java-guava" ,java-guava) |
1072 | ("java-guice" ,java-guice) |
1073 | ("java-inject" ,java-javax-inject) |
1074 | ("java-cglib" ,java-cglib) |
1075 | ("java-slf4j-api" ,java-slf4j-api) |
1076 | ("java-plexus-utils" ,java-plexus-utils) |
1077 | ("java-plexus-cli" ,java-plexus-cli) |
1078 | ("maven-plugin-api" ,maven-plugin-api) |
1079 | ("maven-plugin-annotations" ,maven-plugin-annotations) |
1080 | ("maven-core" ,maven-core) |
1081 | ("maven-model" ,maven-model) |
1082 | ("java-commons-cli" ,java-commons-cli) |
1083 | ("java-qdox" ,java-qdox) |
1084 | ("java-jdom2" ,java-jdom2) |
1085 | ("java-asm" ,java-asm) |
1086 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
1087 | ("java-tomcat" ,java-tomcat) |
1088 | ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) |
1089 | ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2) |
1090 | ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2) |
1091 | ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) |
1092 | ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) |
1093 | ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) |
1094 | ("java-hamcrest-core" ,java-hamcrest-core) |
1095 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) |
1096 | ("java-commons-codec" ,java-commons-codec) |
1097 | ("java-commons-io" ,java-commons-io) |
1098 | ("java-jsoup" ,java-jsoup) |
1099 | ("java-slf4j-simple" ,java-slf4j-simple) |
1100 | ,@(package-native-inputs maven-wagon-provider-api))))) |
1101 | |
1102 | (define-public maven-embedder |
1103 | (package |
1104 | (inherit maven) |
1105 | (name "maven-embedder") |
1106 | (arguments |
1107 | `(#:jar-name "maven-embedder.jar" |
1108 | #:source-dir "maven-embedder/src/main/java" |
1109 | #:test-dir "maven-embedder/src/test" |
1110 | #:test-exclude (list "**/MavenCliTest.java") |
1111 | #:jdk ,icedtea-8 |
1112 | #:phases |
1113 | (modify-phases %standard-phases |
1114 | (add-before 'build 'generate-sisu-named |
1115 | (lambda _ |
1116 | (mkdir-p "build/classes/META-INF/sisu") |
1117 | (chmod "sisu.sh" #o755) |
1118 | (zero? (system* "./sisu.sh" "maven-embedder/src/main/java" |
1119 | "build/classes/META-INF/sisu/javax.inject.Named")))) |
1120 | (add-before 'build 'generate-models |
1121 | (lambda* (#:key inputs #:allow-other-keys) |
1122 | (define (modello-single-mode file version mode) |
1123 | (zero? (system* "java" |
1124 | "org.codehaus.modello.ModelloCli" |
1125 | file mode "maven-embedder/src/main/java" version |
1126 | "false" "true"))) |
1127 | (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo")) |
1128 | (and |
1129 | (modello-single-mode file "1.0.0" "java") |
1130 | (modello-single-mode file "1.0.0" "xpp3-reader") |
1131 | (modello-single-mode file "1.0.0" "xpp3-writer"))))) |
1132 | (add-before 'check 'fix-test-paths |
1133 | (lambda _ |
1134 | (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java" |
1135 | (("target/test-classes") "build/test-classes")))) |
1136 | (add-before 'check 'fix-compilation |
1137 | (lambda _ |
1138 | ;; Tests are in the java/ subdir. Other subdirectories contain |
1139 | ;; additional test plugins, with duplicate classes, so we can't |
1140 | ;; compile them. Also, they are meant to be built with maven, to |
1141 | ;; test its build process. |
1142 | (substitute* "build.xml" |
1143 | (("srcdir=\"maven-embedder/src/test\"") |
1144 | "srcdir=\"maven-embedder/src/test/java\""))))))) |
1145 | (inputs |
1146 | `(("maven-core" ,maven-core) |
1147 | ("maven-artifact" ,maven-artifact) |
1148 | ("maven-plugin-api" ,maven-plugin-api) |
1149 | ("maven-builder-support" ,maven-builder-support) |
1150 | ("maven-model" ,maven-model) |
1151 | ("maven-model-builder" ,maven-model-builder) |
1152 | ("maven-settings" ,maven-settings) |
1153 | ("maven-settings-builder" ,maven-settings-builder) |
1154 | ("maven-shared-utils" ,maven-shared-utils) |
1155 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
1156 | ("java-plexus-util" ,java-plexus-utils) |
1157 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
1158 | ("java-plexus-cipher" ,java-plexus-cipher) |
1159 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
1160 | ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) |
1161 | ("maven-resolevr-util" ,maven-resolver-util) |
1162 | ("maven-resolevr-api" ,maven-resolver-api) |
1163 | ("java-logback-core" ,java-logback-core) |
1164 | ("java-logback-classic" ,java-logback-classic) |
1165 | ("java-commons-cli" ,java-commons-cli) |
1166 | ("java-commons-io" ,java-commons-io) |
1167 | ("java-commons-lang3" ,java-commons-lang3) |
1168 | ("java-guava" ,java-guava) |
1169 | ("java-guice" ,java-guice) |
1170 | ("java-javax-inject" ,java-javax-inject) |
1171 | ("java-slf4j-api" ,java-slf4j-api) |
1172 | ("java-slf4j-simple" ,java-slf4j-simple))) |
1173 | (native-inputs |
1174 | `(("java-modello-core" ,java-modello-core) |
1175 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
1176 | ("java-sisu-build-api" ,java-sisu-build-api) |
1177 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
1178 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
1179 | ("java-cglib" ,java-cglib) |
1180 | ("java-asm" ,java-asm) |
1181 | ("java-modello-plugins-java" ,java-modello-plugins-java) |
1182 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) |
1183 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) |
1184 | ;; tests |
1185 | ("java-junit" ,java-junit) |
1186 | ("java-mockito-1" ,java-mockito-1) |
1187 | ("java-objenesis" ,java-objenesis) |
1188 | ("java-hamcrest-core" ,java-hamcrest-core))))) |
1189 | |
1190 | (define-public maven-resolver-impl |
1191 | (package |
1192 | (inherit maven-resolver-api) |
1193 | (name "maven-resolver-impl") |
1194 | (arguments |
1195 | `(#:jar-name "maven-resolver-impl.jar" |
1196 | #:source-dir "maven-resolver-impl/src/main/java" |
1197 | #:test-dir "maven-resolver-impl/src/test" |
1198 | #:jdk ,icedtea-8 |
1199 | #:phases |
1200 | (modify-phases %standard-phases |
1201 | (add-before 'build 'generate-sisu |
1202 | (lambda _ |
1203 | (mkdir-p "build/classes/META-INF/sisu") |
1204 | (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" |
1205 | (lambda _ |
1206 | (display |
1207 | (string-append |
1208 | "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n" |
1209 | "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n" |
1210 | "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n" |
1211 | "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory\n" |
1212 | "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n" |
1213 | "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n" |
1214 | "org.eclipse.aether.internal.impl.DefaultFileProcessor\n" |
1215 | "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n" |
1216 | "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n" |
1217 | "org.eclipse.aether.internal.impl.DefaultDeployer\n" |
1218 | "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n" |
1219 | "org.eclipse.aether.internal.impl.DefaultInstaller\n" |
1220 | "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n" |
1221 | "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n" |
1222 | "org.eclipse.aether.internal.impl.DefaultOfflineController\n" |
1223 | "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n" |
1224 | "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n" |
1225 | "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n" |
1226 | "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n" |
1227 | "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n" |
1228 | "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n" |
1229 | "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n" |
1230 | "org.eclipse.aether.internal.impl.DefaultDependencyCollector\n"))))))))) |
1231 | (inputs |
1232 | `(("maven-resolver-api" ,maven-resolver-api) |
1233 | ("maven-resolver-spi" ,maven-resolver-spi) |
1234 | ("maven-resolver-util" ,maven-resolver-util) |
1235 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
1236 | ("java-javax-inject" ,java-javax-inject) |
1237 | ("java-guice" ,java-guice) |
1238 | ("java-guava" ,java-guava) |
1239 | ("java-cglib" ,java-cglib) |
1240 | ("java-asm" ,java-asm) |
1241 | ("jajva-aopalliance" ,java-aopalliance) |
1242 | ("java-slf4j-api" ,java-slf4j-api))) |
1243 | (native-inputs |
1244 | `(("java-junit" ,java-junit) |
1245 | ("java-hamcrest-core" ,java-hamcrest-core) |
1246 | ("maven-resolver-test-util" ,maven-resolver-test-util))))) |
1247 | |
1248 | (define-public maven-resolver-transport-wagon |
1249 | (package |
1250 | (inherit maven-resolver-api) |
1251 | (name "maven-resolver-transport-wagon") |
1252 | (arguments |
1253 | `(#:jar-name "maven-resolver-transport-wagon.jar" |
1254 | #:source-dir "maven-resolver-transport-wagon/src/main/java" |
1255 | #:test-dir "maven-resolver-transport-wagon/src/test" |
1256 | #:jdk ,icedtea-8 |
1257 | #:phases |
1258 | (modify-phases %standard-phases |
1259 | (add-before 'build 'generate-sisu |
1260 | (lambda _ |
1261 | (mkdir-p "build/classes/META-INF/sisu") |
1262 | (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" |
1263 | (lambda _ |
1264 | (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n"))) |
1265 | #t)) |
1266 | (add-before 'build 'generate-components.xml |
1267 | (lambda _ |
1268 | (mkdir-p "build/classes/META-INF/plexus") |
1269 | (with-output-to-file "build/classes/META-INF/plexus/components.xml" |
1270 | (lambda _ |
1271 | (display |
1272 | (string-append |
1273 | "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" |
1274 | "<component-set>\n" |
1275 | " <components>\n" |
1276 | " <component>\n" |
1277 | " <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>\n" |
1278 | " <role-hint>plexus</role-hint>\n" |
1279 | " <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>\n" |
1280 | " <description />\n" |
1281 | " <isolated-realm>false</isolated-realm>\n" |
1282 | " <requirements>\n" |
1283 | " <requirement>\n" |
1284 | " <role>org.codehaus.plexus.PlexusContainer</role>\n" |
1285 | " <role-hint />\n" |
1286 | " <field-name>container</field-name>\n" |
1287 | " </requirement>\n" |
1288 | " </requirements>\n" |
1289 | " </component>\n" |
1290 | " <component>\n" |
1291 | " <role>org.eclipse.aether.transport.wagon.WagonProvider</role>\n" |
1292 | " <role-hint>plexus</role-hint>\n" |
1293 | " <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>\n" |
1294 | " <description />\n" |
1295 | " <isolated-realm>false</isolated-realm>\n" |
1296 | " <requirements>\n" |
1297 | " <requirement>\n" |
1298 | " <role>org.codehaus.plexus.PlexusContainer</role>\n" |
1299 | " <role-hint />\n" |
1300 | " <field-name>container</field-name>\n" |
1301 | " </requirement>\n" |
1302 | " </requirements>\n" |
1303 | " </component>\n" |
1304 | " </components>\n" |
1305 | "</component-set>\n")))) |
1306 | #t))))) |
1307 | (inputs |
1308 | `(("maven-resolver-api" ,maven-resolver-api) |
1309 | ("maven-resolver-spi" ,maven-resolver-spi) |
1310 | ("maven-resolver-util" ,maven-resolver-util) |
1311 | ("java-javax-inject" ,java-javax-inject) |
1312 | ("mavne-wagon-provider-api" ,maven-wagon-provider-api) |
1313 | ("java-plexus-component-annotation" ,java-plexus-component-annotations) |
1314 | ("java-plexus-classworld" ,java-plexus-classworlds) |
1315 | ("java-plexus-plexus-util" ,java-plexus-utils) |
1316 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
1317 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus))) |
1318 | (native-inputs |
1319 | `(("java-junit" ,java-junit) |
1320 | ("java-hamcrest-core" ,java-hamcrest-core) |
1321 | ("maven-resolver-test-util" ,maven-resolver-test-util) |
1322 | ("java-guava" ,java-guava) |
1323 | ("java-cglib" ,java-cglib) |
1324 | ("java-asm" ,java-asm) |
1325 | ("java-aopalliance" ,java-aopalliance) |
1326 | ("java-guice" ,java-guice))))) |
1327 | |
1328 | (define-public maven-slf4j-provider |
1329 | (package |
1330 | (inherit maven) |
1331 | (name "maven-slf4j-provider") |
1332 | (arguments |
1333 | `(#:jar-name "maven-slf4j-provider" |
1334 | #:source-dir "maven-slf4j-provider/src/main/java" |
1335 | #:jdk ,icedtea-8 |
1336 | #:tests? #f; no tests |
1337 | #:phases |
1338 | (modify-phases %standard-phases |
1339 | (add-before 'build 'generate-simple-sources |
1340 | (lambda* (#:key inputs #:allow-other-keys) |
1341 | (mkdir-p "maven-slf4j-provider/target/generated-sources") |
1342 | (with-directory-excursion "maven-slf4j-provider/target/generated-sources" |
1343 | (system* "tar" "xf" (assoc-ref inputs "java-slf4j-simple"))) |
1344 | (with-directory-excursion "maven-slf4j-provider/" |
1345 | (zero? (system* "groovy" |
1346 | "src/main/script/patch-slf4j-simple.groovy")))))))) |
1347 | (inputs |
1348 | `(("java-slf4j-api" ,java-slf4j-api) |
1349 | ("java-slf4j-simple" ,(package-source java-slf4j-simple)) |
1350 | ("maven-shared-utils" ,maven-shared-utils))) |
1351 | (native-inputs |
1352 | `(("groovy" ,groovy))))) |
1353 | |
1354 | (define-public maven-compat |
1355 | (package |
1356 | (inherit maven) |
1357 | (name "maven-compat") |
1358 | (arguments |
1359 | `(#:jar-name "maven-compat.jar" |
1360 | #:source-dir "src/main/java" |
1361 | #:jdk ,icedtea-8 |
1362 | #:test-dir "src/test" |
1363 | #:tests? #f; TODOTODOTODOTODO |
1364 | #:phases |
1365 | (modify-phases %standard-phases |
1366 | ;; Tests assume we're in this directory |
1367 | (add-before 'configure 'chdir |
1368 | (lambda _ |
1369 | (chdir "maven-compat"))) |
1370 | (add-before 'build 'generate-models |
1371 | (lambda* (#:key inputs #:allow-other-keys) |
1372 | (define (modello-single-mode file version mode) |
1373 | (zero? (system* "java" |
1374 | "org.codehaus.modello.ModelloCli" |
1375 | file mode "src/main/java" version |
1376 | "false" "true"))) |
1377 | (let ((file "src/main/mdo/profiles.mdo")) |
1378 | (and |
1379 | (modello-single-mode file "1.0.0" "java") |
1380 | (modello-single-mode file "1.0.0" "xpp3-reader") |
1381 | (modello-single-mode file "1.0.0" "xpp3-writer"))) |
1382 | (let ((file "src/main/mdo/paramdoc.mdo")) |
1383 | (and |
1384 | (modello-single-mode file "1.0.0" "java") |
1385 | (modello-single-mode file "1.0.0" "xpp3-reader") |
1386 | (modello-single-mode file "1.0.0" "xpp3-writer"))))) |
1387 | (add-after 'build 'generate-metadata |
1388 | (lambda _ |
1389 | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") |
1390 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" |
1391 | "--source" "src/main/java" |
1392 | "--output" "build/classes/META-INF/plexus/components.xml" |
1393 | ;; I don't know what these two options do, but if |
1394 | ;; not present, it ends with a NullPointerException. |
1395 | "--classes" "build/classes" |
1396 | "--descriptors" "build/classes/META-INF")))) |
1397 | (add-before 'check 'build-tests |
1398 | (lambda _ |
1399 | (zero? (system* "ant" "compile-tests")))) |
1400 | (add-after 'build-tests 'generate-test-metadata |
1401 | (lambda _ |
1402 | (zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") |
1403 | ":build/classes" |
1404 | ":build/test-classes") |
1405 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" |
1406 | "--source" "src/test/java" |
1407 | "--output" "build/test-classes/META-INF/plexus/components.xml" |
1408 | ;; I don't know what these two options do, but if |
1409 | ;; not present, it ends with a NullPointerException. |
1410 | "--classes" "build/test-classes" |
1411 | "--descriptors" "build/test-classes/META-INF")))) |
1412 | (add-after 'generate-metadata 'rebuild |
1413 | (lambda _ |
1414 | (zero? (system* "ant" "jar"))))))) |
1415 | (inputs |
1416 | `(("maven-artifact" ,maven-artifact) |
1417 | ("maven-repository-metadata" ,maven-repository-metadata) |
1418 | ("maven-builder-support" ,maven-builder-support) |
1419 | ("maven-model" ,maven-model) |
1420 | ("maven-model-builder" ,maven-model-builder) |
1421 | ("maven-settings" ,maven-settings) |
1422 | ("maven-settings-builder" ,maven-settings-builder) |
1423 | ("maven-core" ,maven-core) |
1424 | ("maven-wagon-provider-api" ,maven-wagon-provider-api) |
1425 | ("maven-wagon-file" ,maven-wagon-file) |
1426 | ("maven-resolver-api" ,maven-resolver-api) |
1427 | ("maven-resolver-util" ,maven-resolver-util) |
1428 | ("maven-resolver-spi" ,maven-resolver-spi) |
1429 | ("java-plexus-interpolation" ,java-plexus-interpolation))) |
1430 | (native-inputs |
1431 | `(("java-modello-core" ,java-modello-core) |
1432 | ("java-plexus-utils" ,java-plexus-utils) |
1433 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) |
1434 | ("java-plexus-classworlds" ,java-plexus-classworlds) |
1435 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) |
1436 | ("java-sisu-build-api" ,java-sisu-build-api) |
1437 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
1438 | ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject) |
1439 | ("java-javax-inject" ,java-javax-inject) |
1440 | ("java-guice" ,java-guice) |
1441 | ("java-guava" ,java-guava) |
1442 | ("java-cglib" ,java-cglib) |
1443 | ("java-asm" ,java-asm) |
1444 | ("java-modello-plugins-java" ,java-modello-plugins-java) |
1445 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) |
1446 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) |
1447 | ;; metadata |
1448 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) |
1449 | ("java-commons-cli" ,java-commons-cli) |
1450 | ("java-plexus-cli" ,java-plexus-cli) |
1451 | ("java-jdom2" ,java-jdom2) |
1452 | ("maven-plugin-api" ,maven-plugin-api) |
1453 | ("java-qdox" ,java-qdox) |
1454 | ;; tests |
1455 | ("java-plexus-cipher" ,java-plexus-cipher) |
1456 | ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) |
1457 | ("java-jsr250", java-jsr250) |
1458 | ("java-cdi-api" ,java-cdi-api) |
1459 | ("java-junit" ,java-junit) |
1460 | ("maven-resolver-impl" ,maven-resolver-impl) |
1461 | ("maven-resolver-connector-basic" ,maven-resolver-connector-basic) |
1462 | ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon) |
1463 | ("java-commons-lang3" ,java-commons-lang3) |
1464 | ("java-aop" ,java-aopalliance) |
1465 | ("maven-resolver-provider" ,maven-resolver-provider) |
1466 | ("java-slf4j-api" ,java-slf4j-api) |
1467 | ("java-slf4j-simple" ,java-slf4j-simple) |
1468 | ,@(package-inputs java-slf4j-api))))) |
1469 | |
1470 | (define-public maven-plugin-annotations |
1471 | (package |
1472 | (name "maven-plugin-annotations") |
1473 | (version "3.5") |
1474 | (source (origin |
1475 | (method url-fetch) |
1476 | (uri (string-append "https://archive.apache.org/dist/maven/" |
1477 | "plugin-tools/maven-plugin-tools-" version |
1478 | "-source-release.zip")) |
1479 | (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2")))) |
1480 | (build-system ant-build-system) |
1481 | (arguments |
1482 | `(#:jar-name "maven-plugin-annotations.jar" |
1483 | #:source-dir "maven-plugin-annotations/src/main/java" |
1484 | #:tests? #f)) |
1485 | (inputs |
1486 | `(("maven-artifact" ,maven-artifact))) |
1487 | (native-inputs |
1488 | `(("unzip" ,unzip))) |
1489 | (home-page "") |
1490 | (synopsis "") |
1491 | (description "") |
1492 | (license license:asl2.0))) |
1493 |