gnu: Add maven-common-artifact-filters.
[jackhill/guix/guix.git] / gnu / packages / maven.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
3 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
5 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
6 ;;;
7 ;;; This file is part of GNU Guix.
8 ;;;
9 ;;; GNU Guix is free software; you can redistribute it and/or modify it
10 ;;; under the terms of the GNU General Public License as published by
11 ;;; the Free Software Foundation; either version 3 of the License, or (at
12 ;;; your option) any later version.
13 ;;;
14 ;;; GNU Guix is distributed in the hope that it will be useful, but
15 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;;; GNU General Public License for more details.
18 ;;;
19 ;;; You should have received a copy of the GNU General Public License
20 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22 (define-module (gnu packages maven)
23 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix git-download)
27 #:use-module (guix utils)
28 #:use-module (guix build-system ant)
29 #:use-module (gnu packages)
30 #:use-module (gnu packages base)
31 #:use-module (gnu packages compression)
32 #:use-module (gnu packages java)
33 #:use-module (gnu packages maven-parent-pom)
34 #:use-module (gnu packages web)
35 #:use-module (gnu packages xml)
36 #:use-module (ice-9 match))
37
38 (define-public java-plexus-component-metadata
39 (package
40 (inherit java-plexus-container-default)
41 (name "java-plexus-component-metadata")
42 (arguments
43 `(#:jar-name "plexus-component-metadata.jar"
44 #:source-dir "src/main/java"
45 #:test-dir "src/test"
46 #:jdk ,icedtea-8
47 #:phases
48 (modify-phases %standard-phases
49 (add-before 'configure 'chdir
50 (lambda _
51 (chdir "plexus-component-metadata")
52 #t))
53 (add-before 'build 'copy-resources
54 (lambda _
55 (copy-recursively "src/main/resources"
56 "build/classes/")
57 #t)))))
58 (propagated-inputs
59 `(("java-plexus-container-default" ,java-plexus-container-default)
60 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
61 ("java-plexus-utils" ,java-plexus-utils)
62 ("java-plexus-cli" ,java-plexus-cli)
63 ("java-plexus-classworlds" ,java-plexus-classworlds)
64 ("maven-plugin-api" ,maven-plugin-api)
65 ("maven-plugin-annotations" ,maven-plugin-annotations)
66 ("maven-core-bootstrap" ,maven-core-bootstrap)
67 ("maven-model" ,maven-model)
68 ("java-commons-cli" ,java-commons-cli)
69 ("java-qdox" ,java-qdox)
70 ("java-jdom2" ,java-jdom2)
71 ("java-asm" ,java-asm)))
72 (native-inputs
73 `(("java-junit" ,java-junit)
74 ("java-guava" ,java-guava)
75 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
76 (synopsis "Inversion-of-control container for Maven")
77 (description "The Plexus project provides a full software stack for creating
78 and executing software projects. Based on the Plexus container, the
79 applications can utilise component-oriented programming to build modular,
80 reusable components that can easily be assembled and reused. This package
81 provides the Maven plugin generating the component metadata.")))
82
83 (define-public maven-resolver-api
84 (package
85 (name "maven-resolver-api")
86 (version "1.3.1")
87 (source (origin
88 (method git-fetch)
89 (uri (git-reference
90 (url "https://github.com/apache/maven-resolver")
91 (commit (string-append "maven-resolver-" version))))
92 (file-name (git-file-name name version))
93 (sha256
94 (base32
95 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
96 (build-system ant-build-system)
97 (arguments
98 `(#:jar-name "maven-resolver-api.jar"
99 #:source-dir "maven-resolver-api/src/main/java"
100 #:test-dir "maven-resolver-api/src/test"
101 #:phases
102 (modify-phases %standard-phases
103 (replace 'install
104 (install-from-pom "maven-resolver-api/pom.xml")))))
105 (native-inputs
106 `(("java-asm" ,java-asm)
107 ("java-cglib" ,java-cglib)
108 ("java-hamcrest-core" ,java-hamcrest-core)
109 ("java-junit" ,java-junit)
110 ("java-mockito-1" ,java-mockito-1)
111 ("java-objenesis" ,java-objenesis)))
112 (propagated-inputs
113 `(("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
114 (home-page "https://github.com/apache/maven-resolver")
115 (synopsis "Maven repository system API")
116 (description "This package contains the API for the maven repository system.")
117 (license license:asl2.0)))
118
119 (define maven-resolver-parent-pom
120 (package
121 (inherit maven-resolver-api)
122 (name "maven-resolver-parent-pom")
123 (arguments
124 `(#:tests? #f
125 #:phases
126 (modify-phases %standard-phases
127 (delete 'configure)
128 (delete 'build)
129 (add-before 'install 'fix-pom
130 (lambda _
131 (substitute* "pom.xml"
132 (("<classifier>no_aop</classifier>") ""))
133 #t))
134 (replace 'install
135 (install-pom-file "pom.xml")))))
136 (propagated-inputs '())))
137
138 (define-public maven-resolver-spi
139 (package
140 (inherit maven-resolver-api)
141 (name "maven-resolver-spi")
142 (arguments
143 `(#:jar-name "maven-resolver-spi.jar"
144 #:source-dir "maven-resolver-spi/src/main/java"
145 #:test-dir "maven-resolver-spi/src/test"
146 #:phases
147 (modify-phases %standard-phases
148 (replace 'install
149 (install-from-pom "maven-resolver-spi/pom.xml")))))
150 (propagated-inputs
151 `(("maven-resolver-api" ,maven-resolver-api)))
152 (synopsis "Maven repository system SPI")
153 (description "This package contains the service provider interface (SPI)
154 for repository system implementations and repository connectors.")))
155
156 (define-public maven-resolver-test-util
157 (package
158 (inherit maven-resolver-api)
159 (name "maven-resolver-test-util")
160 (arguments
161 `(#:jar-name "maven-resolver-test-util.jar"
162 #:source-dir "maven-resolver-test-util/src/main/java"
163 #:test-dir "maven-resolver-test-util/src/test"
164 #:jdk ,icedtea-8))
165 (inputs
166 `(("maven-resolver-api" ,maven-resolver-api)
167 ("maven-resolver-spi" ,maven-resolver-spi)))
168 (synopsis "Utility classes for testing the maven repository system")
169 (description "This package contains a collection of utility classes to
170 ease testing of the repository system.")))
171
172 (define-public maven-resolver-util
173 (package
174 (inherit maven-resolver-api)
175 (name "maven-resolver-util")
176 (arguments
177 `(#:jar-name "maven-resolver-util.jar"
178 #:source-dir "maven-resolver-util/src/main/java"
179 #:test-dir "maven-resolver-util/src/test"
180 #:phases
181 (modify-phases %standard-phases
182 (replace 'install
183 (install-from-pom "maven-resolver-util/pom.xml")))))
184 (propagated-inputs
185 `(("maven-resolver-api" ,maven-resolver-api)))
186 (native-inputs
187 `(("java-junit" ,java-junit)
188 ("java-hamcrest-core" ,java-hamcrest-core)
189 ("maven-resolver-test-util" ,maven-resolver-test-util)))
190 (synopsis "Utility classes for the maven repository system")
191 (description "This package contains a collection of utility classes to
192 ease usage of the repository system.")))
193
194 (define-public maven-resolver-connector-basic
195 (package
196 (inherit maven-resolver-api)
197 (name "maven-resolver-connector-basic")
198 (arguments
199 `(#:jar-name "maven-resolver-connector-basic.jar"
200 #:source-dir "maven-resolver-connector-basic/src/main/java"
201 #:test-dir "maven-resolver-connector-basic/src/test"
202 #:jdk ,icedtea-8
203 #:phases
204 (modify-phases %standard-phases
205 (add-before 'build 'generate-sisu
206 (lambda _
207 (mkdir-p "build/classes/META-INF/sisu")
208 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
209 (lambda _
210 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
211 #t))
212 (replace 'install
213 (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
214 (propagated-inputs
215 `(("maven-resolver-api" ,maven-resolver-api)
216 ("maven-resolver-spi" ,maven-resolver-spi)
217 ("maven-resolver-util" ,maven-resolver-util)
218 ("java-slf4j-api" ,java-slf4j-api)))
219 (native-inputs
220 `(("java-javax-inject" ,java-javax-inject)
221 ("java-junit" ,java-junit)
222 ("maven-resolver-test-util" ,maven-resolver-test-util)))
223 (synopsis "Maven repository connector implementation")
224 (description "This package contains a repository connector implementation
225 for repositories using URI-based layouts.")))
226
227 (define-public maven-resolver-impl
228 (package
229 (inherit maven-resolver-api)
230 (name "maven-resolver-impl")
231 (arguments
232 `(#:jar-name "maven-resolver-impl.jar"
233 #:source-dir "maven-resolver-impl/src/main/java"
234 #:test-dir "maven-resolver-impl/src/test"
235 #:phases
236 (modify-phases %standard-phases
237 (add-before 'build 'generate-sisu
238 (lambda _
239 (mkdir-p "build/classes/META-INF/sisu")
240 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
241 (lambda _
242 (display
243 (string-append
244 ;; Build this list by looking for files containing "@Named"
245 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
246 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
247 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
248 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
249 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
250 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
251 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
252 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
253 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
254 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
255 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
256 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
257 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
258 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
259 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
260 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
261 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
262 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
263 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
264 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
265 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
266 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
267 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
268 #t))
269 (replace 'install
270 (install-from-pom "maven-resolver-impl/pom.xml")))))
271 (propagated-inputs
272 `(("maven-resolver-api" ,maven-resolver-api)
273 ("maven-resolver-spi" ,maven-resolver-spi)
274 ("maven-resolver-util" ,maven-resolver-util)
275 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
276 ("java-javax-inject" ,java-javax-inject)
277 ("java-guice" ,java-guice)
278 ("java-slf4j-api" ,java-slf4j-api)
279 ("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
280 (native-inputs
281 `(("java-junit" ,java-junit)
282 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
283
284 (define-public maven-resolver-transport-wagon
285 (package
286 (inherit maven-resolver-api)
287 (name "maven-resolver-transport-wagon")
288 (arguments
289 `(#:jar-name "maven-resolver-transport-wagon.jar"
290 #:source-dir "maven-resolver-transport-wagon/src/main/java"
291 #:test-dir "maven-resolver-transport-wagon/src/test"
292 #:jdk ,icedtea-8
293 #:phases
294 (modify-phases %standard-phases
295 (add-before 'build 'generate-sisu
296 (lambda _
297 (mkdir-p "build/classes/META-INF/sisu")
298 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
299 (lambda _
300 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
301 #t))
302 (add-before 'build 'generate-components.xml
303 (lambda _
304 (mkdir-p "build/classes/META-INF/plexus")
305 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
306 (lambda _
307 (display
308 (string-append
309 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
310 <component-set>
311 <components>
312 <component>
313 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
314 <role-hint>plexus</role-hint>
315 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
316 <description />
317 <isolated-realm>false</isolated-realm>
318 <requirements>
319 <requirement>
320 <role>org.codehaus.plexus.PlexusContainer</role>
321 <role-hint />
322 <field-name>container</field-name>
323 </requirement>
324 </requirements>
325 </component>
326 <component>
327 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
328 <role-hint>plexus</role-hint>
329 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
330 <description />
331 <isolated-realm>false</isolated-realm>
332 <requirements>
333 <requirement>
334 <role>org.codehaus.plexus.PlexusContainer</role>
335 <role-hint />
336 <field-name>container</field-name>
337 </requirement>
338 </requirements>
339 </component>
340 </components>
341 </component-set>\n"))))
342 #t)))))
343 (inputs
344 `(("maven-resolver-api" ,maven-resolver-api)
345 ("maven-resolver-spi" ,maven-resolver-spi)
346 ("maven-resolver-util" ,maven-resolver-util)
347 ("java-javax-inject" ,java-javax-inject)
348 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
349 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
350 ("java-plexus-classworld" ,java-plexus-classworlds)
351 ("java-plexus-plexus-util" ,java-plexus-utils)
352 ("java-slf4j-api" ,java-slf4j-api)
353 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
354 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
355 (native-inputs
356 `(("java-junit" ,java-junit)
357 ("java-hamcrest-core" ,java-hamcrest-core)
358 ("maven-resolver-test-util" ,maven-resolver-test-util)
359 ("java-guava" ,java-guava)
360 ("java-cglib" ,java-cglib)
361 ("java-asm" ,java-asm)
362 ("java-aopalliance" ,java-aopalliance)
363 ("java-guice" ,java-guice)))
364 (synopsis "Transport implementation for Maven")
365 (description "This package contains a transport implementation based on
366 Maven Wagon, for use in Maven.")))
367
368 ;; aether is the parent project that was forked into maven-resolver. It used
369 ;; to be used with older versions of Maven, and is still required for some
370 ;; plugins and their dependencies. This version is required for the plugins,
371 ;; even though there are newer versions of this project.
372 (define-public java-sonatype-aether-api
373 (package
374 (name "java-sonatype-aether-api")
375 (version "1.7")
376 (source (origin
377 (method git-fetch)
378 (uri (git-reference
379 (url "https://github.com/sonatype/sonatype-aether")
380 (commit (string-append "aether-" version))))
381 (file-name (git-file-name name version))
382 (sha256
383 (base32
384 "1wn9fv91n40bvlwbzy0dmh0xqibxl2mpzpnbibhqss3c0zlr1ccq"))))
385 (build-system ant-build-system)
386 (arguments
387 `(#:jar-name "aether-api.jar"
388 #:source-dir "aether-api/src/main/java"
389 #:test-dir "aether-api/src/test"
390 #:phases
391 (modify-phases %standard-phases
392 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
393 (replace 'install (install-from-pom "aether-api/pom.xml")))))
394 (propagated-inputs
395 `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-6)))
396 (native-inputs `(("java-junit" ,java-junit)))
397 (home-page "https://github.com/sonatype/sonatype-aether")
398 (synopsis "Maven repository system API")
399 (description "This package contains the API for the maven repository system.")
400 (license license:asl2.0)))
401
402 (define-public java-sonatype-aether-spi
403 (package
404 (inherit java-sonatype-aether-api)
405 (name "java-sonatype-aether-spi")
406 (arguments
407 `(#:jar-name "aether-spi.jar"
408 #:source-dir "aether-spi/src/main/java"
409 #:tests? #f; no tests
410 #:phases
411 (modify-phases %standard-phases
412 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
413 (propagated-inputs
414 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
415 (synopsis "Maven repository system SPI")
416 (description "This package contains the service provider interface (SPI)
417 for repository system implementations and repository connectors.")))
418
419 (define-public java-sonatype-aether-test-util
420 (package
421 (inherit java-sonatype-aether-api)
422 (name "java-sonatype-aether-test-util")
423 (arguments
424 `(#:jar-name "java-sonatype-aether-test-util.jar"
425 #:source-dir "aether-test-util/src/main/java"
426 #:test-dir "aether-test-util/src/test"))
427 (inputs
428 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
429 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)))
430 (synopsis "Utility classes for testing the maven repository system")
431 (description "This package contains a collection of utility classes to
432 ease testing of the repository system.")))
433
434 (define-public java-sonatype-aether-util
435 (package
436 (inherit java-sonatype-aether-api)
437 (name "java-sonatype-aether-util")
438 (arguments
439 `(#:jar-name "aether-util.jar"
440 #:source-dir "aether-util/src/main/java"
441 #:test-dir "aether-util/src/test"
442 #:phases
443 (modify-phases %standard-phases
444 (replace 'install (install-from-pom "aether-util/pom.xml")))))
445 (propagated-inputs
446 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
447 (native-inputs
448 `(("java-junit" ,java-junit)
449 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))
450 (synopsis "Utility classes for the maven repository system")
451 (description "This package contains a collection of utility classes to
452 ease usage of the repository system.")))
453
454 (define-public java-sonatype-aether-impl
455 (package
456 (inherit java-sonatype-aether-api)
457 (name "java-sonatype-aether-impl")
458 (arguments
459 `(#:jar-name "aether-impl.jar"
460 #:source-dir "aether-impl/src/main/java"
461 #:test-dir "aether-impl/src/test"
462 #:phases
463 (modify-phases %standard-phases
464 (add-before 'install 'fix-pom
465 (lambda _
466 (substitute* "aether-impl/pom.xml"
467 (("org.sonatype.sisu") "org.codehaus.plexus")
468 (("sisu-inject-plexus") "plexus-container-default"))
469 #t))
470 (add-after 'build 'generate-metadata
471 (lambda _
472 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
473 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
474 "--source" "src/main/java"
475 "--output" "build/classes/META-INF/plexus/components.xml"
476 "--classes" "build/classes"
477 "--descriptors" "build/classes/META-INF")
478 #t))
479 (add-after 'generate-metadata 'rebuild
480 (lambda _
481 (invoke "ant" "jar")
482 #t))
483 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
484 (propagated-inputs
485 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
486 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
487 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
488 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
489 ("java-plexus-container-default" ,java-plexus-container-default)
490 ("java-slf4j-api" ,java-slf4j-api)))
491 (native-inputs
492 `(("java-junit" ,java-junit)
493 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
494 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))))
495
496 ;; Again, this old version is required by some maven plugins
497 (define-public java-eclipse-aether-api
498 (package
499 (name "java-eclipse-aether-api")
500 (version "1.0.2")
501 (source (origin
502 (method git-fetch)
503 (uri (git-reference
504 (url "https://github.com/eclipse/aether-core")
505 (commit "aether-1.0.2.v20150114")))
506 (file-name (git-file-name name version))
507 (sha256
508 (base32
509 "14d336nn0kh5ddf23j37va3hd8gaai19llrpxhf4bcc7g7sgdqxs"))))
510 (build-system ant-build-system)
511 (arguments
512 `(#:jar-name "aether-api.jar"
513 #:source-dir "aether-api/src/main/java"
514 #:test-dir "aether-api/src/test"
515 #:phases
516 (modify-phases %standard-phases
517 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
518 (replace 'install (install-from-pom "aether-api/pom.xml")))))
519 (native-inputs `(("java-junit" ,java-junit)))
520 (home-page "https://github.com/sonatype/sonatype-aether")
521 (synopsis "Maven repository system API")
522 (description "This package contains the API for the maven repository system.")
523 (license license:asl2.0)))
524
525 (define-public java-eclipse-aether-spi
526 (package
527 (inherit java-eclipse-aether-api)
528 (name "java-eclipse-aether-spi")
529 (arguments
530 `(#:jar-name "aether-spi.jar"
531 #:source-dir "aether-spi/src/main/java"
532 #:test-dir "aether-spi/src/test"
533 #:phases
534 (modify-phases %standard-phases
535 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
536 (propagated-inputs
537 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
538 (synopsis "Maven repository system SPI")
539 (description "This package contains the service provider interface (SPI)
540 for repository system implementations and repository connectors.")))
541
542 (define-public java-eclipse-aether-test-util
543 (package
544 (inherit java-eclipse-aether-api)
545 (name "java-eclipse-aether-test-util")
546 (arguments
547 `(#:jar-name "aether-test-util.jar"
548 #:source-dir "aether-test-util/src/main/java"
549 #:test-dir "aether-test-util/src/test"
550 #:phases
551 (modify-phases %standard-phases
552 (replace 'install (install-from-pom "aether-util/pom.xml")))))
553 (propagated-inputs
554 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
555 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)))
556 (synopsis "Utility classes for testing the maven repository system")
557 (description "This package contains a collection of utility classes to
558 ease testing of the repository system.")))
559
560 (define-public java-eclipse-aether-util
561 (package
562 (inherit java-eclipse-aether-api)
563 (name "java-eclipse-aether-util")
564 (arguments
565 `(#:jar-name "aether-util.jar"
566 #:source-dir "aether-util/src/main/java"
567 #:test-dir "aether-util/src/test"
568 #:phases
569 (modify-phases %standard-phases
570 (replace 'install (install-from-pom "aether-util/pom.xml")))))
571 (propagated-inputs
572 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
573 (native-inputs
574 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
575 ("java-junit" ,java-junit)))
576 (synopsis "Utility classes for the maven repository system")
577 (description "This package contains a collection of utility classes to
578 ease usage of the repository system.")))
579
580 (define-public java-eclipse-aether-impl
581 (package
582 (inherit java-eclipse-aether-api)
583 (name "java-eclipse-aether-impl")
584 (arguments
585 `(#:jar-name "aether-impl.jar"
586 #:source-dir "aether-impl/src/main/java"
587 #:test-dir "aether-impl/src/test"
588 #:phases
589 (modify-phases %standard-phases
590 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
591 (propagated-inputs
592 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
593 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)
594 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
595 ("java-javax-inject" ,java-javax-inject)
596 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
597 ("java-guice" ,java-guice)
598 ("java-slf4j-api" ,java-slf4j-api)))
599 (native-inputs
600 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
601 ("java-junit" ,java-junit)))))
602
603 (define-public maven-shared-utils
604 (package
605 (name "maven-shared-utils")
606 (version "3.2.1")
607 (source (origin
608 (method url-fetch)
609 (uri (string-append "mirror://apache/maven/shared/"
610 "maven-shared-utils-" version "-source-release.zip"))
611 (sha256
612 (base32
613 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
614 (build-system ant-build-system)
615 (arguments
616 `(#:jar-name "maven-shared-utils.jar"
617 #:source-dir "src/main/java"
618 #:phases
619 (modify-phases %standard-phases
620 (add-before 'build 'fix-/bin/sh-invocation
621 (lambda _
622 (substitute* (find-files "src" ".*.java$")
623 (("/bin/sh") (which "sh")))
624 #t))
625 (add-before 'check 'remove-cyclic-dep
626 (lambda _
627 (delete-file
628 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
629 #t))
630 (replace 'install
631 (install-from-pom "pom.xml")))))
632 (propagated-inputs
633 `(("java-jansi" ,java-jansi)
634 ("java-commons-io" ,java-commons-io)
635 ("java-jsr305" ,java-jsr305)
636 ("java-plexus-container-default" ,java-plexus-container-default)
637 ("maven-parent-pom-30" ,maven-parent-pom-30)))
638 (native-inputs
639 `(("unzip" ,unzip)
640 ("java-junit" ,java-junit)
641 ("java-hamcrest-core" ,java-hamcrest-core)
642 ("java-commons-lang3" ,java-commons-lang3)))
643 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
644 (synopsis "Plexus-util replacement for maven")
645 (description "This project aims to be a functional replacement for
646 plexus-utils in Maven. It is not a 100% API compatible replacement but a
647 replacement with improvements.")
648 (license license:asl2.0)))
649
650 (define-public maven-plugin-annotations
651 (package
652 (name "maven-plugin-annotations")
653 (version "3.5")
654 (source (origin
655 (method url-fetch)
656 (uri (string-append "mirror://apache/maven/"
657 "plugin-tools/maven-plugin-tools-" version
658 "-source-release.zip"))
659 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
660 (build-system ant-build-system)
661 (arguments
662 `(#:jar-name "maven-plugin-annotations.jar"
663 #:source-dir "maven-plugin-annotations/src/main/java"
664 #:tests? #f))
665 (inputs
666 `(("maven-artifact" ,maven-artifact)))
667 (native-inputs
668 `(("unzip" ,unzip)))
669 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
670 (synopsis "Java 5 annotations to use in Mojos")
671 (description "This package contains Java 5 annotations for use in Mojos.")
672 (license license:asl2.0)))
673
674 (define-public maven-wagon-provider-api
675 (package
676 (name "maven-wagon-provider-api")
677 (version "3.3.4")
678 (source (origin
679 (method url-fetch)
680 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
681 "wagon-" version "-source-release.zip"))
682 (sha256
683 (base32
684 "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
685 (build-system ant-build-system)
686 (arguments
687 `(#:jar-name "maven-wagon-provider-api.jar"
688 #:source-dir "wagon-provider-api/src/main/java"
689 #:test-dir "wagon-provider-api/src/test"
690 #:phases
691 (modify-phases %standard-phases
692 (replace 'install
693 (install-from-pom "wagon-provider-api/pom.xml")))))
694 (propagated-inputs
695 `(("java-plexus-utils" ,java-plexus-utils)
696 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
697 (native-inputs
698 `(("unzip" ,unzip)
699 ("java-junit" ,java-junit)
700 ("java-easymock" ,java-easymock)))
701 (home-page "https://maven.apache.org/wagon")
702 (synopsis "Transport abstraction for Maven")
703 (description "Maven Wagon is a transport abstraction that is used in Maven's
704 artifact and repository handling code.")
705 (license license:asl2.0)))
706
707 (define maven-wagon-parent-pom
708 (package
709 (inherit maven-wagon-provider-api)
710 (arguments
711 `(#:tests? #f
712 #:phases
713 (modify-phases %standard-phases
714 (delete 'configure)
715 (delete 'build)
716 (replace 'install
717 (install-pom-file "pom.xml")))))
718 (propagated-inputs
719 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
720 (native-inputs
721 `(("unzip" ,unzip)))))
722
723 (define-public maven-wagon-provider-test
724 (package
725 (inherit maven-wagon-provider-api)
726 (name "maven-wagon-provider-test")
727 (arguments
728 `(#:jar-name "maven-wagon-provider-test.jar"
729 #:source-dir "wagon-provider-test/src/main/java"
730 #:tests? #f; no tests
731 #:jdk ,icedtea-8))
732 (inputs
733 `(("java-plexus-utils" ,java-plexus-utils)
734 ("java-plexus-container-default" ,java-plexus-container-default)
735 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
736 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
737 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
738 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
739 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
740 ("java-slf4j-api" ,java-slf4j-api)
741 ("java-javaee-servletapi" ,java-javaee-servletapi)
742 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
743 (synopsis "Test classes from maven-wagon")
744 (description "Maven Wagon is a transport abstraction that is used in Maven's
745 artifact and repository handling code. This package contains common test
746 classes used in multiple maven-wagon components.")))
747
748 (define-public maven-wagon-file
749 (package
750 (inherit maven-wagon-provider-api)
751 (name "maven-wagon-file")
752 (arguments
753 `(#:jar-name "maven-wagon-file.jar"
754 #:source-dir "wagon-providers/wagon-file/src/main/java"
755 #:test-dir "wagon-providers/wagon-file/src/test"
756 #:jdk ,icedtea-8
757 #:phases
758 (modify-phases %standard-phases
759 (add-before 'check 'fix-paths
760 (lambda _
761 ;; Tests assume they are run by maven, which copies test resources
762 ;; to target. Our ant-build-system does the same, but with the
763 ;; build directory.
764 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
765 (("target") "build"))
766 #t))
767 (add-after 'build 'generate-metadata
768 (lambda _
769 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
770 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
771 "--source" "wagon-providers/wagon-file/src/main/java"
772 "--output" "build/classes/META-INF/plexus/components.xml"
773 "--classes" "build/classes"
774 "--descriptors" "build/classes/META-INF")
775 #t))
776 (add-after 'generate-metadata 'rebuild
777 (lambda _
778 (invoke "ant" "jar")
779 #t)))))
780 (inputs
781 `(("java-plexus-utils" ,java-plexus-utils)
782 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
783 (native-inputs
784 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
785 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
786 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
787 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
788 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
789 ("java-plexus-classworlds" ,java-plexus-classworlds)
790 ("java-guava" ,java-guava)
791 ("java-guice" ,java-guice)
792 ("java-javax-inject" ,java-javax-inject)
793 ("java-cglib" ,java-cglib)
794 ("java-slf4j-api" ,java-slf4j-api)
795 ("java-plexus-utils" ,java-plexus-utils)
796 ("java-plexus-cli" ,java-plexus-cli)
797 ("maven-plugin-api" ,maven-plugin-api)
798 ("maven-plugin-annotations" ,maven-plugin-annotations)
799 ("maven-core" ,maven-core)
800 ("maven-model" ,maven-model)
801 ("java-commons-cli" ,java-commons-cli)
802 ("java-qdox" ,java-qdox)
803 ("java-jdom2" ,java-jdom2)
804 ("java-asm" ,java-asm)
805 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
806 ,@(package-native-inputs maven-wagon-provider-api)))
807 (synopsis "Wagon provider that gets and puts artifacts using the file system")
808 (description "Maven Wagon is a transport abstraction that is used in Maven's
809 artifact and repository handling code. It uses providers, that are tools to
810 manage artifacts and deployment. This package contains the file provider which
811 gets and puts artifacts using the file system.")))
812
813 (define-public maven-wagon-tck-http
814 (package
815 (inherit maven-wagon-provider-api)
816 (name "maven-wagon-tck-http")
817 (arguments
818 `(#:jar-name "maven-wagon-tck-http.jar"
819 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
820 #:tests? #f; no tests
821 #:jdk ,icedtea-8))
822 (inputs
823 `(("java-plexus-util" ,java-plexus-utils)
824 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
825 ("java-javaee-servletapi" ,java-javaee-servletapi)
826 ("java-slf4j-api" ,java-slf4j-api)
827 ("java-commons-codec" ,java-commons-codec)
828 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
829 ("java-plexus-classworlds" ,java-plexus-classworlds)
830 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
831 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
832 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
833 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
834 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
835 (synopsis "Wagon HTTP Test Compatibility Kit")
836 (description "Maven Wagon is a transport abstraction that is used in Maven's
837 artifact and repository handling code. This package contains the HTTP
838 Test Compatibility Kit.")))
839
840 (define-public maven-wagon-http-shared
841 (package
842 (inherit maven-wagon-provider-api)
843 (name "maven-wagon-http-shared")
844 (arguments
845 `(#:jar-name "maven-wagon-http-shared.jar"
846 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
847 #:test-dir "wagon-providers/wagon-http-shared/src/test"
848 #:jdk ,icedtea-8
849 #:phases
850 (modify-phases %standard-phases
851 (add-after 'build 'generate-metadata
852 (lambda _
853 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
854 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
855 "--source" "wagon-providers/wagon-http-shared/src/main/java"
856 "--output" "build/classes/META-INF/plexus/components.xml"
857 "--classes" "build/classes"
858 "--descriptors" "build/classes/META-INF")
859 #t))
860 (add-after 'generate-metadata 'rebuild
861 (lambda _
862 (invoke "ant" "jar")
863 #t)))))
864 (inputs
865 `(("java-plexus-utils" ,java-plexus-utils)
866 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
867 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
868 ("java-commons-io" ,java-commons-io)
869 ("java-jsoup" ,java-jsoup)
870 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
871 (native-inputs
872 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
873 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
874 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
875 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
876 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
877 ("java-plexus-classworlds" ,java-plexus-classworlds)
878 ("java-guava" ,java-guava)
879 ("java-guice" ,java-guice)
880 ("java-javax-inject" ,java-javax-inject)
881 ("java-cglib" ,java-cglib)
882 ("java-slf4j-api" ,java-slf4j-api)
883 ("java-plexus-utils" ,java-plexus-utils)
884 ("java-plexus-cli" ,java-plexus-cli)
885 ("maven-plugin-api" ,maven-plugin-api)
886 ("maven-plugin-annotations" ,maven-plugin-annotations)
887 ("maven-core" ,maven-core)
888 ("maven-model" ,maven-model)
889 ("java-commons-cli" ,java-commons-cli)
890 ("java-qdox" ,java-qdox)
891 ("java-jdom2" ,java-jdom2)
892 ("java-asm" ,java-asm)
893 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
894 ,@(package-native-inputs maven-wagon-provider-api)))
895 (synopsis "Shared Library for wagon providers supporting HTTP.")
896 (description "Maven Wagon is a transport abstraction that is used in Maven's
897 artifact and repository handling code. It uses providers, that are tools to
898 manage artifacts and deployment. This package contains a shared library for
899 wagon providers supporting HTTP.")))
900
901 (define-public maven-wagon-http
902 (package
903 (inherit maven-wagon-provider-api)
904 (name "maven-wagon-http")
905 (arguments
906 `(#:jar-name "maven-wagon-http.jar"
907 #:source-dir "wagon-providers/wagon-http/src/main/java"
908 #:test-dir "wagon-providers/wagon-http/src/test"
909 #:test-exclude (list
910 "**/Abstract*.java"
911 ;; FIXME: javax.net.ssl.SSLHandshakeException:
912 ;; sun.security.validator.ValidatorException:
913 ;; PKIX path building failed:
914 ;; sun.security.provider.certpath.SunCertPathBuilderException:
915 ;; unable to find valid certification path to requested target
916 "**/HttpsWagonPreemptiveTest.java"
917 "**/HttpsWagonTest.java"
918 ;; Injection errors
919 "**/TckTest.java")
920 #:jdk ,icedtea-8
921 #:phases
922 (modify-phases %standard-phases
923 (add-before 'build 'copy-resources
924 (lambda _
925 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
926 "build/classes/META-INF/plexus")
927 #t))
928 (add-before 'check 'fix-resource-path
929 (lambda _
930 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
931 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
932 (("src/test") "wagon-providers/wagon-http/src/test"))
933 #t)))))
934 (inputs
935 `(("java-plexus-utils" ,java-plexus-utils)
936 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
937 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
938 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
939 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
940 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
941 (native-inputs
942 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
943 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
944 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
945 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
946 ("java-plexus-container-default" ,java-plexus-container-default)
947 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
948 ("java-plexus-classworlds" ,java-plexus-classworlds)
949 ("java-guava" ,java-guava)
950 ("java-guice" ,java-guice)
951 ("java-inject" ,java-javax-inject)
952 ("java-cglib" ,java-cglib)
953 ("java-slf4j-api" ,java-slf4j-api)
954 ("java-plexus-utils" ,java-plexus-utils)
955 ("java-plexus-cli" ,java-plexus-cli)
956 ("maven-plugin-api" ,maven-plugin-api)
957 ("maven-plugin-annotations" ,maven-plugin-annotations)
958 ("maven-core" ,maven-core)
959 ("maven-model" ,maven-model)
960 ("java-commons-cli" ,java-commons-cli)
961 ("java-qdox" ,java-qdox)
962 ("java-jdom2" ,java-jdom2)
963 ("java-asm" ,java-asm)
964 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
965 ("java-javaee-servletapi" ,java-javaee-servletapi)
966 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
967 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
968 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
969 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
970 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
971 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
972 ("java-hamcrest-core" ,java-hamcrest-core)
973 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
974 ("java-commons-codec" ,java-commons-codec)
975 ("java-commons-io" ,java-commons-io)
976 ("java-jsoup" ,java-jsoup)
977 ("java-slf4j-simple" ,java-slf4j-simple)
978 ,@(package-native-inputs maven-wagon-provider-api)))
979 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
980 (description "Maven Wagon is a transport abstraction that is used in Maven's
981 artifact and repository handling code. It uses providers, that are tools to
982 manage artifacts and deployment. This package contains a Wagon provider that
983 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
984
985 (define maven-pom
986 (package
987 (name "maven-pom")
988 (version "3.6.1")
989 (source (origin
990 (method url-fetch)
991 (uri (string-append "mirror://apache/maven/"
992 "maven-3/" version "/source/"
993 "apache-maven-" version "-src.tar.gz"))
994 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
995 (modules '((guix build utils)))
996 (snippet
997 '(begin
998 (for-each delete-file (find-files "." "\\.jar$"))
999 #t))
1000 (patches
1001 (search-patches "maven-generate-component-xml.patch"
1002 "maven-generate-javax-inject-named.patch"))))
1003 (build-system ant-build-system)
1004 (arguments
1005 `(#:tests? #f
1006 #:phases
1007 (modify-phases %standard-phases
1008 (delete 'configure)
1009 (delete 'build)
1010 (add-before 'install 'fix-dependencies
1011 (lambda _
1012 (substitute* "pom.xml"
1013 (("classWorldsVersion>.*")
1014 (string-append
1015 "classWorldsVersion>"
1016 ,(package-version java-plexus-classworlds)
1017 "</classWorldsVersion>\n"))
1018 (("commonsCliVersion>.*")
1019 (string-append
1020 "commonsCliVersion>"
1021 ,(package-version java-commons-cli)
1022 "</commonsCliVersion>\n"))
1023 (("commonsLangVersion>.*")
1024 (string-append
1025 "commonsLangVersion>"
1026 ,(package-version java-commons-lang3)
1027 "</commonsLangVersion>\n"))
1028 (("plexusUtilsVersion>.*")
1029 (string-append
1030 "plexusUtilsVersion>"
1031 ,(package-version java-plexus-utils)
1032 "</plexusUtilsVersion>\n"))
1033 (("plexusInterpolationVersion>.*")
1034 (string-append
1035 "plexusInterpolationVersion>"
1036 ,(package-version java-plexus-interpolation)
1037 "</plexusInterpolationVersion>\n"))
1038 (("guiceVersion>.*")
1039 (string-append
1040 "guiceVersion>"
1041 ,(package-version java-guice)
1042 "</guiceVersion>\n"))
1043 (("sisuInjectVersion>.*")
1044 (string-append
1045 "sisuInjectVersion>"
1046 ,(package-version java-eclipse-sisu-inject)
1047 "</sisuInjectVersion>\n"))
1048 (("securityDispatcherVersion>.*")
1049 (string-append
1050 "securityDispatcherVersion>"
1051 ,(package-version java-plexus-sec-dispatcher)
1052 "</securityDispatcherVersion>\n"))
1053 (("cipherVersion>.*")
1054 (string-append
1055 "cipherVersion>"
1056 ,(package-version java-plexus-cipher)
1057 "</cipherVersion>\n"))
1058 (("slf4jVersion>.*")
1059 (string-append
1060 "slf4jVersion>"
1061 ,(package-version java-slf4j-api)
1062 "</slf4jVersion>\n"))
1063 (("<classifier>no_aop</classifier>") ""))
1064 #t))
1065 (replace 'install
1066 (install-pom-file "pom.xml")))))
1067 (propagated-inputs
1068 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
1069 (home-page "https://maven.apache.org/")
1070 (synopsis "Build system")
1071 (description "Apache Maven is a software project management and comprehension
1072 tool. This package contains the Maven pom file, used by all maven components.")
1073 (license license:asl2.0)))
1074
1075 (define-public maven-artifact
1076 (package
1077 (inherit maven-pom)
1078 (name "maven-artifact")
1079 (arguments
1080 `(#:jar-name "maven-artifact.jar"
1081 #:source-dir "maven-artifact/src/main/java"
1082 #:test-dir "maven-artifact/src/test"
1083 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
1084 #:phases
1085 (modify-phases %standard-phases
1086 (replace 'install
1087 (install-from-pom "maven-artifact/pom.xml")))))
1088 (propagated-inputs
1089 `(("java-plexus-utils" ,java-plexus-utils)
1090 ("java-commons-lang3" ,java-commons-lang3)
1091 ("maven-pom" ,maven-pom)))
1092 (native-inputs
1093 `(("java-junit" ,java-junit)))
1094 (description "Apache Maven is a software project management and comprehension
1095 tool. This package contains the Maven Artifact classes, providing the
1096 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
1097 jar file is executable and provides a little tool to display how Maven parses
1098 and compares versions:")))
1099
1100 (define-public maven-model
1101 (package
1102 (inherit maven-artifact)
1103 (name "maven-model")
1104 (arguments
1105 `(#:jar-name "maven-model.jar"
1106 #:source-dir "maven-model/src/main/java"
1107 #:test-dir "maven-model/src/test"
1108 #:phases
1109 (modify-phases %standard-phases
1110 (add-before 'build 'generate-models
1111 (lambda* (#:key inputs #:allow-other-keys)
1112 (define (modello-single-mode file version mode)
1113 (invoke "java" "org.codehaus.modello.ModelloCli"
1114 file mode "maven-model/src/main/java" version
1115 "false" "true"))
1116 (let ((file "maven-model/src/main/mdo/maven.mdo"))
1117 (modello-single-mode file "4.0.0" "java")
1118 (modello-single-mode file "4.0.0" "xpp3-reader")
1119 (modello-single-mode file "4.0.0" "xpp3-writer")
1120 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
1121 #t))
1122 (replace 'install (install-from-pom "maven-model/pom.xml")))))
1123 (propagated-inputs
1124 `(("java-commons-lang3" ,java-commons-lang3)
1125 ("java-plexus-utils" ,java-plexus-utils)
1126 ("maven-pom" ,maven-pom)))
1127 (native-inputs
1128 `(("java-modello-core" ,java-modello-core)
1129 ;; for modello:
1130 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1131 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1132 ("java-guice" ,java-guice)
1133 ("java-cglib" ,java-cglib)
1134 ("java-asm" ,java-asm)
1135 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1136 ("java-javax-inject" ,java-javax-inject)
1137 ("java-plexus-classworlds" ,java-plexus-classworlds)
1138 ("java-guava" ,java-guava)
1139 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1140 ("java-sisu-build-api" ,java-sisu-build-api)
1141 ;; modello plugins:
1142 ("java-modello-plugins-java" ,java-modello-plugins-java)
1143 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1144 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1145 ;; for tests
1146 ("java-junit" ,java-junit)))
1147 (description "Apache Maven is a software project management and comprehension
1148 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
1149 so really just plain Java objects.")))
1150
1151 (define-public maven-builder-support
1152 (package
1153 (inherit maven-artifact)
1154 (name "maven-builder-support")
1155 (arguments
1156 `(#:jar-name "maven-builder-support.jar"
1157 #:source-dir "maven-builder-support/src/main/java"
1158 #:jdk ,icedtea-8
1159 #:test-dir "maven-builder-support/src/test"
1160 #:phases
1161 (modify-phases %standard-phases
1162 (add-before 'check 'fix-paths
1163 (lambda _
1164 (with-directory-excursion "maven-builder-support/src/test/java"
1165 (substitute*
1166 '("org/apache/maven/building/FileSourceTest.java"
1167 "org/apache/maven/building/UrlSourceTest.java")
1168 (("target/test-classes") "maven-builder-support/src/test/resources")))
1169 #t))
1170 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
1171 (propagated-inputs
1172 `(("maven-pom" ,maven-pom)))
1173 (native-inputs
1174 `(("java-junit" ,java-junit)))
1175 (description "Apache Maven is a software project management and comprehension
1176 tool. This package contains a support library for descriptor builders (model,
1177 setting, toolchains)")))
1178
1179 (define-public maven-settings
1180 (package
1181 (inherit maven-artifact)
1182 (name "maven-settings")
1183 (arguments
1184 `(#:jar-name "maven-settings.jar"
1185 #:source-dir "maven-settings/src/main/java"
1186 #:tests? #f; no tests
1187 #:phases
1188 (modify-phases %standard-phases
1189 (add-before 'build 'generate-models
1190 (lambda* (#:key inputs #:allow-other-keys)
1191 (define (modello-single-mode file version mode)
1192 (invoke "java" "org.codehaus.modello.ModelloCli"
1193 file mode "maven-settings/src/main/java" version
1194 "false" "true"))
1195 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
1196 (modello-single-mode file "1.1.0" "java")
1197 (modello-single-mode file "1.1.0" "xpp3-reader")
1198 (modello-single-mode file "1.1.0" "xpp3-writer"))
1199 #t))
1200 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
1201 (propagated-inputs
1202 `(("java-plexus-utils" ,java-plexus-utils)
1203 ("maven-pom" ,maven-pom)))
1204 (native-inputs
1205 `(("java-modello-core" ,java-modello-core)
1206 ;; for modello:
1207 ;("container" ,java-plexus-container-default)
1208 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1209 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1210 ("java-guice" ,java-guice)
1211 ("java-cglib" ,java-cglib)
1212 ("java-asm" ,java-asm)
1213 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1214 ("java-javax-inject" ,java-javax-inject)
1215 ("java-plexus-classworlds" ,java-plexus-classworlds)
1216 ("java-plexus-utils" ,java-plexus-utils)
1217 ("java-guava" ,java-guava)
1218 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1219 ("java-sisu-build-api" ,java-sisu-build-api)
1220 ;; modello plugins:
1221 ("java-modello-plugins-java" ,java-modello-plugins-java)
1222 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1223 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1224 (description "Apache Maven is a software project management and comprehension
1225 tool. This package contains strictly the model for Maven settings, that is
1226 simply plain java objects.")))
1227
1228 (define-public maven-settings-builder
1229 (package
1230 (inherit maven-artifact)
1231 (name "maven-settings-builder")
1232 (arguments
1233 `(#:jar-name "maven-settings-builder.jar"
1234 #:source-dir "maven-settings-builder/src/main/java"
1235 #:jdk ,icedtea-8
1236 #:test-dir "maven-settings-builder/src/test"
1237 #:phases
1238 (modify-phases %standard-phases
1239 (add-before 'build 'generate-components.xml
1240 (lambda _
1241 (mkdir-p "build/classes/META-INF/plexus")
1242 (chmod "components.sh" #o755)
1243 (invoke "./components.sh" "maven-settings-builder/src/main/java"
1244 "build/classes/META-INF/plexus/components.xml")
1245 #t))
1246 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1247 (propagated-inputs
1248 `(("java-plexus-utils" ,java-plexus-utils)
1249 ("java-plexus-interpolation" ,java-plexus-interpolation)
1250 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1251 ("maven-builder-support" ,maven-builder-support)
1252 ("maven-settings" ,maven-settings)
1253 ("maven-pom" ,maven-pom)))
1254 (native-inputs
1255 `(("java-junit" ,java-junit)
1256 ("java-plexus-component-annotations" ,java-plexus-component-annotations)))
1257 (description "Apache Maven is a software project management and comprehension
1258 tool. This package contains the effective model builder, with profile activation,
1259 inheritance, interpolation, @dots{}")))
1260
1261 (define-public maven-model-builder
1262 (package
1263 (inherit maven-artifact)
1264 (name "maven-model-builder")
1265 (arguments
1266 `(#:jar-name "maven-model-builder.jar"
1267 #:source-dir "maven-model-builder/src/main/java"
1268 #:jdk ,icedtea-8
1269 #:test-dir "maven-model-builder/src/test"
1270 #:phases
1271 (modify-phases %standard-phases
1272 (add-before 'build 'copy-resources
1273 (lambda _
1274 (copy-recursively "maven-model-builder/src/main/resources"
1275 "build/classes")
1276 #t))
1277 (add-before 'build 'generate-components.xml
1278 (lambda _
1279 (mkdir-p "build/classes/META-INF/plexus")
1280 (chmod "components.sh" #o755)
1281 (invoke "./components.sh" "maven-model-builder/src/main/java"
1282 "build/classes/META-INF/plexus/components.xml")
1283 #t))
1284 (add-before 'check 'fix-paths
1285 (lambda _
1286 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
1287 (("src/test") "maven-model-builder/src/test"))
1288 #t))
1289 (replace 'install
1290 (install-from-pom "maven-model-builder/pom.xml")))))
1291 (propagated-inputs
1292 `(("java-plexus-interpolation" ,java-plexus-interpolation)
1293 ("java-plexus-utils" ,java-plexus-utils)
1294 ("maven-artifact" ,maven-artifact)
1295 ("maven-builder-support" ,maven-builder-support)
1296 ("maven-model" ,maven-model)
1297 ("maven-pom" ,maven-pom)))
1298 (native-inputs
1299 `(("java-junit" ,java-junit)
1300 ("java-guava" ,java-guava)
1301 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1302 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1303 ("guice" ,java-guice)
1304 ("java-cglib" ,java-cglib)
1305 ("java-asm" ,java-asm)
1306 ("sisu-inject" ,java-eclipse-sisu-inject)
1307 ("javax-inject" ,java-javax-inject)
1308 ("java-xmlunit" ,java-xmlunit)
1309 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
1310 ("xbean" ,java-geronimo-xbean-reflect)
1311 ("classworlds" ,java-plexus-classworlds)))
1312 (description "Apache Maven is a software project management and comprehension
1313 tool. This package contains the effective model builder, with profile activation,
1314 inheritance, interpolation, @dots{}")))
1315
1316 (define-public maven-repository-metadata
1317 (package
1318 (inherit maven-artifact)
1319 (name "maven-repository-metadata")
1320 (arguments
1321 `(#:jar-name "maven-repository-metadata.jar"
1322 #:source-dir "maven-repository-metadata/src/main/java"
1323 #:jdk ,icedtea-8
1324 #:tests? #f; no tests
1325 #:phases
1326 (modify-phases %standard-phases
1327 (add-before 'build 'generate-models
1328 (lambda* (#:key inputs #:allow-other-keys)
1329 (define (modello-single-mode file version mode)
1330 (invoke "java" "org.codehaus.modello.ModelloCli"
1331 file mode "maven-repository-metadata/src/main/java" version
1332 "false" "true"))
1333 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1334 (modello-single-mode file "1.1.0" "java")
1335 (modello-single-mode file "1.1.0" "xpp3-reader")
1336 (modello-single-mode file "1.1.0" "xpp3-writer"))
1337 #t))
1338 (replace 'install
1339 (install-from-pom "maven-repository-metadata/pom.xml")))))
1340 (propagated-inputs
1341 `(("java-plexus-utils" ,java-plexus-utils)
1342 ("maven-pom" ,maven-pom)))
1343 (native-inputs
1344 `(("modello" ,java-modello-core)
1345 ;; for modello:
1346 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1347 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1348 ("java-guice" ,java-guice)
1349 ("java-cglib" ,java-cglib)
1350 ("java-asm" ,java-asm)
1351 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1352 ("java-javax-inject" ,java-javax-inject)
1353 ("java-plexus-utils" ,java-plexus-utils)
1354 ("java-plexus-classworlds" ,java-plexus-classworlds)
1355 ("java-guava" ,java-guava)
1356 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1357 ("java-sisu-build-api" ,java-sisu-build-api)
1358 ;; modello plugins:
1359 ("java-modello-plugins-java" ,java-modello-plugins-java)
1360 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1361 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1362 (description "Apache Maven is a software project management and comprehension
1363 tool. This package contains strictly the model for Maven Repository Metadata,
1364 so really just plain objects.")))
1365
1366 (define-public maven-resolver-provider
1367 (package
1368 (inherit maven-artifact)
1369 (name "maven-resolver-provider")
1370 (arguments
1371 `(#:jar-name "maven-resolver-provider.jar"
1372 #:source-dir "maven-resolver-provider/src/main/java"
1373 #:test-dir "maven-resolver-provider/src/test"
1374 #:jdk ,icedtea-8
1375 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1376 #:phases
1377 (modify-phases %standard-phases
1378 (add-before 'build 'generate-sisu-named
1379 (lambda _
1380 (mkdir-p "build/classes/META-INF/sisu")
1381 (chmod "./sisu.sh" #o755)
1382 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1383 "build/classes/META-INF/sisu/javax.inject.Named")
1384 #t))
1385 (replace 'install
1386 (install-from-pom "maven-resolver-provider/pom.xml")))))
1387 (propagated-inputs
1388 `(("maven-model" ,maven-model)
1389 ("maven-model-builder" ,maven-model-builder)
1390 ("maven-resolver-spi" ,maven-resolver-spi)
1391 ("maven-resolver-api" ,maven-resolver-api)
1392 ("maven-resolver-impl" ,maven-resolver-impl)
1393 ("maven-resolver-util" ,maven-resolver-util)
1394 ("maven-builder-support" ,maven-builder-support)
1395 ("maven-repository-metadata" ,maven-repository-metadata)
1396 ("java-plexus-utils" ,java-plexus-utils)
1397 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1398 ("java-guice" ,java-guice)
1399 ("java-javax-inject" ,java-javax-inject)))))
1400
1401 (define-public maven-plugin-api
1402 (package
1403 (inherit maven-artifact)
1404 (name "maven-plugin-api")
1405 (arguments
1406 `(#:jar-name "maven-plugin-api.jar"
1407 #:source-dir "maven-plugin-api/src/main/java"
1408 #:jdk ,icedtea-8
1409 #:test-dir "maven-plugin-api/src/test"
1410 #:phases
1411 (modify-phases %standard-phases
1412 (add-before 'build 'generate-models
1413 (lambda* (#:key inputs #:allow-other-keys)
1414 (define (modello-single-mode file version mode)
1415 (invoke "java" "org.codehaus.modello.ModelloCli"
1416 file mode "maven-plugin-api/src/main/java" version
1417 "false" "true"))
1418 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1419 (modello-single-mode file "1.0.0" "java")
1420 (modello-single-mode file "1.0.0" "xpp3-reader")
1421 (modello-single-mode file "1.0.0" "xpp3-writer"))
1422 #t))
1423 (replace 'install
1424 (install-from-pom "maven-plugin-api/pom.xml")))))
1425 (propagated-inputs
1426 `(("maven-artifact" ,maven-artifact)
1427 ("maven-model" ,maven-model)
1428 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1429 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1430 ("guice" ,java-guice)
1431 ("java-cglib" ,java-cglib)
1432 ("java-asm" ,java-asm)
1433 ("sisu-inject" ,java-eclipse-sisu-inject)
1434 ("javax-inject" ,java-javax-inject)
1435 ("utils" ,java-plexus-utils)))
1436 (native-inputs
1437 `(("modello" ,java-modello-core)
1438 ;; for modello:
1439 ("classworlds" ,java-plexus-classworlds)
1440 ("guava" ,java-guava)
1441 ("xbean" ,java-geronimo-xbean-reflect)
1442 ("build-api" ,java-sisu-build-api)
1443 ;; modello plugins:
1444 ("java" ,java-modello-plugins-java)
1445 ("xml" ,java-modello-plugins-xml)
1446 ("xpp3" ,java-modello-plugins-xpp3)
1447 ;; for tests
1448 ("java-junit" ,java-junit)))
1449 (description "Apache Maven is a software project management and comprehension
1450 tool. This package contains strictly the API for plugins -- composed of goals
1451 implemented by Mojos -- development.
1452
1453 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1454 generally generated from plugin sources using maven-plugin-plugin.")))
1455
1456 (define maven-core-bootstrap
1457 (package
1458 (inherit maven-artifact)
1459 (name "maven-core")
1460 (arguments
1461 `(#:jar-name "maven-core.jar"
1462 #:source-dir "src/main/java"
1463 #:jdk ,icedtea-8
1464 ;; Tests need maven-compat, which requires maven-core
1465 #:tests? #f
1466 #:phases
1467 (modify-phases %standard-phases
1468 (add-before 'configure 'chdir
1469 (lambda _
1470 ;; Required for generating components.xml in maven-core
1471 (chdir "maven-core")
1472 #t))
1473 (add-before 'build 'copy-resources
1474 (lambda _
1475 (mkdir-p "build/classes/")
1476 (copy-recursively "src/main/resources" "build/classes")
1477 #t))
1478 (add-after 'copy-resources 'fill-properties
1479 (lambda _
1480 ;; This file controls the output of some mvn subcommands, such as
1481 ;; mvn -version.
1482 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1483 (("\\$\\{buildNumber\\}") "guix_build")
1484 (("\\$\\{timestamp\\}") "0")
1485 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1486 (("\\$\\{distributionId\\}") "apache-maven")
1487 (("\\$\\{distributionShortName\\}") "Maven")
1488 (("\\$\\{distributionName\\}") "Apache Maven"))
1489 #t))
1490 (add-before 'build 'generate-sisu-named
1491 (lambda _
1492 (mkdir-p "build/classes/META-INF/sisu")
1493 (chmod "../sisu.sh" #o755)
1494 (invoke "../sisu.sh" "src/main/java"
1495 "build/classes/META-INF/sisu/javax.inject.Named")
1496 #t))
1497 (add-before 'build 'generate-models
1498 (lambda* (#:key inputs #:allow-other-keys)
1499 (define (modello-single-mode file version mode)
1500 (invoke "java" "org.codehaus.modello.ModelloCli"
1501 file mode "src/main/java" version
1502 "false" "true"))
1503 (let ((file "src/main/mdo/toolchains.mdo"))
1504 (modello-single-mode file "1.1.0" "java")
1505 (modello-single-mode file "1.1.0" "xpp3-reader")
1506 (modello-single-mode file "1.1.0" "xpp3-writer"))
1507 #t))
1508 (add-before 'install 'fix-pom
1509 (lambda _
1510 (substitute* "pom.xml"
1511 (("<classifier>no_aop</classifier>") ""))
1512 #t))
1513 (replace 'install
1514 (install-from-pom "pom.xml")))))
1515 (propagated-inputs
1516 `(("maven-artifact" ,maven-artifact)
1517 ("maven-resolver-provider" ,maven-resolver-provider)
1518 ("maven-builder-support" ,maven-builder-support)
1519 ("maven-model" ,maven-model)
1520 ("maven-model-builder" ,maven-model-builder)
1521 ("maven-settings" ,maven-settings)
1522 ("maven-settings-builder" ,maven-settings-builder)
1523 ("maven-plugin-api" ,maven-plugin-api)
1524 ("maven-repository-metadata" ,maven-repository-metadata)
1525 ("maven-shared-utils" ,maven-shared-utils)
1526 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1527 ("java-plexus-utils" ,java-plexus-utils)
1528 ("java-commons-lang3" ,java-commons-lang3)
1529 ("java-guava" ,java-guava)
1530 ("java-guice" ,java-guice)
1531 ("maven-resolver-api" ,maven-resolver-api)
1532 ("maven-resolver-spi" ,maven-resolver-spi)
1533 ("maven-resolver-util" ,maven-resolver-util)
1534 ("maven-resolver-impl" ,maven-resolver-impl)
1535 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1536 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1537 ("java-javax-inject" ,java-javax-inject)
1538 ("java-plexus-classworld" ,java-plexus-classworlds)))
1539 (native-inputs
1540 `(("java-modello-core" ,java-modello-core)
1541 ("java-cglib" ,java-cglib)
1542 ("java-asm" ,java-asm)
1543 ("java-plexus-classworlds" ,java-plexus-classworlds)
1544 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1545 ("java-sisu-build-api" ,java-sisu-build-api)
1546 ("java-modello-plugins-java" ,java-modello-plugins-java)
1547 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1548 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1549 ;; tests
1550 ("java-junit" ,java-junit)
1551 ("java-mockito-1" ,java-mockito-1)
1552 ("java-commons-jxpath" ,java-commons-jxpath)))
1553 (description "Apache Maven is a software project management and comprehension
1554 tool. This package contains the maven core classes managing the whole build
1555 process.")))
1556
1557 (define-public maven-core
1558 (package
1559 (inherit maven-core-bootstrap)
1560 (arguments
1561 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1562 ((#:phases phases)
1563 `(modify-phases ,phases
1564 (add-before 'build 'modify-metainf
1565 (lambda _
1566 (substitute* "build.xml"
1567 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1568 #t))
1569 (add-before 'build 'add-maven-files
1570 (lambda _
1571 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1572 (copy-file "pom.xml"
1573 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1574 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1575 (lambda _
1576 (format #t "version=~a~%
1577 groupId=org.apache.maven~%
1578 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1579 #t))
1580 (add-after 'build 'generate-metadata
1581 (lambda _
1582 (define (components file)
1583 (let ((sxml (with-input-from-file file
1584 (lambda _ (xml->sxml (current-input-port)
1585 #:trim-whitespace? #t)))))
1586 ;; Select the list of <component>s inside the <component-set>
1587 ;; and <components>.
1588 ((@ (ice-9 match) match) sxml
1589 (('*TOP*
1590 ('*PI* foo ...)
1591 ('component-set
1592 ('components x ...))) x))))
1593 (use-modules (sxml simple))
1594 (delete-file "build/classes/META-INF/plexus/components.xml")
1595 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1596 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1597 "--source" "build/classes/META-INF/plexus"
1598 "--output" "build/classes/META-INF/plexus/components.t.xml"
1599 "--classes" "build/classes"
1600 "--descriptors" "build/classes")
1601 ;; Now we merge all other components from hand-written xml
1602 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1603 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1604 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1605 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1606 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1607 (lambda _
1608 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1609 (sxml->xml
1610 `(component-set
1611 (components
1612 ,@(append generated-xml components-xml
1613 default-bindings-xml
1614 artifact-handlers-xml)))))))
1615 #t))
1616 (add-after 'generate-metadata 'rebuild
1617 (lambda _
1618 (invoke "ant" "jar")
1619 #t))))))
1620 (native-inputs
1621 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1622 ("java-commons-cli" ,java-commons-cli)
1623 ("java-plexus-cli" ,java-plexus-cli)
1624 ("java-jdom2" ,java-jdom2)
1625 ("java-qdox" ,java-qdox)
1626 ("maven-core-boot" ,maven-core-bootstrap)
1627 ,@(package-native-inputs maven-core-bootstrap)))))
1628
1629 (define-public maven-embedder
1630 (package
1631 (inherit maven-artifact)
1632 (name "maven-embedder")
1633 (arguments
1634 `(#:jar-name "maven-embedder.jar"
1635 #:source-dir "maven-embedder/src/main/java"
1636 #:test-dir "maven-embedder/src/test"
1637 #:test-exclude (list "**/MavenCliTest.java")
1638 #:jdk ,icedtea-8
1639 #:phases
1640 (modify-phases %standard-phases
1641 (add-before 'build 'generate-sisu-named
1642 (lambda _
1643 (mkdir-p "build/classes/META-INF/sisu")
1644 (chmod "sisu.sh" #o755)
1645 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1646 "build/classes/META-INF/sisu/javax.inject.Named")
1647 #t))
1648 (add-before 'build 'generate-models
1649 (lambda* (#:key inputs #:allow-other-keys)
1650 (define (modello-single-mode file version mode)
1651 (invoke "java" "org.codehaus.modello.ModelloCli"
1652 file mode "maven-embedder/src/main/java" version
1653 "false" "true"))
1654 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1655 (modello-single-mode file "1.0.0" "java")
1656 (modello-single-mode file "1.0.0" "xpp3-reader")
1657 (modello-single-mode file "1.0.0" "xpp3-writer"))
1658 #t))
1659 (add-before 'check 'fix-test-paths
1660 (lambda _
1661 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1662 (("target/test-classes") "build/test-classes"))
1663 #t))
1664 (add-before 'check 'fix-test-compilation
1665 (lambda _
1666 ;; Tests are in the java/ subdir. Other subdirectories contain
1667 ;; additional test plugins, with duplicate classes, so we can't
1668 ;; compile them. Also, they are meant to be built with maven, to
1669 ;; test its build process.
1670 (substitute* "build.xml"
1671 (("srcdir=\"maven-embedder/src/test\"")
1672 "srcdir=\"maven-embedder/src/test/java\""))
1673 #t))
1674 (replace 'install
1675 (install-from-pom "maven-embedder/pom.xml")))))
1676 (propagated-inputs
1677 `(("maven-core" ,maven-core)
1678 ("maven-artifact" ,maven-artifact)
1679 ("maven-plugin-api" ,maven-plugin-api)
1680 ("maven-builder-support" ,maven-builder-support)
1681 ("maven-model" ,maven-model)
1682 ("maven-model-builder" ,maven-model-builder)
1683 ("maven-settings" ,maven-settings)
1684 ("maven-settings-builder" ,maven-settings-builder)
1685 ("maven-shared-utils" ,maven-shared-utils)
1686 ("java-plexus-classworlds" ,java-plexus-classworlds)
1687 ("java-plexus-util" ,java-plexus-utils)
1688 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1689 ("java-plexus-cipher" ,java-plexus-cipher)
1690 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1691 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1692 ("maven-resolevr-util" ,maven-resolver-util)
1693 ("maven-resolevr-api" ,maven-resolver-api)
1694 ("java-logback-core" ,java-logback-core)
1695 ("java-logback-classic" ,java-logback-classic)
1696 ("java-commons-cli" ,java-commons-cli)
1697 ("java-commons-io" ,java-commons-io)
1698 ("java-commons-lang3" ,java-commons-lang3)
1699 ("java-guava" ,java-guava)
1700 ("java-guice" ,java-guice)
1701 ("java-javax-inject" ,java-javax-inject)
1702 ("java-slf4j-api" ,java-slf4j-api)
1703 ("java-slf4j-simple" ,java-slf4j-simple)
1704 ("java-jsr250" ,java-jsr250)))
1705 (native-inputs
1706 `(("java-modello-core" ,java-modello-core)
1707 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1708 ("java-sisu-build-api" ,java-sisu-build-api)
1709 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1710 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1711 ("java-cglib" ,java-cglib)
1712 ("java-asm" ,java-asm)
1713 ("java-modello-plugins-java" ,java-modello-plugins-java)
1714 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1715 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1716 ;; tests
1717 ("java-junit" ,java-junit)
1718 ("java-objenesis" ,java-objenesis)
1719 ("java-mockito-1" ,java-mockito-1)
1720 ("java-hamcrest-core" ,java-hamcrest-core)))
1721 (description "Apache Maven is a software project management and comprehension
1722 tool. This package contains a Maven embeddable component, with CLI and
1723 logging support.")))
1724
1725 (define-public maven-compat
1726 (package
1727 (inherit maven-artifact)
1728 (name "maven-compat")
1729 (arguments
1730 `(#:jar-name "maven-compat.jar"
1731 #:source-dir "src/main/java"
1732 #:jdk ,icedtea-8
1733 #:test-dir "src/test"
1734 #:phases
1735 (modify-phases %standard-phases
1736 ;; Tests assume we're in this directory
1737 (add-before 'configure 'chdir
1738 (lambda _
1739 (chdir "maven-compat")
1740 #t))
1741 (add-before 'build 'recreate-removed-jar
1742 (lambda _
1743 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1744 (const #t))
1745 (with-directory-excursion "src/test/resources"
1746 (with-output-to-file "artifact-install/artifact-1.0.jar"
1747 (lambda _
1748 (format #t "dummy~%")))
1749 (for-each
1750 (lambda (file)
1751 (with-output-to-file file
1752 (lambda _
1753 (format #t "foo~%"))))
1754 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1755 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1756 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1757 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1758 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1759 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1760 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1761 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1762 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1763 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1764 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1765 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1766 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1767 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1768 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1769 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1770 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1771 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1772 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1773 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1774 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1775 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1776 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1777 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1778 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1779 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1780 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1781 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1782 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1783 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1784 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1785 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1786 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1787 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1788 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1789 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1790 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1791 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1792 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1793 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1794 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1795 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1796 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1797 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1798 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1799 (with-directory-excursion "local-repo/snapshot-test/jars"
1800 (for-each
1801 (lambda (file)
1802 (with-output-to-file file
1803 (lambda _
1804 ;; No end-of-line
1805 (format #t "local"))))
1806 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1807 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1808 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1809 (for-each
1810 (lambda (letter)
1811 (with-directory-excursion
1812 (string-append "src/test/remote-repo/org/apache/maven/its/"
1813 letter "/0.1")
1814 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1815 letter)))
1816 (mkdir-p dir)
1817 (copy-file (string-append letter "-0.1.pom")
1818 (string-append dir "/pom.xml"))
1819 (with-output-to-file (string-append dir "/pom.properties")
1820 (lambda _
1821 (format #t "version=0.1~%")
1822 (format #t "groupId=org.apache.maven.its")
1823 (format #t (string-append "artifactId=" letter))))
1824 (with-output-to-file "META-INF/MANIFEST.MF"
1825 (lambda _
1826 (format #t "Manifest-Version: 1.0~%"))))
1827 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1828 (string-append letter "-0.1.jar") "META-INF")))
1829 '("a" "b"))
1830 #t))
1831 (add-before 'build 'generate-models
1832 (lambda* (#:key inputs #:allow-other-keys)
1833 (define (modello-single-mode file version mode)
1834 (invoke "java" "org.codehaus.modello.ModelloCli"
1835 file mode "src/main/java" version
1836 "false" "true"))
1837 (let ((file "src/main/mdo/profiles.mdo"))
1838 (modello-single-mode file "1.0.0" "java")
1839 (modello-single-mode file "1.0.0" "xpp3-reader")
1840 (modello-single-mode file "1.0.0" "xpp3-writer"))
1841 (let ((file "src/main/mdo/paramdoc.mdo"))
1842 (modello-single-mode file "1.0.0" "java")
1843 (modello-single-mode file "1.0.0" "xpp3-reader")
1844 (modello-single-mode file "1.0.0" "xpp3-writer"))
1845 #t))
1846 (add-after 'build 'generate-metadata
1847 (lambda _
1848 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1849 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1850 "--source" "src/main/java"
1851 "--output" "build/classes/META-INF/plexus/components.xml"
1852 "--classes" "build/classes"
1853 "--descriptors" "build/classes/META-INF")
1854 #t))
1855 (add-before 'check 'build-tests
1856 (lambda _
1857 (invoke "ant" "compile-tests")
1858 #t))
1859 (add-after 'build-tests 'generate-test-metadata
1860 (lambda _
1861 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1862 ":build/classes"
1863 ":build/test-classes")
1864 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1865 "--source" "src/test/java"
1866 "--output" "build/test-classes/META-INF/plexus/components.xml"
1867 "--classes" "build/test-classes"
1868 "--descriptors" "build/test-classes/META-INF")
1869 #t))
1870 (add-after 'generate-metadata 'rebuild
1871 (lambda _
1872 (invoke "ant" "jar")
1873 #t))
1874 (replace 'install
1875 (install-from-pom "pom.xml")))))
1876 (propagated-inputs
1877 `(("maven-artifact" ,maven-artifact)
1878 ("maven-repository-metadata" ,maven-repository-metadata)
1879 ("maven-builder-support" ,maven-builder-support)
1880 ("maven-model" ,maven-model)
1881 ("maven-model-builder" ,maven-model-builder)
1882 ("maven-settings" ,maven-settings)
1883 ("maven-settings-builder" ,maven-settings-builder)
1884 ("maven-core" ,maven-core)
1885 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1886 ("maven-wagon-file" ,maven-wagon-file)
1887 ("maven-resolver-api" ,maven-resolver-api)
1888 ("maven-resolver-util" ,maven-resolver-util)
1889 ("maven-resolver-spi" ,maven-resolver-spi)
1890 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1891 (native-inputs
1892 `(("java-modello-core" ,java-modello-core)
1893 ("java-plexus-utils" ,java-plexus-utils)
1894 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1895 ("java-plexus-classworlds" ,java-plexus-classworlds)
1896 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1897 ("java-sisu-build-api" ,java-sisu-build-api)
1898 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1899 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1900 ("java-javax-inject" ,java-javax-inject)
1901 ("java-guice" ,java-guice)
1902 ("java-guava" ,java-guava)
1903 ("java-cglib" ,java-cglib)
1904 ("java-asm" ,java-asm)
1905 ("java-modello-plugins-java" ,java-modello-plugins-java)
1906 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1907 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1908 ;; metadata
1909 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1910 ("java-commons-cli" ,java-commons-cli)
1911 ("java-plexus-cli" ,java-plexus-cli)
1912 ("java-jdom2" ,java-jdom2)
1913 ("maven-plugin-api" ,maven-plugin-api)
1914 ("java-qdox" ,java-qdox)
1915 ;; tests
1916 ("java-plexus-cipher" ,java-plexus-cipher)
1917 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1918 ("java-jsr250" ,java-jsr250)
1919 ("java-cdi-api" ,java-cdi-api)
1920 ("java-junit" ,java-junit)
1921 ("maven-resolver-impl" ,maven-resolver-impl)
1922 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1923 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1924 ("java-commons-lang3" ,java-commons-lang3)
1925 ("java-aop" ,java-aopalliance)
1926 ("maven-resolver-provider" ,maven-resolver-provider)
1927 ("java-slf4j-api" ,java-slf4j-api)
1928 ("java-slf4j-simple" ,java-slf4j-simple)
1929 ,@(package-inputs java-slf4j-api)))
1930 (description "Apache Maven is a software project management and comprehension
1931 tool. This package contains Maven2 classes maintained as compatibility
1932 layer for plugins that need to keep Maven2 compatibility.")))
1933
1934 (define-public maven
1935 (package
1936 (inherit maven-artifact)
1937 (name "maven")
1938 (arguments
1939 `(#:phases
1940 (modify-phases %standard-phases
1941 (replace 'build
1942 (lambda* (#:key inputs #:allow-other-keys)
1943 ;; Recreate the configuration for the loader
1944 (with-output-to-file "apache-maven/src/bin/m2.conf"
1945 (lambda _
1946 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1947 (format #t "~%")
1948 (format #t "set maven.conf default ${maven.home}/conf~%")
1949 (format #t "~%")
1950 (format #t "[plexus.core]~%")
1951 (format #t "load ${maven.conf}/logging~%")
1952 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1953 ;; Reference every jar so plexus-classworlds can find them.
1954 (for-each
1955 (lambda (dependency)
1956 (for-each
1957 (lambda (file)
1958 (format #t "load ~a~%" file))
1959 (find-files (assoc-ref inputs dependency) ".*.jar$")))
1960 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1961 "maven-builder-support" "maven-model" "maven-model-builder"
1962 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1963 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1964 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1965 "maven-resolver-connector-basic" "maven-resolver-provider"
1966 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1967 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1968 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1969 "maven-wagon-http-shared" "maven-wagon-tck-http"
1970 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1971 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1972 "java-javax-inject" "java-plexus-component-annotations"
1973 "java-plexus-utils" "java-plexus-interpolation"
1974 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1975 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1976 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1977 "java-slf4j-simple"))))
1978 (substitute* "apache-maven/src/bin/mvn"
1979 (("cygwin=false;")
1980 (string-append
1981 "CLASSPATH="
1982 (car (find-files
1983 (assoc-ref inputs "java-plexus-classworlds")
1984 ".*.jar"))
1985 "\ncygwin=false;"))
1986 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1987 #t))
1988 (delete 'check)
1989 (replace 'install
1990 (lambda* (#:key outputs #:allow-other-keys)
1991 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1992 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1993 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1994 (for-each (lambda (file)
1995 (install-file (string-append "apache-maven/src/bin/" file)
1996 bin)
1997 (chmod (string-append bin file) #o755))
1998 '("mvn" "mvnDebug" "mvnyjp"))
1999 (install-file "apache-maven/src/bin/m2.conf" bin)
2000 (copy-recursively "apache-maven/src/conf" conf))
2001 #t)))))
2002 (inputs
2003 `(("java-plexus-classworlds" ,java-plexus-classworlds)
2004 ("maven-artifact" ,maven-artifact)
2005 ("maven-embedder" ,maven-embedder)
2006 ("maven-core" ,maven-core)
2007 ("maven-compat" ,maven-compat)
2008 ("maven-builder-support" ,maven-builder-support)
2009 ("maven-model" ,maven-model)
2010 ("maven-model-builder" ,maven-model-builder)
2011 ("maven-settings" ,maven-settings)
2012 ("maven-settings-builder" ,maven-settings-builder)
2013 ("maven-plugin-api" ,maven-plugin-api)
2014 ("maven-repository-metadata" ,maven-repository-metadata)
2015 ("maven-shared-utils" ,maven-shared-utils)
2016 ("maven-resolver-api" ,maven-resolver-api)
2017 ("maven-resolver-spi" ,maven-resolver-spi)
2018 ("maven-resolver-util" ,maven-resolver-util)
2019 ("maven-resolver-impl" ,maven-resolver-impl)
2020 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
2021 ("maven-resolver-provider" ,maven-resolver-provider)
2022 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
2023 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2024 ("maven-wagon-file" ,maven-wagon-file)
2025 ("maven-wagon-http" ,maven-wagon-http)
2026 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
2027 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
2028 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
2029 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
2030 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
2031 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2032 ("java-guice" ,java-guice)
2033 ("java-aopalliance" ,java-aopalliance)
2034 ("java-cglib" ,java-cglib)
2035 ("java-asm" ,java-asm)
2036 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
2037 ("java-javax-inject" ,java-javax-inject)
2038 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2039 ("java-plexus-utils" ,java-plexus-utils)
2040 ("java-plexus-interpolation" ,java-plexus-interpolation)
2041 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2042 ("java-plexus-cipher" ,java-plexus-cipher)
2043 ("java-guava" ,java-guava)
2044 ("java-jansi" ,java-jansi)
2045 ("java-jsr250" ,java-jsr250)
2046 ("java-cdi-api" ,java-cdi-api)
2047 ("java-commons-cli" ,java-commons-cli)
2048 ("java-commons-io" ,java-commons-io)
2049 ("java-commons-lang3" ,java-commons-lang3)
2050 ("java-slf4j-api" ,java-slf4j-api)
2051 ;; TODO: replace with maven-slf4j-provider
2052 ("java-slf4j-simple" ,java-slf4j-simple)))
2053 (propagated-inputs
2054 `(("coreutils" ,coreutils)
2055 ("which" ,which)))
2056 (description "Apache Maven is a software project management and comprehension
2057 tool. Based on the concept of a project object model: builds, dependency
2058 management, documentation creation, site publication, and distribution
2059 publication are all controlled from the @file{pom.xml} declarative file. Maven
2060 can be extended by plugins to utilise a number of other development tools for
2061 reporting or the build process.")))
2062
2063 ;; Many plugins require maven 3.0 as a dependency.
2064 (define maven-3.0-pom
2065 (package
2066 (inherit maven-pom)
2067 (version "3.0")
2068 (source (origin
2069 (method git-fetch)
2070 (uri (git-reference
2071 (url "https://github.com/apache/maven")
2072 (commit (string-append "maven-" version))))
2073 (file-name (git-file-name "maven" version))
2074 (sha256
2075 (base32
2076 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2077 (modules '((guix build utils)))
2078 (snippet
2079 '(begin
2080 (for-each delete-file (find-files "." "\\.jar$"))
2081 (for-each (lambda (file) (chmod file #o644))
2082 (find-files "." "."))
2083 #t))
2084 (patches
2085 (search-patches "maven-generate-component-xml.patch"
2086 "maven-generate-javax-inject-named.patch"))))
2087 (propagated-inputs
2088 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2089
2090 (define-public maven-3.0-artifact
2091 (package
2092 (inherit maven-artifact)
2093 (version (package-version maven-3.0-pom))
2094 (source (package-source maven-3.0-pom))
2095 (propagated-inputs
2096 (map
2097 (lambda (input)
2098 (if (equal? (car input) "maven-pom")
2099 `("maven-pom" ,maven-3.0-pom)
2100 input))
2101 (package-propagated-inputs maven-artifact)))))
2102
2103 (define-public maven-3.0-model
2104 (package
2105 (inherit maven-model)
2106 (version (package-version maven-3.0-pom))
2107 (source (package-source maven-3.0-pom))
2108 (propagated-inputs
2109 (map
2110 (lambda (input)
2111 (if (equal? (car input) "maven-pom")
2112 `("maven-pom" ,maven-3.0-pom)
2113 input))
2114 (package-propagated-inputs maven-artifact)))
2115 (arguments
2116 `(#:jar-name "maven-model.jar"
2117 #:source-dir "maven-model/src/main/java"
2118 #:test-dir "maven-model/src/test"
2119 #:modules
2120 ((guix build ant-build-system)
2121 (guix build java-utils)
2122 (guix build syscalls)
2123 (guix build utils))
2124 #:phases
2125 (modify-phases %standard-phases
2126 (add-after 'configure 'use-newer-model
2127 (lambda* (#:key inputs #:allow-other-keys)
2128 ;; The model has almost not changed, but the newer version is
2129 ;; needed to prevent an error in the newer modello we have
2130 (let ((source (assoc-ref inputs "maven-source"))
2131 (dir (mkdtemp! "maven-source-XXXXXXXX")))
2132 (with-directory-excursion dir
2133 (invoke "tar" "xf" source)
2134 (copy-file (car (find-files "." "maven.mdo"))
2135 "../maven-model/src/main/mdo/maven.mdo")))
2136 #t))
2137 (add-before 'build 'generate-models
2138 (lambda* (#:key inputs #:allow-other-keys)
2139 (define (modello-single-mode file version mode)
2140 (invoke "java" "org.codehaus.modello.ModelloCli"
2141 file mode "maven-model/src/main/java" version
2142 "false" "true" "UTF-8"))
2143 (let ((file "maven-model/src/main/mdo/maven.mdo"))
2144 (modello-single-mode file "4.0.0" "java")
2145 (modello-single-mode file "4.0.0" "xpp3-reader")
2146 (modello-single-mode file "4.0.0" "xpp3-writer")
2147 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
2148 #t))
2149 (replace 'install
2150 (install-from-pom "maven-model/pom.xml")))))
2151 (inputs
2152 `(("maven-source" ,(package-source maven-pom))
2153 ,@(package-inputs maven-model)))))
2154
2155 (define-public maven-3.0-settings
2156 (package
2157 (inherit maven-settings)
2158 (version (package-version maven-3.0-pom))
2159 (source (package-source maven-3.0-pom))
2160 (propagated-inputs
2161 (map
2162 (lambda (input)
2163 (if (equal? (car input) "maven-pom")
2164 `("maven-pom" ,maven-3.0-pom)
2165 input))
2166 (package-propagated-inputs maven-settings)))))
2167
2168 (define-public maven-3.0-settings-builder
2169 (package
2170 (inherit maven-settings-builder)
2171 (version (package-version maven-3.0-pom))
2172 (source (package-source maven-3.0-pom))
2173 (propagated-inputs
2174 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2175 ,@(filter
2176 (lambda (a) a)
2177 (map
2178 (lambda (input)
2179 (match (car input)
2180 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2181 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2182 ("maven-builder-support" #f)
2183 (_ input)))
2184 (package-propagated-inputs maven-settings-builder)))))))
2185
2186 (define-public maven-3.0-model-builder
2187 (package
2188 (inherit maven-model-builder)
2189 (version (package-version maven-3.0-pom))
2190 (source (package-source maven-3.0-pom))
2191 (propagated-inputs
2192 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2193 ,@(filter
2194 (lambda (a) a)
2195 (map
2196 (lambda (input)
2197 (match (car input)
2198 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2199 ("maven-model" `("maven-model" ,maven-3.0-model))
2200 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2201 ("maven-builder-support" #f)
2202 (_ input)))
2203 (package-propagated-inputs maven-model-builder)))))))
2204
2205 (define-public maven-3.0-plugin-api
2206 (package
2207 (inherit maven-plugin-api)
2208 (version (package-version maven-3.0-pom))
2209 (source (package-source maven-3.0-pom))
2210 (arguments
2211 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2212 ((#:phases phases)
2213 `(modify-phases ,phases
2214 (add-before 'install 'fix-pom
2215 (lambda _
2216 (substitute* "maven-plugin-api/pom.xml"
2217 (("org.sonatype.sisu") "org.codehaus.plexus")
2218 (("sisu-inject-plexus") "plexus-container-default"))
2219 #t))))))
2220 (propagated-inputs
2221 (map
2222 (lambda (input)
2223 (match (car input)
2224 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2225 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2226 ("maven-model" `("maven-model" ,maven-3.0-model))
2227 (_ input)))
2228 (package-propagated-inputs maven-model-builder)))
2229 (native-inputs
2230 `(("java-plexus-container-default" ,java-plexus-container-default)
2231 ,@(package-native-inputs maven-plugin-api)))))
2232
2233 (define-public maven-3.0-repository-metadata
2234 (package
2235 (inherit maven-repository-metadata)
2236 (version (package-version maven-3.0-pom))
2237 (source (package-source maven-3.0-pom))
2238 (propagated-inputs
2239 (map
2240 (lambda (input)
2241 (if (equal? (car input) "maven-pom")
2242 `("maven-pom" ,maven-3.0-pom)
2243 input))
2244 (package-propagated-inputs maven-repository-metadata)))))
2245
2246 (define-public maven-3.0-aether-provider
2247 (package
2248 (inherit maven-3.0-pom)
2249 (name "maven-aether-provider")
2250 (arguments
2251 `(#:jar-name "maven-aether-provider.jar"
2252 #:source-dir "maven-aether-provider/src/main/java"
2253 #:tests? #f; no tests in 3.0
2254 #:phases
2255 (modify-phases %standard-phases
2256 (add-after 'build 'generate-metadata
2257 (lambda _
2258 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2259 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2260 "--source" "src/main/java"
2261 "--output" "build/classes/META-INF/plexus/components.xml"
2262 "--classes" "build/classes"
2263 "--descriptors" "build/classes/META-INF")
2264 #t))
2265 (add-after 'generate-metadata 'rebuild
2266 (lambda _
2267 (invoke "ant" "jar")
2268 #t))
2269 (replace 'install
2270 (install-from-pom "maven-aether-provider/pom.xml")))))
2271 (propagated-inputs
2272 `(("maven-model" ,maven-3.0-model)
2273 ("maven-model-builder" ,maven-3.0-model-builder)
2274 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2275 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2276 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
2277 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2278 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
2279 ("java-plexus-utils" ,java-plexus-utils)
2280 ("maven-pom" ,maven-3.0-pom)))
2281 (native-inputs
2282 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))))
2283
2284 (define-public maven-3.0-core
2285 (package
2286 (inherit maven-core)
2287 (version (package-version maven-3.0-pom))
2288 (source (package-source maven-3.0-pom))
2289 (arguments
2290 `(#:jar-name "maven-core.jar"
2291 #:source-dir "src/main/java"
2292 #:tests? #f
2293 #:phases
2294 (modify-phases %standard-phases
2295 (add-before 'configure 'chdir
2296 (lambda _
2297 ;; Required for generating components.xml in maven-core
2298 (chdir "maven-core")
2299 #t))
2300 (add-before 'build 'generate-models
2301 (lambda* (#:key inputs #:allow-other-keys)
2302 (define (modello-single-mode file version mode)
2303 (invoke "java" "org.codehaus.modello.ModelloCli"
2304 file mode "src/main/java" version
2305 "false" "true" "UTF-8"))
2306 (let ((file "src/main/mdo/toolchains.mdo"))
2307 (modello-single-mode file "1.0.0" "java")
2308 (modello-single-mode file "1.0.0" "xpp3-reader")
2309 (modello-single-mode file "1.0.0" "xpp3-writer"))
2310 #t))
2311 (add-before 'build 'copy-resources
2312 (lambda _
2313 (mkdir-p "build/classes/")
2314 (copy-recursively "src/main/resources" "build/classes")
2315 #t))
2316 (add-after 'build 'generate-metadata
2317 (lambda _
2318 (define (components file)
2319 (let ((sxml (with-input-from-file file
2320 (lambda _ (xml->sxml (current-input-port)
2321 #:trim-whitespace? #t)))))
2322 ;; Select the list of <component>s inside the <component-set>
2323 ;; and <components>.
2324 ((@ (ice-9 match) match) sxml
2325 (('*TOP*
2326 ('*PI* foo ...)
2327 ('component-set
2328 ('components x ...))) x))))
2329 (use-modules (sxml simple))
2330 (delete-file "build/classes/META-INF/plexus/components.xml")
2331 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2332 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2333 "--source" "build/classes/META-INF/plexus"
2334 "--output" "build/classes/META-INF/plexus/components.t.xml"
2335 "--classes" "build/classes"
2336 "--descriptors" "build/classes")
2337 ;; Now we merge all other components from hand-written xml
2338 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
2339 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
2340 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
2341 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
2342 (lambda _
2343 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2344 (sxml->xml
2345 `(component-set
2346 (components
2347 ,@(append generated-xml components-xml
2348 artifact-handlers-xml)))))))
2349 #t))
2350 (add-after 'generate-metadata 'rebuild
2351 (lambda _
2352 (invoke "ant" "jar")
2353 #t))
2354 (add-before 'install 'fix-pom
2355 (lambda _
2356 (substitute* "pom.xml"
2357 (("org.sonatype.sisu") "org.codehaus.plexus")
2358 (("sisu-inject-plexus") "plexus-container-default"))
2359 #t))
2360 (replace 'install
2361 (install-from-pom "pom.xml")))))
2362 (propagated-inputs
2363 `(("maven-model" ,maven-3.0-model)
2364 ("maven-settings" ,maven-3.0-settings)
2365 ("maven-settings-builder" ,maven-3.0-settings-builder)
2366 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2367 ("maven-artifact" ,maven-3.0-artifact)
2368 ("maven-model-builder" ,maven-3.0-model-builder)
2369 ("maven-aether-provider" ,maven-3.0-aether-provider)
2370 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2371 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2372 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2373 ("java-plexus-interpolation" ,java-plexus-interpolation)
2374 ("java-plexus-utils" ,java-plexus-utils)
2375 ("java-plexus-classworlds" ,java-plexus-classworlds)
2376 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2377 ("java-plexus-container-default" ,java-plexus-container-default)
2378 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2379 ("maven-pom" ,maven-3.0-pom)))))
2380
2381 (define-public maven-3.0-compat
2382 (package
2383 (inherit maven-compat)
2384 (version (package-version maven-3.0-pom))
2385 (source (package-source maven-3.0-pom))
2386 (arguments
2387 `(#:tests? #f ;require an old version of java-easymock
2388 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2389 ((#:phases phases)
2390 `(modify-phases ,phases
2391 (add-before 'install 'fix-pom
2392 (lambda _
2393 (substitute* "pom.xml"
2394 (("org.sonatype.sisu") "org.codehaus.plexus")
2395 (("sisu-inject-plexus") "plexus-container-default"))
2396 #t))
2397 (delete 'build-tests))))))
2398 (propagated-inputs
2399 `(("maven-model" ,maven-3.0-model)
2400 ("maven-model-builder" ,maven-3.0-model-builder)
2401 ("maven-settings" ,maven-3.0-settings)
2402 ("maven-settings-builder" ,maven-3.0-settings-builder)
2403 ("maven-artifact" ,maven-3.0-artifact)
2404 ("maven-core" ,maven-3.0-core)
2405 ("maven-aether-provider" ,maven-3.0-aether-provider)
2406 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2407 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2408 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2409 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2410 ("java-plexus-utils" ,java-plexus-utils)
2411 ("java-plexus-interpolation" ,java-plexus-interpolation)
2412 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2413 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2414 ("java-plexus-container-default" ,java-plexus-container-default)
2415 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2416 ("maven-pom" ,maven-3.0-pom)))))
2417
2418 (define-public maven-shared-utils-3.0
2419 (package
2420 (inherit maven-shared-utils)
2421 (version "3.0.0")
2422 (source (origin
2423 (method url-fetch)
2424 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2425 "maven-shared-utils-" version "-source-release.zip"))
2426 (sha256
2427 (base32
2428 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2429 (propagated-inputs
2430 `(("maven-core" ,maven-3.0-core)
2431 ("maven-components-parent-pom" ,maven-components-parent-pom-21)
2432 ,@(package-propagated-inputs maven-shared-utils)))))
2433
2434 (define-public maven-shared-io
2435 (package
2436 (name "maven-shared-io")
2437 (version "3.0.0")
2438 (source (origin
2439 (method url-fetch)
2440 (uri (string-append "mirror://apache/maven/shared/"
2441 "maven-shared-io-" version
2442 "-source-release.zip"))
2443 (sha256
2444 (base32
2445 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2446 (build-system ant-build-system)
2447 (arguments
2448 `(#:jar-name "maven-shared-io.jar"
2449 #:source-dir "src/main/java"
2450 #:test-dir "src/test"
2451 #:phases
2452 (modify-phases %standard-phases
2453 (add-before 'build 'copy-resources
2454 (lambda _
2455 (copy-recursively "src/main/resources" "build/classes/")
2456 (copy-recursively "src/test/resources" "build/test-classes/")
2457 #t))
2458 (replace 'install
2459 (install-from-pom "pom.xml")))))
2460 (propagated-inputs
2461 `(("maven-artifact" ,maven-3.0-artifact)
2462 ("maven-compat" ,maven-3.0-compat)
2463 ("maven-plugin-api" ,maven-3.0-plugin-api)
2464 ("maven-shared-utils" ,maven-shared-utils)
2465 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2466 ("java-plexus-utils" ,java-plexus-utils)
2467 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2468 (native-inputs
2469 `(("unzip" ,unzip)
2470 ("java-junit" ,java-junit)
2471 ("java-easymock" ,java-easymock)))
2472 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2473 (synopsis "Tree-based API for resolution of Maven project dependencies")
2474 (description "This package provides a tree-based API for resolution of
2475 Maven project dependencies.")
2476 (license license:asl2.0)))
2477
2478 (define-public maven-file-management
2479 (package
2480 (name "maven-file-management")
2481 (version "3.0.0")
2482 (source (origin
2483 (method url-fetch)
2484 (uri (string-append "mirror://apache/maven/shared/"
2485 "file-management-" version
2486 "-source-release.zip"))
2487 (sha256
2488 (base32
2489 "0wisz6sm67axrwvx8a75mb9s03h7kzkzfw8j3aaa4sx4k9ph58da"))))
2490 (build-system ant-build-system)
2491 (arguments
2492 `(#:jar-name "maven-file-management.jar"
2493 #:source-dir "src/main/java"
2494 #:phases
2495 (modify-phases %standard-phases
2496 (add-before 'build 'copy-resources
2497 (lambda _
2498 (copy-recursively "src/main/resources" "build/classes/")
2499 #t))
2500 (add-before 'build 'generate-models
2501 (lambda* (#:key inputs #:allow-other-keys)
2502 (define (modello-single-mode file version mode)
2503 (invoke "java"
2504 "org.codehaus.modello.ModelloCli"
2505 file mode "src/main/java" version
2506 "false" "true"))
2507 (let ((file "src/main/mdo/fileset.mdo"))
2508 (modello-single-mode file "1.1.0" "java")
2509 (modello-single-mode file "1.1.0" "xpp3-reader")
2510 (modello-single-mode file "1.1.0" "xpp3-writer"))
2511 #t))
2512 (replace 'install
2513 (install-from-pom "pom.xml")))))
2514 (propagated-inputs
2515 `(("maven-plugin-api" ,maven-3.0-plugin-api)
2516 ("maven-shared-io" ,maven-shared-io)
2517 ("maven-shared-utils" ,maven-shared-utils)
2518 ("java-plexus-utils" ,java-plexus-utils)
2519 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2520 (native-inputs
2521 `(("java-modello-core" ,java-modello-core)
2522 ;; modello plugins:
2523 ("java-modellop-plugins-java" ,java-modello-plugins-java)
2524 ("java-modellop-plugins-xpp3" ,java-modello-plugins-xpp3)
2525 ("unzip" ,unzip)))
2526 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2527 (synopsis "Tree-based API for resolution of Maven project dependencies")
2528 (description "This package provides a tree-based API for resolution of
2529 Maven project dependencies.")
2530 (license license:asl2.0)))
2531
2532 (define-public maven-archiver
2533 (package
2534 (name "maven-archiver")
2535 (version "3.5.0")
2536 (source (origin
2537 (method url-fetch)
2538 (uri (string-append "mirror://apache/maven/shared/"
2539 "maven-archiver-" version
2540 "-source-release.zip"))
2541 (sha256
2542 (base32
2543 "1204xkqj259brpk3yscprml0lbfbyn1vn5nrgqjk44z5vx127lbw"))))
2544 (build-system ant-build-system)
2545 (arguments
2546 `(#:jar-name "maven-archiver.jar"
2547 #:source-dir "src/main/java"
2548 #:phases
2549 (modify-phases %standard-phases
2550 (replace 'install
2551 (install-from-pom "pom.xml")))))
2552 (propagated-inputs
2553 `(("java-commons-io" ,java-commons-io)
2554 ("maven-artifact" ,maven-3.0-artifact)
2555 ("maven-core" ,maven-3.0-core)
2556 ("maven-model" ,maven-3.0-model)
2557 ("maven-shared-utils" ,maven-shared-utils)
2558 ("java-plexus-archiver" ,java-plexus-archiver)
2559 ("java-plexus-interpolation" ,java-plexus-interpolation)
2560 ("java-plexus-utils" ,java-plexus-utils)
2561 ("maen-parent-pom" ,maven-parent-pom-33)))
2562 (native-inputs
2563 `(("java-junit" ,java-junit)
2564 ("java-assertj" ,java-assertj)
2565 ("unzip" ,unzip)))
2566 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2567 (synopsis "Tree-based API for resolution of Maven project dependencies")
2568 (description "This package provides a tree-based API for resolution of
2569 Maven project dependencies.")
2570 (license license:asl2.0)))
2571
2572 (define-public maven-dependency-tree
2573 (package
2574 (name "maven-dependency-tree")
2575 (version "3.0.1")
2576 (source (origin
2577 (method url-fetch)
2578 (uri (string-append "mirror://apache/maven/shared/"
2579 "maven-dependency-tree-" version
2580 "-source-release.zip"))
2581 (sha256
2582 (base32
2583 "0mxfslxvcmjs13jl30zhcg672j970dzn6ihh79w9ajh6sfqmlds2"))))
2584 (build-system ant-build-system)
2585 (arguments
2586 `(#:jar-name "maven-dependency-tree.jar"
2587 #:source-dir "src/main/java"
2588 #:phases
2589 (modify-phases %standard-phases
2590 (replace 'install
2591 (install-from-pom "pom.xml")))))
2592 (propagated-inputs
2593 `(("maven-core" ,maven-3.0-core)
2594 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2595 ("maven-parent-pom" ,maven-parent-pom-30)))
2596 (inputs
2597 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
2598 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2599 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2600 ("java-eclipse-aether-util" ,java-eclipse-aether-util)))
2601 (native-inputs
2602 `(("unzip" ,unzip)
2603 ("java-junit" ,java-junit)))
2604 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2605 (synopsis "Tree-based API for resolution of Maven project dependencies")
2606 (description "This package provides a tree-based API for resolution of
2607 Maven project dependencies.")
2608 (license license:asl2.0)))
2609
2610 (define-public maven-common-artifact-filters
2611 (package
2612 (name "maven-common-artifact-filters")
2613 (version "3.1.0")
2614 (source (origin
2615 (method url-fetch)
2616 (uri (string-append "mirror://apache/maven/shared/"
2617 "maven-common-artifact-filters-" version
2618 "-source-release.zip"))
2619 (sha256
2620 (base32
2621 "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
2622 (build-system ant-build-system)
2623 (arguments
2624 `(#:jar-name "maven-common-artifact-filters.jar"
2625 #:source-dir "src/main/java"
2626 #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
2627 #:phases
2628 (modify-phases %standard-phases
2629 (add-before 'build 'remove-sisu
2630 (lambda _
2631 ;; Replace sisu with an existing dependency, to prevent a failure
2632 ;; when rewritting dependency versions
2633 (substitute* "pom.xml"
2634 (("sisu-inject-plexus") "maven-plugin-api")
2635 (("org.sonatype.sisu") "org.apache.maven"))
2636 #t))
2637 (replace 'install
2638 (install-from-pom "pom.xml")))))
2639 (propagated-inputs
2640 `(("maven-artifact" ,maven-3.0-artifact)
2641 ("maven-model" ,maven-3.0-model)
2642 ("maven-core" ,maven-3.0-core)
2643 ("maven-plugin-api" ,maven-3.0-plugin-api)
2644 ("maven-shared-utils" ,maven-shared-utils)
2645 ("maven-parent-pom" ,maven-parent-pom-33)
2646 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2647 ("java-sonatype-aether-util" ,java-sonatype-aether-util)))
2648 (inputs
2649 `(("maven-resolver-api" ,maven-resolver-api)
2650 ("maven-resolver-util" ,maven-resolver-util)))
2651 (native-inputs
2652 `(("unzip" ,unzip)))
2653 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2654 (synopsis "Tree-based API for resolution of Maven project dependencies")
2655 (description "This package provides a tree-based API for resolution of
2656 Maven project dependencies.")
2657 (license license:asl2.0)))