1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018-2021 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>
7 ;;; This file is part of GNU Guix.
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.
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.
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/>.
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))
38 (define-public maven-resolver-api
40 (name "maven-resolver-api")
45 (url "https://github.com/apache/maven-resolver")
46 (commit (string-append "maven-resolver-" version))))
47 (file-name (git-file-name name version))
50 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
51 (build-system ant-build-system)
53 `(#:jar-name "maven-resolver-api.jar"
54 #:source-dir "maven-resolver-api/src/main/java"
55 #:test-dir "maven-resolver-api/src/test"
57 (modify-phases %standard-phases
59 (install-from-pom "maven-resolver-api/pom.xml")))))
61 `(("java-asm" ,java-asm)
62 ("java-cglib" ,java-cglib)
63 ("java-hamcrest-core" ,java-hamcrest-core)
64 ("java-junit" ,java-junit)
65 ("java-mockito-1" ,java-mockito-1)
66 ("java-objenesis" ,java-objenesis)))
68 `(("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
69 (home-page "https://github.com/apache/maven-resolver")
70 (synopsis "Maven repository system API")
71 (description "This package contains the API for the maven repository system.")
72 (license license:asl2.0)))
74 (define maven-resolver-parent-pom
76 (inherit maven-resolver-api)
77 (name "maven-resolver-parent-pom")
81 (modify-phases %standard-phases
84 (add-before 'install 'fix-pom
86 (substitute* "pom.xml"
87 (("<classifier>no_aop</classifier>") ""))
90 (install-pom-file "pom.xml")))))
91 (propagated-inputs '())))
93 (define-public maven-resolver-spi
95 (inherit maven-resolver-api)
96 (name "maven-resolver-spi")
98 `(#:jar-name "maven-resolver-spi.jar"
99 #:source-dir "maven-resolver-spi/src/main/java"
100 #:test-dir "maven-resolver-spi/src/test"
102 (modify-phases %standard-phases
104 (install-from-pom "maven-resolver-spi/pom.xml")))))
106 `(("maven-resolver-api" ,maven-resolver-api)))
107 (synopsis "Maven repository system SPI")
108 (description "This package contains the service provider interface (SPI)
109 for repository system implementations and repository connectors.")))
111 (define-public maven-resolver-test-util
113 (inherit maven-resolver-api)
114 (name "maven-resolver-test-util")
116 `(#:jar-name "maven-resolver-test-util.jar"
117 #:source-dir "maven-resolver-test-util/src/main/java"
118 #:test-dir "maven-resolver-test-util/src/test"
121 `(("maven-resolver-api" ,maven-resolver-api)
122 ("maven-resolver-spi" ,maven-resolver-spi)))
123 (synopsis "Utility classes for testing the maven repository system")
124 (description "This package contains a collection of utility classes to
125 ease testing of the repository system.")))
127 (define-public maven-resolver-util
129 (inherit maven-resolver-api)
130 (name "maven-resolver-util")
132 `(#:jar-name "maven-resolver-util.jar"
133 #:source-dir "maven-resolver-util/src/main/java"
134 #:test-dir "maven-resolver-util/src/test"
136 (modify-phases %standard-phases
138 (install-from-pom "maven-resolver-util/pom.xml")))))
140 `(("maven-resolver-api" ,maven-resolver-api)))
142 `(("java-junit" ,java-junit)
143 ("java-hamcrest-core" ,java-hamcrest-core)
144 ("maven-resolver-test-util" ,maven-resolver-test-util)))
145 (synopsis "Utility classes for the maven repository system")
146 (description "This package contains a collection of utility classes to
147 ease usage of the repository system.")))
149 (define-public maven-resolver-connector-basic
151 (inherit maven-resolver-api)
152 (name "maven-resolver-connector-basic")
154 `(#:jar-name "maven-resolver-connector-basic.jar"
155 #:source-dir "maven-resolver-connector-basic/src/main/java"
156 #:test-dir "maven-resolver-connector-basic/src/test"
159 (modify-phases %standard-phases
160 (add-before 'build 'generate-sisu
162 (mkdir-p "build/classes/META-INF/sisu")
163 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
165 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
168 (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
170 `(("maven-resolver-api" ,maven-resolver-api)
171 ("maven-resolver-spi" ,maven-resolver-spi)
172 ("maven-resolver-util" ,maven-resolver-util)
173 ("java-slf4j-api" ,java-slf4j-api)))
175 `(("java-javax-inject" ,java-javax-inject)
176 ("java-junit" ,java-junit)
177 ("maven-resolver-test-util" ,maven-resolver-test-util)))
178 (synopsis "Maven repository connector implementation")
179 (description "This package contains a repository connector implementation
180 for repositories using URI-based layouts.")))
182 (define-public maven-resolver-impl
184 (inherit maven-resolver-api)
185 (name "maven-resolver-impl")
187 `(#:jar-name "maven-resolver-impl.jar"
188 #:source-dir "maven-resolver-impl/src/main/java"
189 #:test-dir "maven-resolver-impl/src/test"
191 (modify-phases %standard-phases
192 (add-before 'build 'generate-sisu
194 (mkdir-p "build/classes/META-INF/sisu")
195 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
199 ;; Build this list by looking for files containing "@Named"
200 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
201 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
202 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
203 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
204 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
205 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
206 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
207 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
208 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
209 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
210 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
211 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
212 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
213 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
214 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
215 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
216 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
217 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
218 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
219 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
220 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
221 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
222 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
225 (install-from-pom "maven-resolver-impl/pom.xml")))))
227 `(("maven-resolver-api" ,maven-resolver-api)
228 ("maven-resolver-spi" ,maven-resolver-spi)
229 ("maven-resolver-util" ,maven-resolver-util)
230 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
231 ("java-javax-inject" ,java-javax-inject)
232 ("java-guice" ,java-guice)
233 ("java-slf4j-api" ,java-slf4j-api)
234 ("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
236 `(("java-junit" ,java-junit)
237 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
239 (define-public maven-resolver-transport-wagon
241 (inherit maven-resolver-api)
242 (name "maven-resolver-transport-wagon")
244 `(#:jar-name "maven-resolver-transport-wagon.jar"
245 #:source-dir "maven-resolver-transport-wagon/src/main/java"
246 #:test-dir "maven-resolver-transport-wagon/src/test"
249 (modify-phases %standard-phases
250 (add-before 'build 'generate-sisu
252 (mkdir-p "build/classes/META-INF/sisu")
253 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
255 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
257 (add-before 'build 'generate-components.xml
259 (mkdir-p "build/classes/META-INF/plexus")
260 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
264 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
268 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
269 <role-hint>plexus</role-hint>
270 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
272 <isolated-realm>false</isolated-realm>
275 <role>org.codehaus.plexus.PlexusContainer</role>
277 <field-name>container</field-name>
282 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
283 <role-hint>plexus</role-hint>
284 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
286 <isolated-realm>false</isolated-realm>
289 <role>org.codehaus.plexus.PlexusContainer</role>
291 <field-name>container</field-name>
296 </component-set>\n"))))
299 `(("maven-resolver-api" ,maven-resolver-api)
300 ("maven-resolver-spi" ,maven-resolver-spi)
301 ("maven-resolver-util" ,maven-resolver-util)
302 ("java-javax-inject" ,java-javax-inject)
303 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
304 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
305 ("java-plexus-classworld" ,java-plexus-classworlds)
306 ("java-plexus-plexus-util" ,java-plexus-utils)
307 ("java-slf4j-api" ,java-slf4j-api)
308 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
309 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
311 `(("java-junit" ,java-junit)
312 ("java-hamcrest-core" ,java-hamcrest-core)
313 ("maven-resolver-test-util" ,maven-resolver-test-util)
314 ("java-guava" ,java-guava)
315 ("java-cglib" ,java-cglib)
316 ("java-asm" ,java-asm)
317 ("java-aopalliance" ,java-aopalliance)
318 ("java-guice" ,java-guice)))
319 (synopsis "Transport implementation for Maven")
320 (description "This package contains a transport implementation based on
321 Maven Wagon, for use in Maven.")))
323 ;; aether is the parent project that was forked into maven-resolver. It used
324 ;; to be used with older versions of Maven, and is still required for some
325 ;; plugins and their dependencies. This version is required for the plugins,
326 ;; even though there are newer versions of this project.
327 (define-public java-sonatype-aether-api
329 (name "java-sonatype-aether-api")
334 (url "https://github.com/sonatype/sonatype-aether")
335 (commit (string-append "aether-" version))))
336 (file-name (git-file-name name version))
339 "1wn9fv91n40bvlwbzy0dmh0xqibxl2mpzpnbibhqss3c0zlr1ccq"))))
340 (build-system ant-build-system)
342 `(#:jar-name "aether-api.jar"
343 #:source-dir "aether-api/src/main/java"
344 #:test-dir "aether-api/src/test"
346 (modify-phases %standard-phases
347 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
348 (replace 'install (install-from-pom "aether-api/pom.xml")))))
350 `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-6)))
351 (native-inputs `(("java-junit" ,java-junit)))
352 (home-page "https://github.com/sonatype/sonatype-aether")
353 (synopsis "Maven repository system API")
354 (description "This package contains the API for the maven repository system.")
355 (license license:asl2.0)))
357 (define-public java-sonatype-aether-spi
359 (inherit java-sonatype-aether-api)
360 (name "java-sonatype-aether-spi")
362 `(#:jar-name "aether-spi.jar"
363 #:source-dir "aether-spi/src/main/java"
364 #:tests? #f; no tests
366 (modify-phases %standard-phases
367 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
369 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
370 (synopsis "Maven repository system SPI")
371 (description "This package contains the service provider interface (SPI)
372 for repository system implementations and repository connectors.")))
374 (define-public java-sonatype-aether-test-util
376 (inherit java-sonatype-aether-api)
377 (name "java-sonatype-aether-test-util")
379 `(#:jar-name "java-sonatype-aether-test-util.jar"
380 #:source-dir "aether-test-util/src/main/java"
381 #:test-dir "aether-test-util/src/test"))
383 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
384 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)))
385 (synopsis "Utility classes for testing the maven repository system")
386 (description "This package contains a collection of utility classes to
387 ease testing of the repository system.")))
389 (define-public java-sonatype-aether-util
391 (inherit java-sonatype-aether-api)
392 (name "java-sonatype-aether-util")
394 `(#:jar-name "aether-util.jar"
395 #:source-dir "aether-util/src/main/java"
396 #:test-dir "aether-util/src/test"
398 (modify-phases %standard-phases
399 (replace 'install (install-from-pom "aether-util/pom.xml")))))
401 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
403 `(("java-junit" ,java-junit)
404 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))
405 (synopsis "Utility classes for the maven repository system")
406 (description "This package contains a collection of utility classes to
407 ease usage of the repository system.")))
409 (define-public java-sonatype-aether-impl
411 (inherit java-sonatype-aether-api)
412 (name "java-sonatype-aether-impl")
414 `(#:jar-name "aether-impl.jar"
415 #:source-dir "aether-impl/src/main/java"
416 #:test-dir "aether-impl/src/test"
418 (modify-phases %standard-phases
419 (add-before 'install 'fix-pom
421 (substitute* "aether-impl/pom.xml"
422 (("org.sonatype.sisu") "org.codehaus.plexus")
423 (("sisu-inject-plexus") "plexus-container-default"))
425 (add-after 'build 'generate-metadata
427 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
428 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
429 "--source" "src/main/java"
430 "--output" "build/classes/META-INF/plexus/components.xml"
431 "--classes" "build/classes"
432 "--descriptors" "build/classes/META-INF")
434 (add-after 'generate-metadata 'rebuild
438 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
440 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
441 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
442 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
443 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
444 ("java-plexus-container-default" ,java-plexus-container-default)
445 ("java-slf4j-api" ,java-slf4j-api)))
447 `(("java-junit" ,java-junit)
448 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
449 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))))
451 ;; Again, this old version is required by some maven plugins
452 (define-public java-eclipse-aether-api
454 (name "java-eclipse-aether-api")
459 (url "https://github.com/eclipse/aether-core")
460 (commit "aether-1.0.2.v20150114")))
461 (file-name (git-file-name name version))
464 "14d336nn0kh5ddf23j37va3hd8gaai19llrpxhf4bcc7g7sgdqxs"))))
465 (build-system ant-build-system)
467 `(#:jar-name "aether-api.jar"
468 #:source-dir "aether-api/src/main/java"
469 #:test-dir "aether-api/src/test"
471 (modify-phases %standard-phases
472 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
473 (replace 'install (install-from-pom "aether-api/pom.xml")))))
474 (native-inputs `(("java-junit" ,java-junit)))
475 (home-page "https://github.com/sonatype/sonatype-aether")
476 (synopsis "Maven repository system API")
477 (description "This package contains the API for the maven repository system.")
478 (license license:asl2.0)))
480 (define-public java-eclipse-aether-spi
482 (inherit java-eclipse-aether-api)
483 (name "java-eclipse-aether-spi")
485 `(#:jar-name "aether-spi.jar"
486 #:source-dir "aether-spi/src/main/java"
487 #:test-dir "aether-spi/src/test"
489 (modify-phases %standard-phases
490 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
492 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
493 (synopsis "Maven repository system SPI")
494 (description "This package contains the service provider interface (SPI)
495 for repository system implementations and repository connectors.")))
497 (define-public java-eclipse-aether-test-util
499 (inherit java-eclipse-aether-api)
500 (name "java-eclipse-aether-test-util")
502 `(#:jar-name "aether-test-util.jar"
503 #:source-dir "aether-test-util/src/main/java"
504 #:test-dir "aether-test-util/src/test"
506 (modify-phases %standard-phases
507 (replace 'install (install-from-pom "aether-util/pom.xml")))))
509 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
510 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)))
511 (synopsis "Utility classes for testing the maven repository system")
512 (description "This package contains a collection of utility classes to
513 ease testing of the repository system.")))
515 (define-public java-eclipse-aether-util
517 (inherit java-eclipse-aether-api)
518 (name "java-eclipse-aether-util")
520 `(#:jar-name "aether-util.jar"
521 #:source-dir "aether-util/src/main/java"
522 #:test-dir "aether-util/src/test"
524 (modify-phases %standard-phases
525 (replace 'install (install-from-pom "aether-util/pom.xml")))))
527 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
529 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
530 ("java-junit" ,java-junit)))
531 (synopsis "Utility classes for the maven repository system")
532 (description "This package contains a collection of utility classes to
533 ease usage of the repository system.")))
535 (define-public java-eclipse-aether-impl
537 (inherit java-eclipse-aether-api)
538 (name "java-eclipse-aether-impl")
540 `(#:jar-name "aether-impl.jar"
541 #:source-dir "aether-impl/src/main/java"
542 #:test-dir "aether-impl/src/test"
544 (modify-phases %standard-phases
545 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
547 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
548 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)
549 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
550 ("java-javax-inject" ,java-javax-inject)
551 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
552 ("java-guice" ,java-guice)
553 ("java-slf4j-api" ,java-slf4j-api)))
555 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
556 ("java-junit" ,java-junit)))))
558 (define-public maven-shared-utils
560 (name "maven-shared-utils")
564 (uri (string-append "mirror://apache/maven/shared/"
565 "maven-shared-utils-" version "-source-release.zip"))
568 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
569 (build-system ant-build-system)
571 `(#:jar-name "maven-shared-utils.jar"
572 #:source-dir "src/main/java"
574 (modify-phases %standard-phases
575 (add-before 'build 'fix-/bin/sh-invocation
577 (substitute* (find-files "src" ".*.java$")
578 (("/bin/sh") (which "sh")))
580 (add-before 'check 'remove-cyclic-dep
583 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
586 (install-from-pom "pom.xml")))))
588 `(("java-jansi" ,java-jansi)
589 ("java-commons-io" ,java-commons-io)
590 ("java-jsr305" ,java-jsr305)
591 ("java-plexus-container-default" ,java-plexus-container-default)
592 ("maven-parent-pom-30" ,maven-parent-pom-30)))
595 ("java-junit" ,java-junit)
596 ("java-hamcrest-core" ,java-hamcrest-core)
597 ("java-commons-lang3" ,java-commons-lang3)))
598 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
599 (synopsis "Plexus-util replacement for maven")
600 (description "This project aims to be a functional replacement for
601 plexus-utils in Maven. It is not a 100% API compatible replacement but a
602 replacement with improvements.")
603 (license license:asl2.0)))
605 (define-public maven-plugin-annotations
607 (name "maven-plugin-annotations")
611 (uri (string-append "mirror://apache/maven/"
612 "plugin-tools/maven-plugin-tools-" version
613 "-source-release.zip"))
614 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
615 (build-system ant-build-system)
617 `(#:jar-name "maven-plugin-annotations.jar"
618 #:source-dir "maven-plugin-annotations/src/main/java"
621 (modify-phases %standard-phases
623 (install-from-pom "maven-plugin-annotations/pom.xml")))))
625 `(("maven-artifact" ,maven-artifact)
626 ("maven-plugin-tools-parent-pom" ,maven-plugin-tools-parent-pom)))
629 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
630 (synopsis "Java 5 annotations to use in Mojos")
631 (description "This package contains Java 5 annotations for use in Mojos.")
632 (license license:asl2.0)))
634 (define maven-plugin-tools-parent-pom
636 (inherit maven-plugin-annotations)
637 (name "maven-plugin-tools-parent-pom")
641 (modify-phases %standard-phases
645 (install-pom-file "pom.xml")))))
646 (propagated-inputs '())))
648 (define-public maven-wagon-provider-api
650 (name "maven-wagon-provider-api")
654 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
655 "wagon-" version "-source-release.zip"))
658 "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
659 (build-system ant-build-system)
661 `(#:jar-name "maven-wagon-provider-api.jar"
662 #:source-dir "wagon-provider-api/src/main/java"
663 #:test-dir "wagon-provider-api/src/test"
665 (modify-phases %standard-phases
667 (install-from-pom "wagon-provider-api/pom.xml")))))
669 `(("java-plexus-utils" ,java-plexus-utils)
670 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
673 ("java-junit" ,java-junit)
674 ("java-easymock" ,java-easymock)))
675 (home-page "https://maven.apache.org/wagon")
676 (synopsis "Transport abstraction for Maven")
677 (description "Maven Wagon is a transport abstraction that is used in Maven's
678 artifact and repository handling code.")
679 (license license:asl2.0)))
681 (define maven-wagon-parent-pom
683 (inherit maven-wagon-provider-api)
687 (modify-phases %standard-phases
691 (install-pom-file "pom.xml")))))
693 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
695 `(("unzip" ,unzip)))))
697 (define-public maven-wagon-provider-test
699 (inherit maven-wagon-provider-api)
700 (name "maven-wagon-provider-test")
702 `(#:jar-name "maven-wagon-provider-test.jar"
703 #:source-dir "wagon-provider-test/src/main/java"
704 #:tests? #f; no tests
707 `(("java-plexus-utils" ,java-plexus-utils)
708 ("java-plexus-container-default" ,java-plexus-container-default)
709 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
710 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
711 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
712 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
713 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
714 ("java-slf4j-api" ,java-slf4j-api)
715 ("java-javaee-servletapi" ,java-javaee-servletapi)
716 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
717 (synopsis "Test classes from maven-wagon")
718 (description "Maven Wagon is a transport abstraction that is used in Maven's
719 artifact and repository handling code. This package contains common test
720 classes used in multiple maven-wagon components.")))
722 (define-public maven-wagon-file
724 (inherit maven-wagon-provider-api)
725 (name "maven-wagon-file")
727 `(#:jar-name "maven-wagon-file.jar"
728 #:source-dir "wagon-providers/wagon-file/src/main/java"
729 #:test-dir "wagon-providers/wagon-file/src/test"
732 (modify-phases %standard-phases
733 (add-before 'check 'fix-paths
735 ;; Tests assume they are run by maven, which copies test resources
736 ;; to target. Our ant-build-system does the same, but with the
738 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
739 (("target") "build"))
741 (add-after 'build 'generate-metadata
743 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
744 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
745 "--source" "wagon-providers/wagon-file/src/main/java"
746 "--output" "build/classes/META-INF/plexus/components.xml"
747 "--classes" "build/classes"
748 "--descriptors" "build/classes/META-INF")
750 (add-after 'generate-metadata 'rebuild
755 `(("java-plexus-utils" ,java-plexus-utils)
756 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
758 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
759 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
760 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
761 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
762 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
763 ("java-plexus-classworlds" ,java-plexus-classworlds)
764 ("java-guava" ,java-guava)
765 ("java-guice" ,java-guice)
766 ("java-javax-inject" ,java-javax-inject)
767 ("java-cglib" ,java-cglib)
768 ("java-slf4j-api" ,java-slf4j-api)
769 ("java-plexus-utils" ,java-plexus-utils)
770 ("java-plexus-cli" ,java-plexus-cli)
771 ("maven-plugin-api" ,maven-plugin-api)
772 ("maven-plugin-annotations" ,maven-plugin-annotations)
773 ("maven-core" ,maven-core)
774 ("maven-model" ,maven-model)
775 ("java-commons-cli" ,java-commons-cli)
776 ("java-qdox" ,java-qdox)
777 ("java-jdom2" ,java-jdom2)
778 ("java-asm" ,java-asm)
779 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
780 ,@(package-native-inputs maven-wagon-provider-api)))
781 (synopsis "Wagon provider that gets and puts artifacts using the file system")
782 (description "Maven Wagon is a transport abstraction that is used in Maven's
783 artifact and repository handling code. It uses providers, that are tools to
784 manage artifacts and deployment. This package contains the file provider which
785 gets and puts artifacts using the file system.")))
787 (define-public maven-wagon-tck-http
789 (inherit maven-wagon-provider-api)
790 (name "maven-wagon-tck-http")
792 `(#:jar-name "maven-wagon-tck-http.jar"
793 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
794 #:tests? #f; no tests
797 `(("java-plexus-util" ,java-plexus-utils)
798 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
799 ("java-javaee-servletapi" ,java-javaee-servletapi)
800 ("java-slf4j-api" ,java-slf4j-api)
801 ("java-commons-codec" ,java-commons-codec)
802 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
803 ("java-plexus-classworlds" ,java-plexus-classworlds)
804 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
805 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
806 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
807 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
808 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
809 (synopsis "Wagon HTTP Test Compatibility Kit")
810 (description "Maven Wagon is a transport abstraction that is used in Maven's
811 artifact and repository handling code. This package contains the HTTP
812 Test Compatibility Kit.")))
814 (define-public maven-wagon-http-shared
816 (inherit maven-wagon-provider-api)
817 (name "maven-wagon-http-shared")
819 `(#:jar-name "maven-wagon-http-shared.jar"
820 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
821 #:test-dir "wagon-providers/wagon-http-shared/src/test"
824 (modify-phases %standard-phases
825 (add-after 'build 'generate-metadata
827 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
828 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
829 "--source" "wagon-providers/wagon-http-shared/src/main/java"
830 "--output" "build/classes/META-INF/plexus/components.xml"
831 "--classes" "build/classes"
832 "--descriptors" "build/classes/META-INF")
834 (add-after 'generate-metadata 'rebuild
839 `(("java-plexus-utils" ,java-plexus-utils)
840 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
841 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
842 ("java-commons-io" ,java-commons-io)
843 ("java-jsoup" ,java-jsoup)
844 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
846 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
847 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
848 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
849 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
850 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
851 ("java-plexus-classworlds" ,java-plexus-classworlds)
852 ("java-guava" ,java-guava)
853 ("java-guice" ,java-guice)
854 ("java-javax-inject" ,java-javax-inject)
855 ("java-cglib" ,java-cglib)
856 ("java-slf4j-api" ,java-slf4j-api)
857 ("java-plexus-utils" ,java-plexus-utils)
858 ("java-plexus-cli" ,java-plexus-cli)
859 ("maven-plugin-api" ,maven-plugin-api)
860 ("maven-plugin-annotations" ,maven-plugin-annotations)
861 ("maven-core" ,maven-core)
862 ("maven-model" ,maven-model)
863 ("java-commons-cli" ,java-commons-cli)
864 ("java-qdox" ,java-qdox)
865 ("java-jdom2" ,java-jdom2)
866 ("java-asm" ,java-asm)
867 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
868 ,@(package-native-inputs maven-wagon-provider-api)))
869 (synopsis "Shared Library for wagon providers supporting HTTP.")
870 (description "Maven Wagon is a transport abstraction that is used in Maven's
871 artifact and repository handling code. It uses providers, that are tools to
872 manage artifacts and deployment. This package contains a shared library for
873 wagon providers supporting HTTP.")))
875 (define-public maven-wagon-http
877 (inherit maven-wagon-provider-api)
878 (name "maven-wagon-http")
880 `(#:jar-name "maven-wagon-http.jar"
881 #:source-dir "wagon-providers/wagon-http/src/main/java"
882 #:test-dir "wagon-providers/wagon-http/src/test"
885 ;; FIXME: javax.net.ssl.SSLHandshakeException:
886 ;; sun.security.validator.ValidatorException:
887 ;; PKIX path building failed:
888 ;; sun.security.provider.certpath.SunCertPathBuilderException:
889 ;; unable to find valid certification path to requested target
890 "**/HttpsWagonPreemptiveTest.java"
891 "**/HttpsWagonTest.java"
893 "**/HugeFileDownloadTest.java"
898 (modify-phases %standard-phases
899 (add-before 'build 'copy-resources
901 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
902 "build/classes/META-INF/plexus")
904 (add-before 'check 'fix-resource-path
906 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
907 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
908 (("src/test") "wagon-providers/wagon-http/src/test"))
911 `(("java-plexus-utils" ,java-plexus-utils)
912 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
913 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
914 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
915 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
916 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
918 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
919 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
920 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
921 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
922 ("java-plexus-container-default" ,java-plexus-container-default)
923 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
924 ("java-plexus-classworlds" ,java-plexus-classworlds)
925 ("java-guava" ,java-guava)
926 ("java-guice" ,java-guice)
927 ("java-inject" ,java-javax-inject)
928 ("java-cglib" ,java-cglib)
929 ("java-slf4j-api" ,java-slf4j-api)
930 ("java-plexus-utils" ,java-plexus-utils)
931 ("java-plexus-cli" ,java-plexus-cli)
932 ("maven-plugin-api" ,maven-plugin-api)
933 ("maven-plugin-annotations" ,maven-plugin-annotations)
934 ("maven-core" ,maven-core)
935 ("maven-model" ,maven-model)
936 ("java-commons-cli" ,java-commons-cli)
937 ("java-qdox" ,java-qdox)
938 ("java-jdom2" ,java-jdom2)
939 ("java-asm" ,java-asm)
940 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
941 ("java-javaee-servletapi" ,java-javaee-servletapi)
942 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
943 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
944 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
945 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
946 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
947 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
948 ("java-hamcrest-core" ,java-hamcrest-core)
949 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
950 ("java-commons-codec" ,java-commons-codec)
951 ("java-commons-io" ,java-commons-io)
952 ("java-jsoup" ,java-jsoup)
953 ("java-slf4j-simple" ,java-slf4j-simple)
954 ,@(package-native-inputs maven-wagon-provider-api)))
955 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
956 (description "Maven Wagon is a transport abstraction that is used in Maven's
957 artifact and repository handling code. It uses providers, that are tools to
958 manage artifacts and deployment. This package contains a Wagon provider that
959 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
967 (uri (string-append "mirror://apache/maven/"
968 "maven-3/" version "/source/"
969 "apache-maven-" version "-src.tar.gz"))
970 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
971 (modules '((guix build utils)))
974 (for-each delete-file (find-files "." "\\.jar$"))
977 (search-patches "maven-generate-component-xml.patch"
978 "maven-generate-javax-inject-named.patch"))))
979 (build-system ant-build-system)
983 (modify-phases %standard-phases
986 (add-before 'install 'fix-dependencies
988 (substitute* "pom.xml"
989 (("classWorldsVersion>.*")
991 "classWorldsVersion>"
992 ,(package-version java-plexus-classworlds)
993 "</classWorldsVersion>\n"))
994 (("commonsCliVersion>.*")
997 ,(package-version java-commons-cli)
998 "</commonsCliVersion>\n"))
999 (("commonsLangVersion>.*")
1001 "commonsLangVersion>"
1002 ,(package-version java-commons-lang3)
1003 "</commonsLangVersion>\n"))
1004 (("plexusUtilsVersion>.*")
1006 "plexusUtilsVersion>"
1007 ,(package-version java-plexus-utils)
1008 "</plexusUtilsVersion>\n"))
1009 (("plexusInterpolationVersion>.*")
1011 "plexusInterpolationVersion>"
1012 ,(package-version java-plexus-interpolation)
1013 "</plexusInterpolationVersion>\n"))
1014 (("guiceVersion>.*")
1017 ,(package-version java-guice)
1018 "</guiceVersion>\n"))
1019 (("sisuInjectVersion>.*")
1021 "sisuInjectVersion>"
1022 ,(package-version java-eclipse-sisu-inject)
1023 "</sisuInjectVersion>\n"))
1024 (("securityDispatcherVersion>.*")
1026 "securityDispatcherVersion>"
1027 ,(package-version java-plexus-sec-dispatcher)
1028 "</securityDispatcherVersion>\n"))
1029 (("cipherVersion>.*")
1032 ,(package-version java-plexus-cipher)
1033 "</cipherVersion>\n"))
1034 (("slf4jVersion>.*")
1037 ,(package-version java-slf4j-api)
1038 "</slf4jVersion>\n"))
1039 (("<classifier>no_aop</classifier>") ""))
1042 (install-pom-file "pom.xml")))))
1044 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
1045 (home-page "https://maven.apache.org/")
1046 (synopsis "Build system")
1047 (description "Apache Maven is a software project management and comprehension
1048 tool. This package contains the Maven pom file, used by all maven components.")
1049 (license license:asl2.0)))
1051 (define-public maven-artifact
1054 (name "maven-artifact")
1056 `(#:jar-name "maven-artifact.jar"
1057 #:source-dir "maven-artifact/src/main/java"
1058 #:test-dir "maven-artifact/src/test"
1059 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
1061 (modify-phases %standard-phases
1063 (install-from-pom "maven-artifact/pom.xml")))))
1065 `(("java-plexus-utils" ,java-plexus-utils)
1066 ("java-commons-lang3" ,java-commons-lang3)
1067 ("maven-pom" ,maven-pom)))
1069 `(("java-junit" ,java-junit)))
1070 (description "Apache Maven is a software project management and comprehension
1071 tool. This package contains the Maven Artifact classes, providing the
1072 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
1073 jar file is executable and provides a little tool to display how Maven parses
1074 and compares versions:")))
1076 (define-public maven-model
1078 (inherit maven-artifact)
1079 (name "maven-model")
1081 `(#:jar-name "maven-model.jar"
1082 #:source-dir "maven-model/src/main/java"
1083 #:test-dir "maven-model/src/test"
1085 (modify-phases %standard-phases
1086 (add-before 'build 'generate-models
1087 (lambda* (#:key inputs #:allow-other-keys)
1088 (define (modello-single-mode file version mode)
1089 (invoke "java" "org.codehaus.modello.ModelloCli"
1090 file mode "maven-model/src/main/java" version
1092 (let ((file "maven-model/src/main/mdo/maven.mdo"))
1093 (modello-single-mode file "4.0.0" "java")
1094 (modello-single-mode file "4.0.0" "xpp3-reader")
1095 (modello-single-mode file "4.0.0" "xpp3-writer")
1096 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
1098 (replace 'install (install-from-pom "maven-model/pom.xml")))))
1100 `(("java-commons-lang3" ,java-commons-lang3)
1101 ("java-plexus-utils" ,java-plexus-utils)
1102 ("maven-pom" ,maven-pom)))
1104 `(("java-modello-core" ,java-modello-core)
1106 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1107 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1108 ("java-guice" ,java-guice)
1109 ("java-cglib" ,java-cglib)
1110 ("java-asm" ,java-asm)
1111 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1112 ("java-javax-inject" ,java-javax-inject)
1113 ("java-plexus-classworlds" ,java-plexus-classworlds)
1114 ("java-guava" ,java-guava)
1115 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1116 ("java-sisu-build-api" ,java-sisu-build-api)
1118 ("java-modello-plugins-java" ,java-modello-plugins-java)
1119 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1120 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1122 ("java-junit" ,java-junit)))
1123 (description "Apache Maven is a software project management and comprehension
1124 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
1125 so really just plain Java objects.")))
1127 (define-public maven-builder-support
1129 (inherit maven-artifact)
1130 (name "maven-builder-support")
1132 `(#:jar-name "maven-builder-support.jar"
1133 #:source-dir "maven-builder-support/src/main/java"
1135 #:test-dir "maven-builder-support/src/test"
1137 (modify-phases %standard-phases
1138 (add-before 'check 'fix-paths
1140 (with-directory-excursion "maven-builder-support/src/test/java"
1142 '("org/apache/maven/building/FileSourceTest.java"
1143 "org/apache/maven/building/UrlSourceTest.java")
1144 (("target/test-classes") "maven-builder-support/src/test/resources")))
1146 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
1148 `(("maven-pom" ,maven-pom)))
1150 `(("java-junit" ,java-junit)))
1151 (description "Apache Maven is a software project management and comprehension
1152 tool. This package contains a support library for descriptor builders (model,
1153 setting, toolchains)")))
1155 (define-public maven-settings
1157 (inherit maven-artifact)
1158 (name "maven-settings")
1160 `(#:jar-name "maven-settings.jar"
1161 #:source-dir "maven-settings/src/main/java"
1162 #:tests? #f; no tests
1164 (modify-phases %standard-phases
1165 (add-before 'build 'generate-models
1166 (lambda* (#:key inputs #:allow-other-keys)
1167 (define (modello-single-mode file version mode)
1168 (invoke "java" "org.codehaus.modello.ModelloCli"
1169 file mode "maven-settings/src/main/java" version
1171 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
1172 (modello-single-mode file "1.1.0" "java")
1173 (modello-single-mode file "1.1.0" "xpp3-reader")
1174 (modello-single-mode file "1.1.0" "xpp3-writer"))
1176 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
1178 `(("java-plexus-utils" ,java-plexus-utils)
1179 ("maven-pom" ,maven-pom)))
1181 `(("java-modello-core" ,java-modello-core)
1183 ;("container" ,java-plexus-container-default)
1184 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1185 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1186 ("java-guice" ,java-guice)
1187 ("java-cglib" ,java-cglib)
1188 ("java-asm" ,java-asm)
1189 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1190 ("java-javax-inject" ,java-javax-inject)
1191 ("java-plexus-classworlds" ,java-plexus-classworlds)
1192 ("java-plexus-utils" ,java-plexus-utils)
1193 ("java-guava" ,java-guava)
1194 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1195 ("java-sisu-build-api" ,java-sisu-build-api)
1197 ("java-modello-plugins-java" ,java-modello-plugins-java)
1198 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1199 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1200 (description "Apache Maven is a software project management and comprehension
1201 tool. This package contains strictly the model for Maven settings, that is
1202 simply plain java objects.")))
1204 (define-public maven-settings-builder
1206 (inherit maven-artifact)
1207 (name "maven-settings-builder")
1209 `(#:jar-name "maven-settings-builder.jar"
1210 #:source-dir "maven-settings-builder/src/main/java"
1212 #:test-dir "maven-settings-builder/src/test"
1214 (modify-phases %standard-phases
1215 (add-before 'build 'generate-components.xml
1217 (mkdir-p "build/classes/META-INF/plexus")
1218 (chmod "components.sh" #o755)
1219 (invoke "./components.sh" "maven-settings-builder/src/main/java"
1220 "build/classes/META-INF/plexus/components.xml")
1222 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1224 `(("java-plexus-utils" ,java-plexus-utils)
1225 ("java-plexus-interpolation" ,java-plexus-interpolation)
1226 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1227 ("maven-builder-support" ,maven-builder-support)
1228 ("maven-settings" ,maven-settings)
1229 ("maven-pom" ,maven-pom)))
1231 `(("java-junit" ,java-junit)
1232 ("java-plexus-component-annotations" ,java-plexus-component-annotations)))
1233 (description "Apache Maven is a software project management and comprehension
1234 tool. This package contains the effective model builder, with profile activation,
1235 inheritance, interpolation, @dots{}")))
1237 (define-public maven-model-builder
1239 (inherit maven-artifact)
1240 (name "maven-model-builder")
1242 `(#:jar-name "maven-model-builder.jar"
1243 #:source-dir "maven-model-builder/src/main/java"
1245 #:test-dir "maven-model-builder/src/test"
1247 (modify-phases %standard-phases
1248 (add-before 'build 'copy-resources
1250 (copy-recursively "maven-model-builder/src/main/resources"
1253 (add-before 'build 'generate-components.xml
1255 (mkdir-p "build/classes/META-INF/plexus")
1256 (chmod "components.sh" #o755)
1257 (invoke "./components.sh" "maven-model-builder/src/main/java"
1258 "build/classes/META-INF/plexus/components.xml")
1260 (add-before 'check 'fix-paths
1262 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
1263 (("src/test") "maven-model-builder/src/test"))
1266 (install-from-pom "maven-model-builder/pom.xml")))))
1268 `(("java-plexus-interpolation" ,java-plexus-interpolation)
1269 ("java-plexus-utils" ,java-plexus-utils)
1270 ("maven-artifact" ,maven-artifact)
1271 ("maven-builder-support" ,maven-builder-support)
1272 ("maven-model" ,maven-model)
1273 ("maven-pom" ,maven-pom)))
1275 `(("java-junit" ,java-junit)
1276 ("java-guava" ,java-guava)
1277 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1278 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1279 ("guice" ,java-guice)
1280 ("java-cglib" ,java-cglib)
1281 ("java-asm" ,java-asm)
1282 ("sisu-inject" ,java-eclipse-sisu-inject)
1283 ("javax-inject" ,java-javax-inject)
1284 ("java-xmlunit" ,java-xmlunit)
1285 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
1286 ("xbean" ,java-geronimo-xbean-reflect)
1287 ("classworlds" ,java-plexus-classworlds)))
1288 (description "Apache Maven is a software project management and comprehension
1289 tool. This package contains the effective model builder, with profile activation,
1290 inheritance, interpolation, @dots{}")))
1292 (define-public maven-repository-metadata
1294 (inherit maven-artifact)
1295 (name "maven-repository-metadata")
1297 `(#:jar-name "maven-repository-metadata.jar"
1298 #:source-dir "maven-repository-metadata/src/main/java"
1300 #:tests? #f; no tests
1302 (modify-phases %standard-phases
1303 (add-before 'build 'generate-models
1304 (lambda* (#:key inputs #:allow-other-keys)
1305 (define (modello-single-mode file version mode)
1306 (invoke "java" "org.codehaus.modello.ModelloCli"
1307 file mode "maven-repository-metadata/src/main/java" version
1309 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1310 (modello-single-mode file "1.1.0" "java")
1311 (modello-single-mode file "1.1.0" "xpp3-reader")
1312 (modello-single-mode file "1.1.0" "xpp3-writer"))
1315 (install-from-pom "maven-repository-metadata/pom.xml")))))
1317 `(("java-plexus-utils" ,java-plexus-utils)
1318 ("maven-pom" ,maven-pom)))
1320 `(("modello" ,java-modello-core)
1322 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1323 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1324 ("java-guice" ,java-guice)
1325 ("java-cglib" ,java-cglib)
1326 ("java-asm" ,java-asm)
1327 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1328 ("java-javax-inject" ,java-javax-inject)
1329 ("java-plexus-utils" ,java-plexus-utils)
1330 ("java-plexus-classworlds" ,java-plexus-classworlds)
1331 ("java-guava" ,java-guava)
1332 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1333 ("java-sisu-build-api" ,java-sisu-build-api)
1335 ("java-modello-plugins-java" ,java-modello-plugins-java)
1336 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1337 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1338 (description "Apache Maven is a software project management and comprehension
1339 tool. This package contains strictly the model for Maven Repository Metadata,
1340 so really just plain objects.")))
1342 (define-public maven-resolver-provider
1344 (inherit maven-artifact)
1345 (name "maven-resolver-provider")
1347 `(#:jar-name "maven-resolver-provider.jar"
1348 #:source-dir "maven-resolver-provider/src/main/java"
1349 #:test-dir "maven-resolver-provider/src/test"
1351 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1353 (modify-phases %standard-phases
1354 (add-before 'build 'generate-sisu-named
1356 (mkdir-p "build/classes/META-INF/sisu")
1357 (chmod "./sisu.sh" #o755)
1358 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1359 "build/classes/META-INF/sisu/javax.inject.Named")
1362 (install-from-pom "maven-resolver-provider/pom.xml")))))
1364 `(("maven-model" ,maven-model)
1365 ("maven-model-builder" ,maven-model-builder)
1366 ("maven-resolver-spi" ,maven-resolver-spi)
1367 ("maven-resolver-api" ,maven-resolver-api)
1368 ("maven-resolver-impl" ,maven-resolver-impl)
1369 ("maven-resolver-util" ,maven-resolver-util)
1370 ("maven-builder-support" ,maven-builder-support)
1371 ("maven-repository-metadata" ,maven-repository-metadata)
1372 ("java-plexus-utils" ,java-plexus-utils)
1373 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1374 ("java-guice" ,java-guice)
1375 ("java-javax-inject" ,java-javax-inject)))))
1377 (define-public maven-plugin-api
1379 (inherit maven-artifact)
1380 (name "maven-plugin-api")
1382 `(#:jar-name "maven-plugin-api.jar"
1383 #:source-dir "maven-plugin-api/src/main/java"
1385 #:test-dir "maven-plugin-api/src/test"
1387 (modify-phases %standard-phases
1388 (add-before 'build 'generate-models
1389 (lambda* (#:key inputs #:allow-other-keys)
1390 (define (modello-single-mode file version mode)
1391 (invoke "java" "org.codehaus.modello.ModelloCli"
1392 file mode "maven-plugin-api/src/main/java" version
1394 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1395 (modello-single-mode file "1.0.0" "java")
1396 (modello-single-mode file "1.0.0" "xpp3-reader")
1397 (modello-single-mode file "1.0.0" "xpp3-writer"))
1400 (install-from-pom "maven-plugin-api/pom.xml")))))
1402 `(("maven-artifact" ,maven-artifact)
1403 ("maven-model" ,maven-model)
1404 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1405 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1406 ("guice" ,java-guice)
1407 ("java-cglib" ,java-cglib)
1408 ("java-asm" ,java-asm)
1409 ("sisu-inject" ,java-eclipse-sisu-inject)
1410 ("javax-inject" ,java-javax-inject)
1411 ("utils" ,java-plexus-utils)))
1413 `(("modello" ,java-modello-core)
1415 ("classworlds" ,java-plexus-classworlds)
1416 ("guava" ,java-guava)
1417 ("xbean" ,java-geronimo-xbean-reflect)
1418 ("build-api" ,java-sisu-build-api)
1420 ("java" ,java-modello-plugins-java)
1421 ("xml" ,java-modello-plugins-xml)
1422 ("xpp3" ,java-modello-plugins-xpp3)
1424 ("java-junit" ,java-junit)))
1425 (description "Apache Maven is a software project management and comprehension
1426 tool. This package contains strictly the API for plugins -- composed of goals
1427 implemented by Mojos -- development.
1429 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1430 generally generated from plugin sources using maven-plugin-plugin.")))
1432 (define-public maven-core-bootstrap
1435 (inherit maven-artifact)
1438 `(#:jar-name "maven-core.jar"
1439 #:source-dir "src/main/java"
1441 ;; Tests need maven-compat, which requires maven-core
1444 (modify-phases %standard-phases
1445 (add-before 'configure 'chdir
1447 ;; Required for generating components.xml in maven-core
1448 (chdir "maven-core")
1450 (add-before 'build 'copy-resources
1452 (mkdir-p "build/classes/")
1453 (copy-recursively "src/main/resources" "build/classes")
1455 (add-after 'copy-resources 'fill-properties
1457 ;; This file controls the output of some mvn subcommands, such as
1459 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1460 (("\\$\\{buildNumber\\}") "guix_build")
1461 (("\\$\\{timestamp\\}") "0")
1462 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1463 (("\\$\\{distributionId\\}") "apache-maven")
1464 (("\\$\\{distributionShortName\\}") "Maven")
1465 (("\\$\\{distributionName\\}") "Apache Maven"))
1467 (add-before 'build 'generate-sisu-named
1469 (mkdir-p "build/classes/META-INF/sisu")
1470 (chmod "../sisu.sh" #o755)
1471 (invoke "../sisu.sh" "src/main/java"
1472 "build/classes/META-INF/sisu/javax.inject.Named")
1474 (add-before 'build 'generate-models
1475 (lambda* (#:key inputs #:allow-other-keys)
1476 (define (modello-single-mode file version mode)
1477 (invoke "java" "org.codehaus.modello.ModelloCli"
1478 file mode "src/main/java" version
1480 (let ((file "src/main/mdo/toolchains.mdo"))
1481 (modello-single-mode file "1.1.0" "java")
1482 (modello-single-mode file "1.1.0" "xpp3-reader")
1483 (modello-single-mode file "1.1.0" "xpp3-writer"))
1485 (add-before 'install 'fix-pom
1487 (substitute* "pom.xml"
1488 (("<classifier>no_aop</classifier>") ""))
1491 (install-from-pom "pom.xml")))))
1493 `(("maven-artifact" ,maven-artifact)
1494 ("maven-resolver-provider" ,maven-resolver-provider)
1495 ("maven-builder-support" ,maven-builder-support)
1496 ("maven-model" ,maven-model)
1497 ("maven-model-builder" ,maven-model-builder)
1498 ("maven-settings" ,maven-settings)
1499 ("maven-settings-builder" ,maven-settings-builder)
1500 ("maven-plugin-api" ,maven-plugin-api)
1501 ("maven-repository-metadata" ,maven-repository-metadata)
1502 ("maven-shared-utils" ,maven-shared-utils)
1503 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1504 ("java-plexus-utils" ,java-plexus-utils)
1505 ("java-commons-lang3" ,java-commons-lang3)
1506 ("java-guava" ,java-guava)
1507 ("java-guice" ,java-guice)
1508 ("maven-resolver-api" ,maven-resolver-api)
1509 ("maven-resolver-spi" ,maven-resolver-spi)
1510 ("maven-resolver-util" ,maven-resolver-util)
1511 ("maven-resolver-impl" ,maven-resolver-impl)
1512 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1513 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1514 ("java-javax-inject" ,java-javax-inject)
1515 ("java-plexus-classworld" ,java-plexus-classworlds)))
1517 `(("java-modello-core" ,java-modello-core)
1518 ("java-cglib" ,java-cglib)
1519 ("java-asm" ,java-asm)
1520 ("java-plexus-classworlds" ,java-plexus-classworlds)
1521 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1522 ("java-sisu-build-api" ,java-sisu-build-api)
1523 ("java-modello-plugins-java" ,java-modello-plugins-java)
1524 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1525 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1527 ("java-junit" ,java-junit)
1528 ("java-mockito-1" ,java-mockito-1)
1529 ("java-commons-jxpath" ,java-commons-jxpath)))
1530 (description "Apache Maven is a software project management and comprehension
1531 tool. This package contains the maven core classes managing the whole build
1534 (define-public maven-core
1536 (inherit maven-core-bootstrap)
1538 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1540 `(modify-phases ,phases
1541 (add-before 'build 'modify-metainf
1543 (substitute* "build.xml"
1545 (string-append "message=\"Implementation-Version: "
1546 (package-version maven) "\n\"")))
1548 (add-before 'build 'add-maven-files
1550 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1551 (copy-file "pom.xml"
1552 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1553 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1555 (format #t "version=~a~%
1556 groupId=org.apache.maven~%
1557 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1559 (add-after 'build 'generate-metadata
1561 (define (components file)
1562 (let ((sxml (with-input-from-file file
1563 (lambda _ (xml->sxml (current-input-port)
1564 #:trim-whitespace? #t)))))
1565 ;; Select the list of <component>s inside the <component-set>
1566 ;; and <components>.
1567 ((@ (ice-9 match) match) sxml
1571 ('components x ...))) x))))
1572 (use-modules (sxml simple))
1573 (delete-file "build/classes/META-INF/plexus/components.xml")
1574 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1575 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1576 "--source" "build/classes/META-INF/plexus"
1577 "--output" "build/classes/META-INF/plexus/components.t.xml"
1578 "--classes" "build/classes"
1579 "--descriptors" "build/classes")
1580 ;; Now we merge all other components from hand-written xml
1581 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1582 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1583 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1584 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1585 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1587 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1591 ,@(append generated-xml components-xml
1592 default-bindings-xml
1593 artifact-handlers-xml)))))))
1595 (add-after 'generate-metadata 'fix-plugin-versions
1597 ;; This file controls the default plugins used by Maven. Ensure
1598 ;; we use the versions we have packaged by default
1599 (substitute* '("build/classes/META-INF/plexus/default-bindings.xml"
1600 "build/classes/META-INF/plexus/components.xml")
1601 (("maven-install-plugin:[0-9.]+")
1602 (string-append "maven-install-plugin:"
1603 ,(package-version maven-install-plugin)))
1604 (("maven-resources-plugin:[0-9.]+")
1605 (string-append "maven-resources-plugin:"
1606 ,(package-version maven-resources-plugin)))
1607 (("maven-compiler-plugin:[0-9.]+")
1608 (string-append "maven-compiler-plugin:"
1609 ,(package-version maven-compiler-plugin)))
1610 (("maven-surefire-plugin:[0-9.]+")
1611 (string-append "maven-surefire-plugin:"
1612 ,(package-version maven-surefire-plugin)))
1613 (("maven-jar-plugin:[0-9.]+")
1614 (string-append "maven-jar-plugin:"
1615 ,(package-version maven-jar-plugin))))))
1616 (add-after 'fix-plugin-versions 'rebuild
1618 (invoke "ant" "jar")
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)))))
1629 (define-public maven-embedder
1631 (inherit maven-artifact)
1632 (name "maven-embedder")
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")
1640 (modify-phases %standard-phases
1641 (add-before 'build 'generate-sisu-named
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")
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
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"))
1659 (add-before 'check 'fix-test-paths
1661 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1662 (("target/test-classes") "build/test-classes"))
1664 (add-before 'check 'fix-test-compilation
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\""))
1675 (install-from-pom "maven-embedder/pom.xml")))))
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)))
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)
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.")))
1725 (define-public maven-compat
1727 (inherit maven-artifact)
1728 (name "maven-compat")
1730 `(#:jar-name "maven-compat.jar"
1731 #:source-dir "src/main/java"
1733 #:test-dir "src/test"
1735 (modify-phases %standard-phases
1736 ;; Tests assume we're in this directory
1737 (add-before 'configure 'chdir
1739 (chdir "maven-compat")
1741 (add-before 'build 'recreate-removed-jar
1743 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1745 (with-directory-excursion "src/test/resources"
1746 (with-output-to-file "artifact-install/artifact-1.0.jar"
1748 (format #t "dummy~%")))
1751 (with-output-to-file file
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"
1802 (with-output-to-file file
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"))))
1811 (with-directory-excursion
1812 (string-append "src/test/remote-repo/org/apache/maven/its/"
1814 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
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")
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"
1826 (format #t "Manifest-Version: 1.0~%"))))
1827 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1828 (string-append letter "-0.1.jar") "META-INF")))
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
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"))
1846 (add-after 'build 'generate-metadata
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")
1855 (add-before 'check 'build-tests
1857 (invoke "ant" "compile-tests")
1859 (add-after 'build-tests 'generate-test-metadata
1861 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
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")
1870 (add-after 'generate-metadata 'rebuild
1872 (invoke "ant" "jar")
1875 (install-from-pom "pom.xml")))))
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)))
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)
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)
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.")))
1934 (define-public maven
1936 (inherit maven-artifact)
1940 (modify-phases %standard-phases
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"
1946 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1948 (format #t "set maven.conf default ${maven.home}/conf~%")
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.
1955 (lambda (dependency)
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"
1983 (assoc-ref inputs "java-plexus-classworlds")
1986 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
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)
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))
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)))
2054 `(("coreutils" ,coreutils)
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.")))
2063 ;; Many plugins require maven 3.0 as a dependency.
2064 (define maven-3.0-pom
2071 (url "https://github.com/apache/maven")
2072 (commit (string-append "maven-" version))))
2073 (file-name (git-file-name "maven" version))
2076 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2077 (modules '((guix build utils)))
2080 (for-each delete-file (find-files "." "\\.jar$"))
2081 (for-each (lambda (file) (chmod file #o644))
2082 (find-files "." "."))
2085 (search-patches "maven-generate-component-xml.patch"
2086 "maven-generate-javax-inject-named.patch"))))
2088 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2090 (define-public maven-3.0-artifact
2092 (inherit maven-artifact)
2093 (version (package-version maven-3.0-pom))
2094 (source (package-source maven-3.0-pom))
2098 (if (equal? (car input) "maven-pom")
2099 `("maven-pom" ,maven-3.0-pom)
2101 (package-propagated-inputs maven-artifact)))))
2103 (define-public maven-3.0-model
2105 (inherit maven-model)
2106 (version (package-version maven-3.0-pom))
2107 (source (package-source maven-3.0-pom))
2111 (if (equal? (car input) "maven-pom")
2112 `("maven-pom" ,maven-3.0-pom)
2114 (package-propagated-inputs maven-artifact)))
2116 `(#:jar-name "maven-model.jar"
2117 #:source-dir "maven-model/src/main/java"
2118 #:test-dir "maven-model/src/test"
2120 ((guix build ant-build-system)
2121 (guix build java-utils)
2122 (guix build syscalls)
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")))
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"))
2150 (install-from-pom "maven-model/pom.xml")))))
2152 `(("maven-source" ,(package-source maven-pom))
2153 ,@(package-inputs maven-model)))))
2155 (define-public maven-3.0-settings
2157 (inherit maven-settings)
2158 (version (package-version maven-3.0-pom))
2159 (source (package-source maven-3.0-pom))
2163 (if (equal? (car input) "maven-pom")
2164 `("maven-pom" ,maven-3.0-pom)
2166 (package-propagated-inputs maven-settings)))))
2168 (define-public maven-3.0-settings-builder
2170 (inherit maven-settings-builder)
2171 (version (package-version maven-3.0-pom))
2172 (source (package-source maven-3.0-pom))
2174 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2180 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2181 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2182 ("maven-builder-support" #f)
2184 (package-propagated-inputs maven-settings-builder)))))))
2186 (define-public maven-3.0-model-builder
2188 (inherit maven-model-builder)
2189 (version (package-version maven-3.0-pom))
2190 (source (package-source maven-3.0-pom))
2192 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
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)
2203 (package-propagated-inputs maven-model-builder)))))))
2205 (define-public maven-3.0-plugin-api
2207 (inherit maven-plugin-api)
2208 (version (package-version maven-3.0-pom))
2209 (source (package-source maven-3.0-pom))
2211 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2213 `(modify-phases ,phases
2214 (add-before 'install 'fix-pom
2216 (substitute* "maven-plugin-api/pom.xml"
2217 (("org.sonatype.sisu") "org.codehaus.plexus")
2218 (("sisu-inject-plexus") "plexus-container-default"))
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))
2228 (package-propagated-inputs maven-model-builder)))
2230 `(("java-plexus-container-default" ,java-plexus-container-default)
2231 ,@(package-native-inputs maven-plugin-api)))))
2233 (define-public maven-3.0-repository-metadata
2235 (inherit maven-repository-metadata)
2236 (version (package-version maven-3.0-pom))
2237 (source (package-source maven-3.0-pom))
2241 (if (equal? (car input) "maven-pom")
2242 `("maven-pom" ,maven-3.0-pom)
2244 (package-propagated-inputs maven-repository-metadata)))))
2246 (define-public maven-3.0-aether-provider
2248 (inherit maven-3.0-pom)
2249 (name "maven-aether-provider")
2251 `(#:jar-name "maven-aether-provider.jar"
2252 #:source-dir "maven-aether-provider/src/main/java"
2253 #:tests? #f; no tests in 3.0
2255 (modify-phases %standard-phases
2256 (add-after 'build 'generate-metadata
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")
2265 (add-after 'generate-metadata 'rebuild
2267 (invoke "ant" "jar")
2270 (install-from-pom "maven-aether-provider/pom.xml")))))
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)))
2282 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))))
2284 (define-public maven-3.0-core
2286 (inherit maven-core)
2287 (version (package-version maven-3.0-pom))
2288 (source (package-source maven-3.0-pom))
2290 `(#:jar-name "maven-core.jar"
2291 #:source-dir "src/main/java"
2294 (modify-phases %standard-phases
2295 (add-before 'configure 'chdir
2297 ;; Required for generating components.xml in maven-core
2298 (chdir "maven-core")
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"))
2311 (add-before 'build 'copy-resources
2313 (mkdir-p "build/classes/")
2314 (copy-recursively "src/main/resources" "build/classes")
2316 (add-after 'build 'generate-metadata
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
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"
2343 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2347 ,@(append generated-xml components-xml
2348 artifact-handlers-xml)))))))
2350 (add-after 'generate-metadata 'rebuild
2352 (invoke "ant" "jar")
2354 (add-before 'install 'fix-pom
2356 (substitute* "pom.xml"
2357 (("org.sonatype.sisu") "org.codehaus.plexus")
2358 (("sisu-inject-plexus") "plexus-container-default"))
2361 (install-from-pom "pom.xml")))))
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)))))
2381 (define-public maven-3.0-compat
2383 (inherit maven-compat)
2384 (version (package-version maven-3.0-pom))
2385 (source (package-source maven-3.0-pom))
2387 `(#:tests? #f ;require an old version of java-easymock
2388 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2390 `(modify-phases ,phases
2391 (add-before 'install 'fix-pom
2393 (substitute* "pom.xml"
2394 (("org.sonatype.sisu") "org.codehaus.plexus")
2395 (("sisu-inject-plexus") "plexus-container-default"))
2397 (delete 'build-tests))))))
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)))))
2418 (define-public maven-shared-utils-3.0
2420 (inherit maven-shared-utils)
2424 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2425 "maven-shared-utils-" version "-source-release.zip"))
2428 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2430 `(("maven-core" ,maven-3.0-core)
2431 ("maven-components-parent-pom" ,maven-components-parent-pom-21)
2432 ,@(package-propagated-inputs maven-shared-utils)))))
2434 (define-public maven-shared-utils-3.1
2436 (inherit maven-shared-utils)
2440 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2441 "maven-shared-utils-" version "-source-release.zip"))
2444 "0vfaas4g09ch0agrd1dcxcmhdd3w971ssvfr9mx9gi2lp5nv8w66"))))))
2446 (define-public maven-shared-io
2448 (name "maven-shared-io")
2452 (uri (string-append "mirror://apache/maven/shared/"
2453 "maven-shared-io-" version
2454 "-source-release.zip"))
2457 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2458 (build-system ant-build-system)
2460 `(#:jar-name "maven-shared-io.jar"
2461 #:source-dir "src/main/java"
2462 #:test-dir "src/test"
2464 (modify-phases %standard-phases
2465 (add-before 'build 'copy-resources
2467 (copy-recursively "src/main/resources" "build/classes/")
2468 (copy-recursively "src/test/resources" "build/test-classes/")
2471 (install-from-pom "pom.xml")))))
2473 `(("maven-artifact" ,maven-3.0-artifact)
2474 ("maven-compat" ,maven-3.0-compat)
2475 ("maven-plugin-api" ,maven-3.0-plugin-api)
2476 ("maven-shared-utils" ,maven-shared-utils)
2477 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2478 ("java-plexus-utils" ,java-plexus-utils)
2479 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2482 ("java-junit" ,java-junit)
2483 ("java-easymock" ,java-easymock)))
2484 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2485 (synopsis "Tree-based API for resolution of Maven project dependencies")
2486 (description "This package provides a tree-based API for resolution of
2487 Maven project dependencies.")
2488 (license license:asl2.0)))
2490 (define-public maven-file-management
2492 (name "maven-file-management")
2496 (uri (string-append "mirror://apache/maven/shared/"
2497 "file-management-" version
2498 "-source-release.zip"))
2501 "0wisz6sm67axrwvx8a75mb9s03h7kzkzfw8j3aaa4sx4k9ph58da"))))
2502 (build-system ant-build-system)
2504 `(#:jar-name "maven-file-management.jar"
2505 #:source-dir "src/main/java"
2507 (modify-phases %standard-phases
2508 (add-before 'build 'copy-resources
2510 (copy-recursively "src/main/resources" "build/classes/")
2512 (add-before 'build 'generate-models
2513 (lambda* (#:key inputs #:allow-other-keys)
2514 (define (modello-single-mode file version mode)
2516 "org.codehaus.modello.ModelloCli"
2517 file mode "src/main/java" version
2519 (let ((file "src/main/mdo/fileset.mdo"))
2520 (modello-single-mode file "1.1.0" "java")
2521 (modello-single-mode file "1.1.0" "xpp3-reader")
2522 (modello-single-mode file "1.1.0" "xpp3-writer"))
2525 (install-from-pom "pom.xml")))))
2527 `(("maven-plugin-api" ,maven-3.0-plugin-api)
2528 ("maven-shared-io" ,maven-shared-io)
2529 ("maven-shared-utils" ,maven-shared-utils)
2530 ("java-plexus-utils" ,java-plexus-utils)
2531 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2533 `(("java-modello-core" ,java-modello-core)
2535 ("java-modellop-plugins-java" ,java-modello-plugins-java)
2536 ("java-modellop-plugins-xpp3" ,java-modello-plugins-xpp3)
2538 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2539 (synopsis "Tree-based API for resolution of Maven project dependencies")
2540 (description "This package provides a tree-based API for resolution of
2541 Maven project dependencies.")
2542 (license license:asl2.0)))
2544 (define-public maven-archiver
2546 (name "maven-archiver")
2550 (uri (string-append "mirror://apache/maven/shared/"
2551 "maven-archiver-" version
2552 "-source-release.zip"))
2555 "1204xkqj259brpk3yscprml0lbfbyn1vn5nrgqjk44z5vx127lbw"))))
2556 (build-system ant-build-system)
2558 `(#:jar-name "maven-archiver.jar"
2559 #:source-dir "src/main/java"
2561 (modify-phases %standard-phases
2563 (install-from-pom "pom.xml")))))
2565 `(("java-commons-io" ,java-commons-io)
2566 ("maven-artifact" ,maven-3.0-artifact)
2567 ("maven-core" ,maven-3.0-core)
2568 ("maven-model" ,maven-3.0-model)
2569 ("maven-shared-utils" ,maven-shared-utils)
2570 ("java-plexus-archiver" ,java-plexus-archiver)
2571 ("java-plexus-interpolation" ,java-plexus-interpolation)
2572 ("java-plexus-utils" ,java-plexus-utils)
2573 ("maen-parent-pom" ,maven-parent-pom-33)))
2575 `(("java-junit" ,java-junit)
2576 ("java-assertj" ,java-assertj)
2578 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2579 (synopsis "Tree-based API for resolution of Maven project dependencies")
2580 (description "This package provides a tree-based API for resolution of
2581 Maven project dependencies.")
2582 (license license:asl2.0)))
2584 (define-public maven-dependency-tree
2586 (name "maven-dependency-tree")
2590 (uri (string-append "mirror://apache/maven/shared/"
2591 "maven-dependency-tree-" version
2592 "-source-release.zip"))
2595 "0mxfslxvcmjs13jl30zhcg672j970dzn6ihh79w9ajh6sfqmlds2"))))
2596 (build-system ant-build-system)
2598 `(#:jar-name "maven-dependency-tree.jar"
2599 #:source-dir "src/main/java"
2601 (modify-phases %standard-phases
2603 (install-from-pom "pom.xml")))))
2605 `(("maven-core" ,maven-3.0-core)
2606 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2607 ("maven-parent-pom" ,maven-parent-pom-30)))
2609 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
2610 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2611 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2612 ("java-eclipse-aether-util" ,java-eclipse-aether-util)))
2615 ("java-junit" ,java-junit)))
2616 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2617 (synopsis "Tree-based API for resolution of Maven project dependencies")
2618 (description "This package provides a tree-based API for resolution of
2619 Maven project dependencies.")
2620 (license license:asl2.0)))
2622 (define-public maven-common-artifact-filters
2624 (name "maven-common-artifact-filters")
2628 (uri (string-append "mirror://apache/maven/shared/"
2629 "maven-common-artifact-filters-" version
2630 "-source-release.zip"))
2633 "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
2634 (build-system ant-build-system)
2636 `(#:jar-name "maven-common-artifact-filters.jar"
2637 #:source-dir "src/main/java"
2638 #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
2640 (modify-phases %standard-phases
2641 (add-before 'build 'remove-sisu
2643 ;; Replace sisu with an existing dependency, to prevent a failure
2644 ;; when rewritting dependency versions
2645 (substitute* "pom.xml"
2646 (("sisu-inject-plexus") "maven-plugin-api")
2647 (("org.sonatype.sisu") "org.apache.maven"))
2650 (install-from-pom "pom.xml")))))
2652 `(("maven-artifact" ,maven-3.0-artifact)
2653 ("maven-model" ,maven-3.0-model)
2654 ("maven-core" ,maven-3.0-core)
2655 ("maven-plugin-api" ,maven-3.0-plugin-api)
2656 ("maven-shared-utils" ,maven-shared-utils)
2657 ("maven-parent-pom" ,maven-parent-pom-33)
2658 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2659 ("java-sonatype-aether-util" ,java-sonatype-aether-util)))
2661 `(("maven-resolver-api" ,maven-resolver-api)
2662 ("maven-resolver-util" ,maven-resolver-util)))
2664 `(("unzip" ,unzip)))
2665 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2666 (synopsis "Tree-based API for resolution of Maven project dependencies")
2667 (description "This package provides a tree-based API for resolution of
2668 Maven project dependencies.")
2669 (license license:asl2.0)))
2671 (define-public maven-enforcer-api
2673 (name "maven-enforcer-api")
2674 (version "3.0.0-M3")
2677 (uri (string-append "mirror://apache/maven/enforcer/"
2678 "enforcer-" version "-source-release.zip"))
2681 "014cwj0dqa69nnlzcin8pk9wsjmmg71vsbcpb16cibcjpm6h9wjg"))
2683 (search-patches "maven-enforcer-api-fix-old-dependencies.patch"))))
2684 (build-system ant-build-system)
2686 `(#:jar-name "maven-enforcer-api.jar"
2687 #:source-dir "enforcer-api/src/main/java"
2688 #:tests? #f; no tests
2690 (modify-phases %standard-phases
2692 (install-from-pom "enforcer-api/pom.xml")))))
2694 `(("maven-plugin-api" ,maven-plugin-api)
2695 ("java-plexus-container-default" ,java-plexus-container-default)
2696 ("java-jsr305" ,java-jsr305)
2697 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))
2699 `(("unzip" ,unzip)))
2700 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2701 (synopsis "Tree-based API for resolution of Maven project dependencies")
2702 (description "This package provides a tree-based API for resolution of
2703 Maven project dependencies.")
2704 (license license:asl2.0)))
2706 (define maven-enforcer-parent-pom
2708 (inherit maven-enforcer-api)
2709 (name "maven-enforcer-parent-pom")
2713 (modify-phases %standard-phases
2716 (add-before 'install 'fix-pom-versions
2718 (substitute* "pom.xml"
2719 (("3.8.1") ,(package-version java-commons-lang3))
2720 (("1.4.1") ,(package-version maven-resolver-util))
2721 (("1.12") ,(package-version java-commons-codec))
2722 (("<version>2.2</version>")
2723 ,(string-append "<version>" (package-version maven-dependency-tree)
2726 (install-pom-file "pom.xml")))))
2728 `(("maven-parent-pom" ,maven-parent-pom-30)))))
2730 (define-public maven-enforcer-rules
2732 (inherit maven-enforcer-api)
2733 (name "maven-enforcer-rules")
2735 `(#:tests? #f; requires maven-plugin-testing-harness
2736 #:jar-name "maven-enforcer-rules.jar"
2737 #:source-dir "enforcer-rules/src/main/java"
2738 #:test-dir "enforcer-rules/src/test"
2740 (modify-phases %standard-phases
2742 (install-from-pom "enforcer-rules/pom.xml")))))
2744 `(("maven-artifact" ,maven-artifact)
2745 ("maven-plugin-api" ,maven-plugin-api)
2746 ("maven-core" ,maven-core)
2747 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
2748 ("java-commons-codec" ,java-commons-codec)
2749 ("java-commons-lang3" ,java-commons-lang3)
2750 ("maven-enforcer-api" ,maven-enforcer-api)
2751 ("maven-resolver-util" ,maven-resolver-util)
2752 ("java-bsh" ,java-bsh)
2753 ("maven-dependency-tree" ,maven-dependency-tree)
2754 ("maven-compat" ,maven-3.0-compat)
2755 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
2757 (define-public maven-enforcer-plugin
2759 (inherit maven-enforcer-api)
2760 (name "maven-enforcer-plugin")
2763 #:jar-name "maven-enforcer-plugin.jar"
2764 #:source-dir "maven-enforcer-plugin/src/main/java"
2766 (modify-phases %standard-phases
2767 (add-before 'build 'generate-plugin.xml
2768 (generate-plugin.xml "maven-enforcer-plugin/pom.xml"
2770 "maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/"
2772 (list "DisplayInfoMojo.java")
2773 (list "EnforceMojo.java"))))
2775 (install-from-pom "maven-enforcer-plugin/pom.xml")))))
2777 `(("maven-artifact" ,maven-artifact)
2778 ("maven-plugin-api" ,maven-plugin-api)
2779 ("maven-core" ,maven-core)
2780 ("java-plexus-utils" ,java-plexus-utils)
2781 ("maven-enforcer-api" ,maven-enforcer-api)
2782 ("maven-enforcer-rules" ,maven-enforcer-rules)
2783 ("maven-plugin-annotations" ,maven-plugin-annotations)
2784 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
2786 (define-public maven-artifact-transfer
2788 (name "maven-artifact-transfer")
2792 (uri (string-append "mirror://apache/maven/shared/"
2793 "maven-artifact-transfer-" version
2794 "-source-release.zip"))
2797 "0mkdjr3wnvaxqaq68sy7h4mqlq3xgwwp5s2anj5vbxfy4bsc1ivj"))))
2798 (build-system ant-build-system)
2800 `(#:tests? #f; require mockito 2
2801 #:jar-name "maven-artifact-transfer.jar"
2802 #:source-dir "src/main/java"
2804 (modify-phases %standard-phases
2805 (add-after 'build 'generate-metadata
2807 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2808 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2809 "--source" "src/main/java"
2810 "--output" "build/classes/META-INF/plexus/components.xml"
2811 "--classes" "build/classes"
2812 "--descriptors" "build/classes/META-INF")
2814 (add-after 'generate-metadata 'rebuild
2816 (invoke "ant" "jar")
2819 (install-from-pom "pom.xml")))))
2821 `(("java-commons-codec" ,java-commons-codec)
2822 ("maven-artifact" ,maven-3.0-artifact)
2823 ("maven-core" ,maven-3.0-core)
2824 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
2825 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2826 ("java-plexus-utils" ,java-plexus-utils)
2827 ("java-slf4j-api" ,java-slf4j-api)
2828 ("java-plexus-classworlds" ,java-plexus-classworlds)
2829 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2830 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2831 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
2832 ("java-eclipse-aether-impl" ,java-eclipse-aether-impl)))
2835 ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
2836 (home-page "https://maven.apache.org/shared/maven-artifact-transfer")
2837 (synopsis "API to install, deploy and resolve artifacts in Maven")
2838 (description "This package contains an API to install, deploy and resolve
2839 artifacts in Maven 3.")
2840 (license license:asl2.0)))
2842 (define-public maven-install-plugin
2844 (name "maven-install-plugin")
2845 (version "3.0.0-M1")
2848 (uri (string-append "mirror://apache/maven/plugins/"
2849 "maven-install-plugin-" version
2850 "-source-release.zip"))
2853 "1l9iydxririrair0i5sk2iypn9wspzbb666lc0ddg20yyr8w39dm"))))
2854 (build-system ant-build-system)
2856 `(#:tests? #f; require maven-plugin-testing-harness
2857 #:jar-name "maven-install-plugin.jar"
2858 #:source-dir "src/main/java"
2860 (modify-phases %standard-phases
2861 (add-before 'build 'fix-pom
2863 (substitute* "pom.xml"
2864 (("maven-project") "maven-core")
2865 (("maven-artifact-manager") "maven-artifact")
2868 (add-before 'build 'generate-plugin.xml
2869 (generate-plugin.xml "pom.xml"
2871 "src/main/java/org/apache/maven/plugins/install"
2873 (list "AbstractInstallMojo.java" "InstallFileMojo.java")
2874 (list "AbstractInstallMojo.java" "InstallMojo.java"))))
2876 (install-from-pom "pom.xml")))))
2878 `(("maven-artifact" ,maven-artifact)
2879 ("maven-plugin-api" ,maven-plugin-api)
2880 ("maven-compat" ,maven-compat)
2881 ("maven-artifact-transfer" ,maven-artifact-transfer)
2882 ("maven-plugins-pom-23" ,maven-plugins-pom-23)
2883 ("java-plexus-digest" ,java-plexus-digest)))
2885 `(("maven-plugin-annotations" ,maven-plugin-annotations)
2886 ("java-slf4j-api" ,java-slf4j-api)))
2888 `(("unzip" ,unzip)))
2889 (home-page "https://maven.apache.org/plugin/maven-install-plugin")
2890 (synopsis "Maven's install plugin")
2891 (description "The Install Plugin is used during the install phase to add
2892 artifact(s) to the local repository. The Install Plugin uses the information
2893 in the POM (groupId, artifactId, version) to determine the proper location for
2894 the artifact within the local repository.
2896 The local repository is the local cache where all artifacts needed for the
2897 build are stored. By default, it is located within the user's home directory
2898 (@file{~/.m2/repository}) but the location can be configured in
2899 @file{~/.m2/settings.xml} using the @code{<localRepository>} element.")
2900 (license license:asl2.0)))
2902 (define-public maven-filtering
2904 (name "maven-filtering")
2908 (uri (string-append "https://archive.apache.org/dist/maven/"
2909 "shared/maven-filtering-" version
2910 "-source-release.zip"))
2913 "09wrdhchnszd2l6h4z30ra0bv1a19qyjgac9z8zf1pn0m4nw05yz"))))
2914 (build-system ant-build-system)
2916 `(#:jar-name "maven-filtering.jar"
2917 #:source-dir "src/main/java"
2918 #:test-dir "src/test"
2919 ;; this test comes from sisu-build-api, not this package
2920 #:test-exclude (list "**/IncrementalResourceFilteringTest.java"
2921 "**/Abstract*.java")
2923 (modify-phases %standard-phases
2924 (add-after 'build 'generate-metadata
2926 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2927 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2928 "--source" "src/main/java"
2929 "--output" "build/classes/META-INF/plexus/components.xml"
2930 "--classes" "build/classes"
2931 "--descriptors" "build/classes/META-INF")
2933 (add-after 'generate-metadata 'rebuild
2935 (invoke "ant" "jar")
2937 (add-before 'check 'decompress-tests
2938 (lambda* (#:key inputs #:allow-other-keys)
2939 (let* ((build-api-source (assoc-ref inputs "java-sisu-build-api-origin"))
2940 (classes (string-append build-api-source "/src/test/java")))
2941 (copy-recursively classes "src/test/"))
2943 (add-before 'check 'fix-directory
2945 (substitute* (find-files "src/test" ".*.java$")
2946 (("target/test-classes/") "build/test-classes/"))))
2947 (add-before 'check 'copy-test-resources
2949 (copy-recursively "src/test/resources" "build/test-classes/")
2952 (install-from-pom "pom.xml")))))
2954 `(("maven-core" ,maven-3.0-core)
2955 ("maven-shared-utils" ,maven-shared-utils)
2956 ("java-plexus-utils" ,java-plexus-utils)
2957 ("java-plexus-interpolation" ,java-plexus-interpolation)
2958 ("java-sisu-build-api" ,java-sisu-build-api)
2959 ("maven-parent-pom" ,maven-parent-pom-30)))
2961 `(("java-jsr305" ,java-jsr305)))
2964 ("java-assertj" ,java-assertj)
2965 ("java-junit" ,java-junit)
2966 ("java-mockito" ,java-mockito-1)
2967 ("java-objenesis" ,java-objenesis)
2968 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
2969 ("java-sisu-build-api-origin" ,(package-source java-sisu-build-api))))
2970 (home-page "https://maven.apache.org/shared/maven-filtering")
2971 (synopsis "Shared component for all plugins that needs to filter resources")
2972 (description "This component provides an API to filter resources in Maven
2974 (license license:asl2.0)))
2976 (define-public maven-resources-plugin
2978 (name "maven-resources-plugin")
2983 (url "https://github.com/apache/maven-resources-plugin")
2984 (commit (string-append "maven-resources-plugin-" version))))
2985 (file-name (git-file-name name version))
2988 "090k5j2y7ak54czfjjg3v7pdmdlgd96fbs91d1fd3vslm9zzndg8"))))
2989 (build-system ant-build-system)
2991 `(#:jar-name "maven-resources-plugin.jar"
2992 #:source-dir "src/main/java"
2993 #:test-dir "src/test"
2994 #:tests? #f; test depends on maven-plugin-test-harness
2996 (modify-phases %standard-phases
2997 (add-before 'build 'generate-plugin.xml
2998 (generate-plugin.xml "pom.xml" "resources"
2999 "src/main/java/org/apache/maven/plugins/resources"
3001 (list "ResourcesMojo.java" "CopyResourcesMojo.java")
3002 (list "ResourcesMojo.java")
3003 (list "ResourcesMojo.java" "TestResourcesMojo.java"))))
3005 (install-from-pom "pom.xml")))))
3007 `(("maven-plugin-api" ,maven-plugin-api)
3008 ("maven-core" ,maven-core)
3009 ("java-plexus-utils" ,java-plexus-utils)
3010 ("maven-filtering" ,maven-filtering)
3011 ("java-plexus-interpolation" ,java-plexus-interpolation)
3012 ("maven-parent-pom" ,maven-parent-pom-31)))
3014 `(("maven-plugin-annotations" ,maven-plugin-annotations)
3015 ("java-commons-io" ,java-commons-io)))
3017 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))
3018 (home-page "https://maven.apache.org/plugins/maven-resources-plugin")
3019 (synopsis "Maven plugin to collect and install resources")
3020 (description "The Resources Plugin handles the copying of project resources
3021 to the output directory. There are two different kinds of resources: main
3022 resources and test resources. The difference is that the main resources are
3023 the resources associated to the main source code while the test resources are
3024 associated to the test source code.
3026 Thus, this allows the separation of resources for the main source code and its
3028 (license license:asl2.0)))
3030 (define-public maven-shared-incremental
3032 (name "maven-shared-incremental")
3036 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
3037 "maven-shared-incremental-" version
3038 "-source-release.zip"))
3041 "03n4nfswyg9ahkz2zx4skcr3ghs01zh95g9js51hc75mfqx9b976"))))
3042 (build-system ant-build-system)
3044 `(#:jar-name "shared-incremental.java"
3045 #:source-dir "src/main/java"
3046 #:test-dir "src/test"
3048 (modify-phases %standard-phases
3049 (add-before 'build 'change-parent
3051 (substitute* "pom.xml"
3054 (add-before 'build 'fix-pom
3056 (substitute* "pom.xml"
3057 (("plexus-component-api") "plexus-component-annotations"))
3059 (add-after 'build 'generate-metadata
3061 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3062 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3063 "--source" "src/main/java"
3064 "--output" "build/classes/META-INF/plexus/components.xml"
3065 "--classes" "build/classes"
3066 "--descriptors" "build/classes/META-INF")
3069 (install-from-pom "pom.xml")))))
3071 `(("maven-plugin-api" ,maven-plugin-api)
3072 ("maven-core" ,maven-core)
3073 ("maven-shared-utils" ,maven-shared-utils)
3074 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
3075 ("maven-parent-pom" ,maven-parent-pom-30)))
3078 ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
3079 (home-page "https://maven.apache.org/shared/maven-shared-incremental")
3080 (synopsis "Maven Incremental Build support utilities")
3081 (description "This package contains various utility classes and plexus
3082 components for supporting incremental build functionality in maven plugins.")
3083 (license license:asl2.0)))
3085 (define-public maven-compiler-plugin
3087 (name "maven-compiler-plugin")
3092 (url "https://github.com/apache/maven-compiler-plugin")
3093 (commit (string-append "maven-compiler-plugin-" version))))
3094 (file-name (git-file-name name version))
3097 "0jkbq02vykd09ws8k9bzqxv6fjrpmir8gcxydbmj05kkhl242bma"))))
3098 (build-system ant-build-system)
3100 `(#:jar-name "maven-compiler-plugin.jar"
3101 #:source-dir "src/main/java"
3102 #:test-dir "src/test"
3103 #:tests? #f; test depends on maven-plugin-test-harness
3105 (modify-phases %standard-phases
3106 (add-before 'build 'generate-plugin.xml
3107 (generate-plugin.xml "pom.xml"
3109 "src/main/java/org/apache/maven/plugin/compiler"
3111 (list "AbstractCompilerMojo.java" "CompilerMojo.java")
3112 (list "AbstractCompilerMojo.java" "TestCompilerMojo.java"))))
3113 (add-after 'generate-plugin.xml 'fix-plugin.xml
3115 (substitute* "build/classes/META-INF/maven/plugin.xml"
3116 ;; These are defined in AbstractCompilerMojo.java, but not
3117 ;; parsed correctly in the previous phase
3118 (("DEFAULT_TARGET") "1.6")
3119 (("DEFAULT_SOURCE") "1.6"))
3122 (install-from-pom "pom.xml")))))
3124 `(("maven-plugin-api" ,maven-plugin-api)
3125 ("maven-artifact" ,maven-artifact)
3126 ("maven-core" ,maven-core)
3127 ("maven-shared-utils" ,maven-shared-utils)
3128 ("maven-shared-incremental" ,maven-shared-incremental)
3129 ("java-plexus-java" ,java-plexus-java)
3130 ("java-plexus-compiler-api" ,java-plexus-compiler-api)
3131 ("java-plexus-compiler-manager" ,java-plexus-compiler-manager)
3132 ("java-plexus-compiler-javac" ,java-plexus-compiler-javac)
3133 ("maven-parent-pom" ,maven-parent-pom-33)))
3135 `(("maven-plugin-annotations" ,maven-plugin-annotations)
3136 ("java-commons-io" ,java-commons-io)))
3137 (home-page "https://maven.apache.org/plugins/maven-compiler-plugin")
3138 (synopsis "Compiler plugin for Maven")
3139 (description "The Compiler Plugin is used to compile the sources of your
3140 project. Since 3.0, the default compiler is @code{javax.tools.JavaCompiler}
3141 (if you are using java 1.6) and is used to compile Java sources. If you want
3142 to force the plugin using javac, you must configure the plugin option
3143 @code{forceJavacCompilerUse}.
3145 Also note that at present the default source setting is 1.6 and the default
3146 target setting is 1.6, independently of the JDK you run Maven with. You are
3147 highly encouraged to change these defaults by setting source and target as
3148 described in Setting the -source and -target of the Java Compiler.
3150 Other compilers than javac can be used and work has already started on
3151 AspectJ, .NET, and C#.")
3152 (license license:asl2.0)))
3154 (define-public java-surefire-logger-api
3156 (name "java-surefire-logger-api")
3157 (version "3.0.0-M4")
3160 (uri (string-append "mirror://apache/maven/surefire/"
3161 "surefire-" version "-source-release.zip"))
3164 "1s6d4pzk3bjm9l38mj9sfgbgmk145rppdj1dmqwc4d5105mr9q9w"))))
3165 (build-system ant-build-system)
3167 `(#:jar-name "java-surefire-logger-api.jar"
3168 #:source-dir "surefire-logger-api/src/main/java"
3169 #:tests? #f; require mockito 2
3171 (modify-phases %standard-phases
3173 (install-from-pom "surefire-logger-api/pom.xml")))))
3175 `(("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3177 `(("unzip" ,unzip)))
3178 (home-page "https://maven.apache.org/surefire/surefire-logger-api")
3179 (synopsis "Interfaces and Utilities related only to internal SureFire Logger API")
3180 (description "This package contains interfaces and utilities that are
3181 internal to the SureFire Logger API. It is designed to have no dependency.")
3182 (license license:asl2.0)))
3184 (define-public java-surefire-parent-pom
3186 (inherit java-surefire-logger-api)
3187 (name "java-surefire-parent-pom")
3191 (modify-phases %standard-phases
3194 (add-before 'install 'fix-pom-dependency-versions
3196 (substitute* "pom.xml"
3197 (("1.11") ,(package-version java-commons-compress))
3198 (("1.13") ,(package-version java-commons-codec)))
3199 (substitute* "pom.xml"
3200 (("commonsLang3Version>.*")
3202 "commonsLang3Version>"
3203 ,(package-version java-commons-lang3)
3204 "</commonsLang3Version>\n"))
3205 (("commonsCompress>.*")
3208 ,(package-version java-commons-compress)
3209 "</commonsCompress>\n"))
3210 (("commonsIoVersion>.*")
3213 ,(package-version java-commons-io)
3214 "</commonsIoVersion>\n"))
3215 (("0.11.0") ,(package-version maven-artifact-transfer))
3216 (("1.0.3") ,(package-version java-plexus-java)))
3218 (add-after 'install 'install-providers
3219 (install-pom-file "surefire-providers/pom.xml"))
3221 (install-pom-file "pom.xml")))))
3223 `(("maven-parent-pom" ,maven-parent-pom-33)))))
3225 (define-public java-surefire-api
3227 (inherit java-surefire-logger-api)
3228 (name "java-surefire-api")
3231 #:jar-name "java-surefire-api.jar"
3232 #:source-dir "surefire-api/src/main/java"
3234 (modify-phases %standard-phases
3235 (add-before 'build 'copy-resources
3237 (mkdir-p "build/classes")
3238 (copy-recursively "surefire-api/src/main/resources" "build/classes")
3240 (add-before 'build 'prepare-shade
3241 (lambda* (#:key inputs #:allow-other-keys)
3242 (mkdir-p "build/classes")
3243 (with-directory-excursion "build/classes"
3248 (invoke "jar" "xf" jar-file)
3249 (delete-file-recursively "META-INF"))
3250 (find-files (assoc-ref inputs input) ".*.jar$")))
3251 '("maven-shared-utils" "java-commons-codec")))
3253 (add-after 'build 'shade
3254 (lambda* (#:key inputs #:allow-other-keys)
3256 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3257 (injar "java-surefire-api.jar")
3258 (outjar "java-surefire-api-shaded.jar"))
3259 (with-directory-excursion "build/jar"
3260 (with-output-to-file "rules"
3262 (format #t (string-append
3264 "org.apache.maven.shared.utils.** "
3265 "org.apache.maven.surefire.shade.api."
3266 "org.apache.maven.shared.utils.@1~%"))
3267 (format #t (string-append
3269 "org.apache.commons.codec.** "
3270 "org.apache.maven.surefire.shade.api."
3271 "org.apache.commons.codec.@1~%"))))
3272 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3274 (rename-file outjar injar)))
3277 (install-from-pom "surefire-api/pom.xml")))))
3279 `(("java-surefire-logger-api" ,java-surefire-logger-api)
3280 ("java-commons-codec" ,java-commons-codec)
3281 ("java-surefire-parent-pom" ,java-surefire-parent-pom)
3282 ("maven-shared-utils" ,maven-shared-utils-3.1)))
3284 `(("java-jsr305" ,java-jsr305)))
3287 ("java-jarjar" ,java-jarjar)))
3288 (synopsis "Maven SureFire API")
3289 (description "This package contains the API to use Maven SureFire.")))
3291 (define-public java-surefire-booter
3293 (inherit java-surefire-logger-api)
3294 (name "java-surefire-booter")
3296 `(#:tests? #f; require mockito 2
3297 #:jar-name "java-surefire-booter.jar"
3298 #:source-dir "surefire-booter/src/main/java"
3300 (modify-phases %standard-phases
3301 (add-before 'build 'fix-/bin/sh
3303 (substitute* "surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java"
3304 (("/bin/sh") (which "sh")))
3307 (install-from-pom "surefire-booter/pom.xml")))))
3309 `(("java-surefire-api" ,java-surefire-api)
3310 ("java-commons-lang3" ,java-commons-lang3)
3311 ("java-commons-io" ,java-commons-io)
3312 ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3314 `(("java-jsr305" ,java-jsr305)))
3315 (synopsis "API and Facilities used by forked tests running in JVM sub-process")
3316 (description "SureFire runs tests inside a forked JVM subprocess. This
3317 package contains an API and facilities used inside that forked JVM.")))
3319 (define-public java-surefire-extensions-api
3321 (inherit java-surefire-logger-api)
3322 (name "java-surefire-extensions-api")
3324 `(#:tests? #f; requires mockito 2
3325 #:jar-name "java-surefire-extensions-api.jar"
3326 #:source-dir "surefire-extensions-api/src/main/java"
3328 (modify-phases %standard-phases
3330 (install-from-pom "surefire-extensions-api/pom.xml")))))
3332 `(("java-surefire-api" ,java-surefire-api)
3333 ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3335 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)))
3336 (synopsis "Extension API for Maven SureFire")
3337 (description "Surefire is a test framework project. This is the aggregator
3338 POM in Apache Maven Surefire project.")))
3340 (define-public java-surefire-common-java5
3342 (inherit java-surefire-logger-api)
3343 (name "java-surefire-common-java5")
3345 `(#:jar-name "java-surefire-common-java5.jar"
3346 #:source-dir "surefire-providers/common-java5/src/main/java"
3347 #:test-dir "surefire-providers/common-java5/src/test"
3348 #:test-exclude (list
3350 "**/PojoStackTraceWriterTest.java"
3352 "**/SmartStackTraceParserTest.java")
3354 (modify-phases %standard-phases
3355 (add-before 'build 'prepare-shade
3356 (lambda* (#:key inputs #:allow-other-keys)
3357 (mkdir-p "build/classes")
3358 (with-directory-excursion "build/classes"
3361 (invoke "jar" "xf" jar-file)
3362 (delete-file-recursively "META-INF"))
3363 (find-files (assoc-ref inputs "maven-shared-utils") ".*.jar$")))
3365 (add-after 'build 'shade
3366 (lambda* (#:key inputs #:allow-other-keys)
3368 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3369 (injar "java-surefire-common-java5.jar")
3370 (outjar "java-surefire-common-java5-shaded.jar"))
3371 (with-directory-excursion "build/jar"
3372 (with-output-to-file "rules"
3374 (format #t (string-append
3376 "org.apache.maven.shared.utils.** "
3377 "org.apache.maven.surefire.shade.common."
3378 "org.apache.maven.shared.utils.@1~%"))))
3379 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3381 (rename-file outjar injar)))
3384 (install-from-pom "surefire-providers/common-java5/pom.xml")))))
3386 `(("maven-shared-utils" ,maven-shared-utils-3.1)
3387 ("java-surefire-api" ,java-surefire-api)
3388 ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3391 ("java-jarjar" ,java-jarjar)
3392 ("java-junit" ,java-junit)
3393 ("java-fest-assert" ,java-fest-assert)))
3394 (synopsis "Common java5 facilities for Maven SureFire")
3395 (description "This package contains shared Java 5 code for all providers.")))
3397 (define-public java-surefire-common-junit3
3399 (inherit java-surefire-logger-api)
3400 (name "java-surefire-common-junit3")
3402 `(#:jar-name "java-surefire-common-junit3.jar"
3403 #:source-dir "surefire-providers/common-junit3/src/main/java"
3404 #:test-dir "surefire-providers/common-junit3/src/test"
3406 (modify-phases %standard-phases
3408 (install-from-pom "surefire-providers/common-junit3/pom.xml")))))
3410 `(("java-junit" ,java-junit)
3411 ("java-surefire-api" ,java-surefire-api)
3412 ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3415 ("java-junit" ,java-junit)
3416 ("java-fest-assert" ,java-fest-assert)))
3417 (synopsis "Shared JUnit3 provider code for Maven SureFire")
3418 (description "This package contains shared code for all JUnit providers.")))
3420 (define-public java-surefire-common-junit4
3422 (inherit java-surefire-logger-api)
3423 (name "java-surefire-common-junit4")
3425 `(#:jar-name "java-surefire-common-junit4.jar"
3426 #:source-dir "surefire-providers/common-junit4/src/main/java"
3427 #:tests? #f; tests require junit 4.0
3429 (modify-phases %standard-phases
3431 (install-from-pom "surefire-providers/common-junit4/pom.xml")))))
3433 `(("java-junit" ,java-junit)
3434 ("java-surefire-api" ,java-surefire-api)
3435 ("java-surefire-common-java5" ,java-surefire-common-java5)
3436 ("java-surefire-common-junit3" ,java-surefire-common-junit3)
3437 ("maven-shared-utils" ,maven-shared-utils-3.1)
3438 ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3439 (synopsis "Shared JUnit4 provider code for Maven SureFire")
3440 (description "This package contains shared code for all JUnit providers,
3441 starting from JUnit 4.")))
3443 (define-public java-surefire-junit4
3445 (inherit java-surefire-logger-api)
3446 (name "java-surefire-junit4")
3449 #:jar-name "java-surefire-junit4.jar"
3450 #:source-dir "surefire-providers/surefire-junit4/src/main/java"
3451 #:test-dir "surefire-providers/surefire-junit4/src/test"
3452 #:modules ((guix build ant-build-system)
3454 (guix build java-utils)
3457 (modify-phases %standard-phases
3458 (add-before 'install 'regenerate-own-pom
3459 ;; Surefire struggles resolving artifacts because of this pom
3460 ;; file, resulting in a NullPointerException when collecting
3461 ;; Artifacts (and a "Failure detected." message from
3462 ;; DefaultArtifactResolver). Replace the pom file with a much
3463 ;; simpler one. Everything is shaded anyway (as used to be the
3464 ;; case in 2.22), so there will not be missing dependencies.
3466 "surefire-providers/surefire-junit4/pom.xml"
3467 "org.apache.maven.surefire" "surefire-junit4"
3468 ,(package-version java-surefire-common-java5)
3469 #:name "Surefire JUnit4"))
3470 (add-before 'build 'copy-resources
3472 (mkdir-p "build/classes")
3473 (copy-recursively "surefire-providers/surefire-junit4/src/main/resources"
3476 (add-before 'build 'prepare-shade
3477 (lambda* (#:key inputs #:allow-other-keys)
3478 (mkdir-p "build/classes")
3479 (with-directory-excursion "build/classes"
3484 (invoke "jar" "xf" jar-file)
3485 (delete-file-recursively "META-INF"))
3486 (find-files (assoc-ref inputs input) ".*.jar$")))
3487 '("maven-shared-utils" "java-surefire-common-java5"
3488 "java-surefire-common-junit3" "java-surefire-common-junit4"
3489 "java-surefire-api")))
3491 (add-after 'build 'shade
3492 (lambda* (#:key inputs #:allow-other-keys)
3494 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3495 (injar "java-surefire-junit4.jar")
3496 (outjar "java-surefire-junit4-shaded.jar"))
3497 (with-directory-excursion "build/jar"
3498 (with-output-to-file "rules"
3500 (format #t (string-append
3502 "org.apache.maven.shared.utils.** "
3503 "org.apache.maven.surefire.shade."
3504 "org.apache.maven.shared.utils.@1~%"))))
3505 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3507 (rename-file outjar injar)))
3510 (install-from-pom "surefire-providers/surefire-junit4/pom.xml")))))
3512 `(("java-junit" ,java-junit)
3513 ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3515 `(("java-surefire-common-junit4" ,java-surefire-common-junit4)
3516 ("java-surefire-common-junit3" ,java-surefire-common-junit3)
3517 ("java-surefire-common-java5" ,java-surefire-common-java5)
3518 ("java-surefire-api" ,java-surefire-api)))
3520 `(("java-jarjar" ,java-jarjar)
3522 ("java-junit" ,java-junit)
3523 ("java-hamcrest-all" ,java-hamcrest-all)
3524 ("java-fest-assert" ,java-fest-assert)))
3525 (synopsis "SureFire JUnit 4.0+ runner")
3526 (description "This package contains the runner for tests run on a forked
3527 JVM, using JUnit 4.0 or later.")))
3529 (define-public maven-surefire-common
3531 (inherit java-surefire-logger-api)
3532 (name "maven-surefire-common")
3534 `(#:tests? #f; require mockito 2
3535 #:jar-name "maven-surefire-common.jar"
3536 #:source-dir "maven-surefire-common/src/main/java"
3538 (modify-phases %standard-phases
3539 (add-before 'build 'prepare-shade
3540 (lambda* (#:key inputs #:allow-other-keys)
3541 (mkdir-p "build/classes")
3542 (with-directory-excursion "build/classes"
3547 (invoke "jar" "xf" jar-file)
3548 (delete-file-recursively "META-INF"))
3549 (find-files (assoc-ref inputs input) ".*.jar$")))
3550 '("maven-shared-utils" "java-commons-io" "java-commons-lang3"
3551 "java-commons-compress" "maven-common-artifact-filters")))
3553 (add-after 'build 'shade
3554 (lambda* (#:key inputs #:allow-other-keys)
3556 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3557 (injar "maven-surefire-common.jar")
3558 (outjar "maven-surefire-common-shaded.jar"))
3559 (with-directory-excursion "build/jar"
3560 (with-output-to-file "rules"
3562 (format #t (string-append
3564 "org.apache.maven.shared.utils.** "
3565 "org.apache.maven.surefire.shade.common."
3566 "org.apache.maven.shared.utils.@1~%"))
3567 (format #t (string-append
3569 "org.apache.commons.io.** "
3570 "org.apache.maven.surefire.shade.common."
3571 "org.apache.commons.io.@1~%"))
3572 (format #t (string-append
3574 "org.apache.commons.lang3.** "
3575 "org.apache.maven.surefire.shade.common."
3576 "org.apache.commons.lang3.@1~%"))
3577 (format #t (string-append
3579 "org.apache.commons.compress.** "
3580 "org.apache.maven.surefire.shade.common."
3581 "org.apache.commons.compress.@1~%"))))
3582 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3584 (rename-file outjar injar)))
3586 (add-before 'install 'fix-pom
3588 (substitute* "maven-surefire-common/pom.xml"
3589 (("maven-toolchain") "maven-core"))
3592 (install-from-pom "maven-surefire-common/pom.xml")))))
3594 `(("java-surefire-api" ,java-surefire-api)
3595 ("java-surefire-extensions-api" ,java-surefire-extensions-api)
3596 ("java-surefire-booter" ,java-surefire-booter)
3597 ("maven-core" ,maven-core)
3598 ("maven-plugin-annotations" ,maven-plugin-annotations)
3599 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
3600 ("maven-artifact-transfer" ,maven-artifact-transfer)
3601 ("java-plexus-java" ,java-plexus-java)
3602 ("java-jansi" ,java-jansi)
3603 ("java-commons-io" ,java-commons-io)
3604 ("java-commons-lang3" ,java-commons-lang3)
3605 ("java-commons-compress" ,java-commons-compress)
3606 ("maven-shared-utils" ,maven-shared-utils-3.1)
3607 ("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3609 `(("java-jsr305" ,java-jsr305)))
3612 ("java-jarjar" ,java-jarjar)))
3613 (synopsis "API used in Surefire and Failsafe MOJO")
3614 (description "This package contains an API used in SureFire and Failsafe
3617 (define-public maven-surefire-plugin
3619 (inherit java-surefire-logger-api)
3620 (name "maven-surefire-plugin")
3622 `(#:jar-name "maven-surefire-plugin.jar"
3623 #:source-dir "maven-surefire-plugin/src/main/java"
3624 #:tests? #f; test depends on maven-plugin-test-harness
3626 (modify-phases %standard-phases
3627 (add-before 'build 'generate-plugin.xml
3628 (generate-plugin.xml "maven-surefire-plugin/pom.xml"
3633 "maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java"
3634 "maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java"))))
3636 (install-from-pom "maven-surefire-plugin/pom.xml")))))
3638 `(("maven-surefire-common" ,maven-surefire-common)
3639 ("maven-core" ,maven-core)))
3641 `(("maven-plugin-annotations" ,maven-plugin-annotations)
3643 (synopsis "SureFire Maven plugin that runs tests.")
3644 (description "The Surefire Plugin is used during the test phase of the
3645 build lifecycle to execute the unit tests of an application. It generates
3646 reports in two different file formats, plain text and xml.")))
3648 (define-public maven-jar-plugin
3650 (name "maven-jar-plugin")
3655 (url "https://github.com/apache/maven-jar-plugin")
3656 (commit (string-append "maven-jar-plugin-" version))))
3657 (file-name (git-file-name name version))
3660 "04y2rlmcabmc55ljqlkgbb5xx94a59cz1dvrnpfj1vzz024pqkyg"))))
3661 (build-system ant-build-system)
3663 `(#:jar-name "maven-jar-plugin.jar"
3664 #:source-dir "src/main/java"
3665 #:tests? #f; test depends on maven-plugin-test-harness
3667 (modify-phases %standard-phases
3668 (add-before 'build 'generate-plugin.xml
3669 (generate-plugin.xml "pom.xml"
3671 "src/main/java/org/apache/maven/plugins/jar"
3673 (list "AbstractJarMojo.java" "JarMojo.java")
3674 (list "AbstractJarMojo.java" "TestJarMojo.java"))))
3676 (install-from-pom "pom.xml")))))
3678 `(("maven-archiver" ,maven-archiver)
3679 ("maven-artifact" ,maven-3.0-artifact)
3680 ("maven-core" ,maven-3.0-core)
3681 ("maven-plugin-api" ,maven-3.0-plugin-api)
3682 ("maven-file-management" ,maven-file-management)
3683 ("maven-shared-utils" ,maven-shared-utils)
3684 ("java-plexus-archiver" ,java-plexus-archiver)
3685 ("java-plexus-utils" ,java-plexus-utils)))
3687 `(("maven-plugin-annotations" ,maven-plugin-annotations)))
3688 (home-page "https://maven.apache.org/plugins/maven-jar-plugin")
3689 (synopsis "Jar builder plugin for Maven")
3690 (description "This plugin provides the capability to build jars. If you
3691 would like to sign jars please use the Maven Jarsigner Plugin instead.")
3692 (license license:asl2.0)))