1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018-2022 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 "0hbbbxj14qyq8pccyab96pjqq90jnjmid1pml9kx55c5smfpjn37"))))
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-8" ,java-asm-8)
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 (list 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 (list 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 (list maven-resolver-api maven-resolver-spi))
122 (synopsis "Utility classes for testing the maven repository system")
123 (description "This package contains a collection of utility classes to
124 ease testing of the repository system.")))
126 (define-public maven-resolver-util
128 (inherit maven-resolver-api)
129 (name "maven-resolver-util")
131 `(#:jar-name "maven-resolver-util.jar"
132 #:source-dir "maven-resolver-util/src/main/java"
133 #:test-dir "maven-resolver-util/src/test"
135 (modify-phases %standard-phases
137 (install-from-pom "maven-resolver-util/pom.xml")))))
139 (list maven-resolver-api))
141 (list java-junit java-hamcrest-core maven-resolver-test-util))
142 (synopsis "Utility classes for the maven repository system")
143 (description "This package contains a collection of utility classes to
144 ease usage of the repository system.")))
146 (define-public maven-resolver-connector-basic
148 (inherit maven-resolver-api)
149 (name "maven-resolver-connector-basic")
151 `(#:jar-name "maven-resolver-connector-basic.jar"
152 #:source-dir "maven-resolver-connector-basic/src/main/java"
153 #:test-dir "maven-resolver-connector-basic/src/test"
156 (modify-phases %standard-phases
157 (add-before 'build 'generate-sisu
159 (mkdir-p "build/classes/META-INF/sisu")
160 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
162 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
165 (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
167 (list maven-resolver-api maven-resolver-spi maven-resolver-util
170 (list java-javax-inject java-junit maven-resolver-test-util))
171 (synopsis "Maven repository connector implementation")
172 (description "This package contains a repository connector implementation
173 for repositories using URI-based layouts.")))
175 (define-public maven-resolver-impl
177 (inherit maven-resolver-api)
178 (name "maven-resolver-impl")
180 `(#:jar-name "maven-resolver-impl.jar"
181 #:source-dir "maven-resolver-impl/src/main/java"
182 #:test-dir "maven-resolver-impl/src/test"
184 (modify-phases %standard-phases
185 (add-before 'build 'generate-sisu
187 (mkdir-p "build/classes/META-INF/sisu")
188 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
192 ;; Build this list by looking for files containing "@Named"
193 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
194 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
195 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
196 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
197 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
198 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
199 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
200 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
201 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
202 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
203 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
204 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
205 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
206 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
207 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
208 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
209 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
210 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
211 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
212 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
213 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
214 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
215 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
218 (install-from-pom "maven-resolver-impl/pom.xml")))))
220 (list maven-resolver-api
224 java-eclipse-sisu-inject
228 maven-resolver-parent-pom))
230 (list java-junit maven-resolver-test-util))))
232 (define-public maven-resolver-transport-wagon
234 (inherit maven-resolver-api)
235 (name "maven-resolver-transport-wagon")
237 `(#:jar-name "maven-resolver-transport-wagon.jar"
238 #:source-dir "maven-resolver-transport-wagon/src/main/java"
239 #:test-dir "maven-resolver-transport-wagon/src/test"
242 (modify-phases %standard-phases
243 (add-before 'build 'generate-sisu
245 (mkdir-p "build/classes/META-INF/sisu")
246 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
248 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
250 (add-before 'build 'generate-components.xml
252 (mkdir-p "build/classes/META-INF/plexus")
253 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
257 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
261 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
262 <role-hint>plexus</role-hint>
263 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
265 <isolated-realm>false</isolated-realm>
268 <role>org.codehaus.plexus.PlexusContainer</role>
270 <field-name>container</field-name>
275 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
276 <role-hint>plexus</role-hint>
277 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
279 <isolated-realm>false</isolated-realm>
282 <role>org.codehaus.plexus.PlexusContainer</role>
284 <field-name>container</field-name>
289 </component-set>\n"))))
292 `(("maven-resolver-api" ,maven-resolver-api)
293 ("maven-resolver-spi" ,maven-resolver-spi)
294 ("maven-resolver-util" ,maven-resolver-util)
295 ("java-javax-inject" ,java-javax-inject)
296 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
297 ("java-plexus-component-annotation" ,java-plexus-component-annotations-1.7)
298 ("java-plexus-classworld" ,java-plexus-classworlds)
299 ("java-plexus-plexus-util" ,java-plexus-utils)
300 ("java-slf4j-api" ,java-slf4j-api)
301 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
302 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
306 maven-resolver-test-util
311 (synopsis "Transport implementation for Maven")
312 (description "This package contains a transport implementation based on
313 Maven Wagon, for use in Maven.")))
315 (define-public maven-resolver-transport-file
317 (inherit maven-resolver-api)
318 (name "maven-resolver-transport-file")
320 `(#:jar-name "maven-resolver-transport-file.jar"
321 #:source-dir "maven-resolver-transport-file/src/main/java"
322 #:test-dir "maven-resolver-transport-file/src/test"
325 (modify-phases %standard-phases
326 (add-before 'build 'generate-sisu
328 (mkdir-p "build/classes/META-INF/sisu")
329 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
331 (display "org.eclipse.aether.transport.file.FileTransporterFactory\n"))))))))
333 (list java-eclipse-sisu-inject
334 java-eclipse-sisu-plexus
336 java-plexus-classworlds
337 java-plexus-component-annotations
343 maven-wagon-provider-api))
352 maven-resolver-test-util))
353 (synopsis "Transport implementation for Maven")
354 (description "This package contains a transport implementation based on
355 files, for use in Maven.")))
357 (define-public maven-resolver-transport-http
359 (inherit maven-resolver-api)
360 (name "maven-resolver-transport-http")
362 `(#:jar-name "maven-resolver-transport-http.jar"
363 #:source-dir "maven-resolver-transport-http/src/main/java"
364 #:test-dir "maven-resolver-transport-http/src/test"
366 ;; Tests all fail because
367 ;; org.eclipse.aether.transport.http.SslSocketFactory is not available.
370 (modify-phases %standard-phases
371 (add-before 'build 'generate-sisu
373 (mkdir-p "build/classes/META-INF/sisu")
374 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
376 (display "org.eclipse.aether.transport.http.HttpTransporterFactory\n"))))))))
378 (list java-eclipse-sisu-inject
379 java-eclipse-sisu-plexus
381 java-plexus-classworlds
382 java-plexus-component-annotations
388 maven-wagon-provider-api))
390 (list java-httpcomponents-httpclient
391 java-httpcomponents-httpcore))
393 (list java-aopalliance
396 java-eclipse-aether-api
397 java-eclipse-jetty-http
398 java-eclipse-jetty-io
399 java-eclipse-jetty-server
400 java-eclipse-jetty-servlet
401 java-eclipse-jetty-util
405 java-javaee-servletapi
407 maven-resolver-test-util))
408 (synopsis "Transport implementation for Maven")
409 (description "This package contains a transport implementation based on
410 HTTP, for use in Maven.")))
412 ;; aether is the parent project that was forked into maven-resolver. It used
413 ;; to be used with older versions of Maven, and is still required for some
414 ;; plugins and their dependencies. This version is required for the plugins,
415 ;; even though there are newer versions of this project.
416 (define-public java-sonatype-aether-api
418 (name "java-sonatype-aether-api")
423 (url "https://github.com/sonatype/sonatype-aether")
424 (commit (string-append "aether-" version))))
425 (file-name (git-file-name name version))
428 "1wn9fv91n40bvlwbzy0dmh0xqibxl2mpzpnbibhqss3c0zlr1ccq"))))
429 (build-system ant-build-system)
431 `(#:jar-name "aether-api.jar"
432 #:source-dir "aether-api/src/main/java"
433 #:test-dir "aether-api/src/test"
435 (modify-phases %standard-phases
436 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
437 (replace 'install (install-from-pom "aether-api/pom.xml")))))
439 (list java-sonatype-forge-parent-pom-6))
440 (native-inputs (list java-junit))
441 (home-page "https://github.com/sonatype/sonatype-aether")
442 (synopsis "Maven repository system API")
443 (description "This package contains the API for the maven repository system.")
444 (license license:asl2.0)))
446 (define-public java-sonatype-aether-spi
448 (inherit java-sonatype-aether-api)
449 (name "java-sonatype-aether-spi")
451 `(#:jar-name "aether-spi.jar"
452 #:source-dir "aether-spi/src/main/java"
453 #:tests? #f; no tests
455 (modify-phases %standard-phases
456 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
458 (list java-sonatype-aether-api))
459 (synopsis "Maven repository system SPI")
460 (description "This package contains the service provider interface (SPI)
461 for repository system implementations and repository connectors.")))
463 (define-public java-sonatype-aether-test-util
465 (inherit java-sonatype-aether-api)
466 (name "java-sonatype-aether-test-util")
468 `(#:jar-name "java-sonatype-aether-test-util.jar"
469 #:source-dir "aether-test-util/src/main/java"
470 #:test-dir "aether-test-util/src/test"))
472 (list java-sonatype-aether-api java-sonatype-aether-spi))
473 (synopsis "Utility classes for testing the maven repository system")
474 (description "This package contains a collection of utility classes to
475 ease testing of the repository system.")))
477 (define-public java-sonatype-aether-util
479 (inherit java-sonatype-aether-api)
480 (name "java-sonatype-aether-util")
482 `(#:jar-name "aether-util.jar"
483 #:source-dir "aether-util/src/main/java"
484 #:test-dir "aether-util/src/test"
486 (modify-phases %standard-phases
487 (replace 'install (install-from-pom "aether-util/pom.xml")))))
489 (list java-sonatype-aether-api))
491 (list java-junit java-sonatype-aether-test-util))
492 (synopsis "Utility classes for the maven repository system")
493 (description "This package contains a collection of utility classes to
494 ease usage of the repository system.")))
496 (define-public java-sonatype-aether-impl
498 (inherit java-sonatype-aether-api)
499 (name "java-sonatype-aether-impl")
501 `(#:jar-name "aether-impl.jar"
502 #:source-dir "aether-impl/src/main/java"
503 #:test-dir "aether-impl/src/test"
505 (modify-phases %standard-phases
506 (add-before 'install 'fix-pom
508 (substitute* "aether-impl/pom.xml"
509 (("org.sonatype.sisu") "org.codehaus.plexus")
510 (("sisu-inject-plexus") "plexus-container-default"))
512 (add-after 'build 'generate-metadata
514 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
515 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
516 "--source" "src/main/java"
517 "--output" "build/classes/META-INF/plexus/components.xml"
518 "--classes" "build/classes"
519 "--descriptors" "build/classes/META-INF")
521 (add-after 'generate-metadata 'rebuild
525 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
527 (list java-sonatype-aether-api
528 java-sonatype-aether-spi
529 java-sonatype-aether-util
530 java-plexus-component-annotations
531 java-plexus-container-default
534 (list java-junit java-plexus-component-metadata
535 java-sonatype-aether-test-util))))
537 ;; This slightly newer version is also required by some plugins
538 (define-public java-sonatype-aether-api-1.13
540 (name "java-sonatype-aether-api")
545 (url "https://github.com/sonatype/sonatype-aether")
546 (commit (string-append "aether-" version))))
547 (file-name (git-file-name name version))
550 "1yl34dqhm6ykb7h63gkssyrdxv3dsa3n5b8d8cvy8rh4qsm6p2yb"))))
551 (build-system ant-build-system)
553 `(#:jar-name "aether-api.jar"
554 #:source-dir "aether-api/src/main/java"
555 #:test-dir "aether-api/src/test"
557 (modify-phases %standard-phases
558 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
559 (replace 'install (install-from-pom "aether-api/pom.xml")))))
561 `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-10)))
562 (native-inputs `(("java-junit" ,java-junit)))
563 (home-page "https://github.com/sonatype/sonatype-aether")
564 (synopsis "Maven repository system API")
565 (description "This package contains the API for the maven repository system.")
566 (license license:asl2.0)))
568 (define-public java-sonatype-aether-spi-1.13
570 (inherit java-sonatype-aether-api-1.13)
571 (name "java-sonatype-aether-spi")
573 `(#:jar-name "aether-spi.jar"
574 #:source-dir "aether-spi/src/main/java"
575 #:tests? #f; no tests
577 (modify-phases %standard-phases
578 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
580 `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)))
581 (synopsis "Maven repository system SPI")
582 (description "This package contains the service provider interface (SPI)
583 for repository system implementations and repository connectors.")))
585 (define-public java-sonatype-aether-test-util-1.13
587 (inherit java-sonatype-aether-api-1.13)
588 (name "java-sonatype-aether-test-util")
590 `(#:jar-name "java-sonatype-aether-test-util.jar"
591 #:source-dir "aether-test-util/src/main/java"
592 #:test-dir "aether-test-util/src/test"))
594 `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)
595 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi-1.13)))
596 (synopsis "Utility classes for testing the maven repository system")
597 (description "This package contains a collection of utility classes to
598 ease testing of the repository system.")))
600 (define-public java-sonatype-aether-util-1.13
602 (inherit java-sonatype-aether-api-1.13)
603 (name "java-sonatype-aether-util")
605 `(#:jar-name "aether-util.jar"
606 #:source-dir "aether-util/src/main/java"
607 #:test-dir "aether-util/src/test"
609 (modify-phases %standard-phases
610 (replace 'install (install-from-pom "aether-util/pom.xml")))))
612 `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)))
614 `(("java-junit" ,java-junit)
615 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util-1.13)))
616 (synopsis "Utility classes for the maven repository system")
617 (description "This package contains a collection of utility classes to
618 ease usage of the repository system.")))
620 ;; Again, this old version is required by some maven plugins
621 (define-public java-eclipse-aether-api
623 (name "java-eclipse-aether-api")
628 (url "https://github.com/eclipse/aether-core")
629 (commit "aether-1.0.2.v20150114")))
630 (file-name (git-file-name name version))
633 "14d336nn0kh5ddf23j37va3hd8gaai19llrpxhf4bcc7g7sgdqxs"))))
634 (build-system ant-build-system)
636 `(#:jar-name "aether-api.jar"
637 #:source-dir "aether-api/src/main/java"
638 #:test-dir "aether-api/src/test"
640 (modify-phases %standard-phases
641 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
642 (replace 'install (install-from-pom "aether-api/pom.xml")))))
643 (native-inputs (list java-junit))
644 (home-page "https://github.com/sonatype/sonatype-aether")
645 (synopsis "Maven repository system API")
646 (description "This package contains the API for the maven repository system.")
647 (license license:asl2.0)))
649 (define-public java-eclipse-aether-spi
651 (inherit java-eclipse-aether-api)
652 (name "java-eclipse-aether-spi")
654 `(#:jar-name "aether-spi.jar"
655 #:source-dir "aether-spi/src/main/java"
656 #:test-dir "aether-spi/src/test"
658 (modify-phases %standard-phases
659 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
661 (list java-eclipse-aether-api))
662 (synopsis "Maven repository system SPI")
663 (description "This package contains the service provider interface (SPI)
664 for repository system implementations and repository connectors.")))
666 (define-public java-eclipse-aether-test-util
668 (inherit java-eclipse-aether-api)
669 (name "java-eclipse-aether-test-util")
671 `(#:jar-name "aether-test-util.jar"
672 #:source-dir "aether-test-util/src/main/java"
673 #:test-dir "aether-test-util/src/test"
675 (modify-phases %standard-phases
676 (replace 'install (install-from-pom "aether-util/pom.xml")))))
678 (list java-eclipse-aether-api java-eclipse-aether-spi))
679 (synopsis "Utility classes for testing the maven repository system")
680 (description "This package contains a collection of utility classes to
681 ease testing of the repository system.")))
683 (define-public java-eclipse-aether-util
685 (inherit java-eclipse-aether-api)
686 (name "java-eclipse-aether-util")
688 `(#:jar-name "aether-util.jar"
689 #:source-dir "aether-util/src/main/java"
690 #:test-dir "aether-util/src/test"
692 (modify-phases %standard-phases
693 (replace 'install (install-from-pom "aether-util/pom.xml")))))
695 (list java-eclipse-aether-api))
697 (list java-eclipse-aether-test-util java-junit))
698 (synopsis "Utility classes for the maven repository system")
699 (description "This package contains a collection of utility classes to
700 ease usage of the repository system.")))
702 (define-public java-eclipse-aether-impl
704 (inherit java-eclipse-aether-api)
705 (name "java-eclipse-aether-impl")
707 `(#:jar-name "aether-impl.jar"
708 #:source-dir "aether-impl/src/main/java"
709 #:test-dir "aether-impl/src/test"
711 (modify-phases %standard-phases
712 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
714 (list java-eclipse-aether-api
715 java-eclipse-aether-spi
716 java-eclipse-aether-util
718 java-eclipse-sisu-inject
722 (list java-eclipse-aether-test-util java-junit))))
724 (define-public maven-shared-utils
726 (name "maven-shared-utils")
730 (uri (string-append "mirror://apache/maven/shared/"
731 "maven-shared-utils-" version "-source-release.zip"))
734 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
735 (build-system ant-build-system)
737 `(#:jar-name "maven-shared-utils.jar"
738 #:source-dir "src/main/java"
740 (modify-phases %standard-phases
741 (add-before 'build 'fix-/bin/sh-invocation
743 (substitute* (find-files "src" ".*.java$")
744 (("/bin/sh") (which "sh")))
746 (add-before 'check 'remove-cyclic-dep
749 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
752 (install-from-pom "pom.xml")))))
754 `(("java-jansi" ,java-jansi)
755 ("java-commons-io" ,java-commons-io)
756 ("java-jsr305" ,java-jsr305)
757 ("java-plexus-container-default" ,java-plexus-container-default)
758 ("maven-parent-pom-30" ,maven-parent-pom-30)))
760 (list unzip java-junit java-hamcrest-core java-commons-lang3))
761 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
762 (synopsis "Plexus-util replacement for maven")
763 (description "This project aims to be a functional replacement for
764 plexus-utils in Maven. It is not a 100% API compatible replacement but a
765 replacement with improvements.")
766 (license license:asl2.0)))
768 (define-public maven-plugin-annotations
770 (name "maven-plugin-annotations")
774 (uri (string-append "mirror://apache/maven/"
775 "plugin-tools/maven-plugin-tools-" version
776 "-source-release.zip"))
777 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
778 (build-system ant-build-system)
780 `(#:jar-name "maven-plugin-annotations.jar"
781 #:source-dir "maven-plugin-annotations/src/main/java"
784 (modify-phases %standard-phases
786 (install-from-pom "maven-plugin-annotations/pom.xml")))))
788 (list maven-artifact maven-plugin-tools-parent-pom))
791 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
792 (synopsis "Java 5 annotations to use in Mojos")
793 (description "This package contains Java 5 annotations for use in Mojos.")
794 (license license:asl2.0)))
796 (define maven-plugin-tools-parent-pom
798 (inherit maven-plugin-annotations)
799 (name "maven-plugin-tools-parent-pom")
803 (modify-phases %standard-phases
807 (install-pom-file "pom.xml")))))
808 (propagated-inputs '())))
810 (define-public maven-wagon-provider-api
812 (name "maven-wagon-provider-api")
816 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
817 "wagon-" version "-source-release.zip"))
820 "1rnviw0yr4g5902fb8pkd1gyvci4bz7hndjvhkqmnkj7ay0y6mf0"))))
821 (build-system ant-build-system)
823 `(#:jar-name "maven-wagon-provider-api.jar"
824 #:source-dir "wagon-provider-api/src/main/java"
825 #:test-dir "wagon-provider-api/src/test"
827 (modify-phases %standard-phases
829 (install-from-pom "wagon-provider-api/pom.xml")))))
831 `(("java-plexus-utils" ,java-plexus-utils)
832 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
834 (list unzip java-junit java-easymock))
835 (home-page "https://maven.apache.org/wagon")
836 (synopsis "Transport abstraction for Maven")
837 (description "Maven Wagon is a transport abstraction that is used in Maven's
838 artifact and repository handling code.")
839 (license license:asl2.0)))
841 (define maven-wagon-parent-pom
843 (inherit maven-wagon-provider-api)
847 (modify-phases %standard-phases
851 (install-pom-file "pom.xml")))))
853 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
855 `(("unzip" ,unzip)))))
857 (define-public maven-wagon-provider-test
859 (inherit maven-wagon-provider-api)
860 (name "maven-wagon-provider-test")
862 `(#:jar-name "maven-wagon-provider-test.jar"
863 #:source-dir "wagon-provider-test/src/main/java"
864 #:tests? #f; no tests
867 `(("java-plexus-utils" ,java-plexus-utils)
868 ("java-plexus-container-default" ,java-plexus-container-default)
869 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
870 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
871 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
872 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
873 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
874 ("java-slf4j-api" ,java-slf4j-api)
875 ("java-javaee-servletapi" ,java-javaee-servletapi)
876 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
877 (synopsis "Test classes from maven-wagon")
878 (description "Maven Wagon is a transport abstraction that is used in Maven's
879 artifact and repository handling code. This package contains common test
880 classes used in multiple maven-wagon components.")))
882 (define-public maven-wagon-file
884 (inherit maven-wagon-provider-api)
885 (name "maven-wagon-file")
887 `(#:jar-name "maven-wagon-file.jar"
888 #:source-dir "wagon-providers/wagon-file/src/main/java"
889 #:test-dir "wagon-providers/wagon-file/src/test"
892 (modify-phases %standard-phases
893 (add-before 'check 'fix-paths
895 ;; Tests assume they are run by maven, which copies test resources
896 ;; to target. Our ant-build-system does the same, but with the
898 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
899 (("target") "build"))
901 (add-after 'build 'generate-metadata
903 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
904 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
905 "--source" "wagon-providers/wagon-file/src/main/java"
906 "--output" "build/classes/META-INF/plexus/components.xml"
907 "--classes" "build/classes"
908 "--descriptors" "build/classes/META-INF")
910 (add-after 'generate-metadata 'rebuild
915 (list java-plexus-utils maven-wagon-provider-api))
917 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
918 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
919 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
920 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
921 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
922 ("java-plexus-classworlds" ,java-plexus-classworlds)
923 ("java-guava" ,java-guava)
924 ("java-guice" ,java-guice)
925 ("java-javax-inject" ,java-javax-inject)
926 ("java-cglib" ,java-cglib)
927 ("java-slf4j-api" ,java-slf4j-api)
928 ("java-plexus-utils" ,java-plexus-utils)
929 ("java-plexus-cli" ,java-plexus-cli)
930 ("maven-plugin-api" ,maven-plugin-api)
931 ("maven-plugin-annotations" ,maven-plugin-annotations)
932 ("maven-core" ,maven-core)
933 ("maven-model" ,maven-model)
934 ("java-commons-cli" ,java-commons-cli)
935 ("java-qdox" ,java-qdox)
936 ("java-jdom2" ,java-jdom2)
937 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
938 ,@(package-native-inputs maven-wagon-provider-api)))
939 (synopsis "Wagon provider that gets and puts artifacts using the file system")
940 (description "Maven Wagon is a transport abstraction that is used in Maven's
941 artifact and repository handling code. It uses providers, that are tools to
942 manage artifacts and deployment. This package contains the file provider which
943 gets and puts artifacts using the file system.")))
945 (define-public maven-wagon-tck-http
947 (inherit maven-wagon-provider-api)
948 (name "maven-wagon-tck-http")
950 `(#:jar-name "maven-wagon-tck-http.jar"
951 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
952 #:tests? #f; no tests
955 `(("java-plexus-util" ,java-plexus-utils)
956 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
957 ("java-javaee-servletapi" ,java-javaee-servletapi)
958 ("java-slf4j-api" ,java-slf4j-api)
959 ("java-commons-codec" ,java-commons-codec)
960 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
961 ("java-plexus-classworlds" ,java-plexus-classworlds)
962 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
963 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
964 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
965 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
966 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
967 (synopsis "Wagon HTTP Test Compatibility Kit")
968 (description "Maven Wagon is a transport abstraction that is used in Maven's
969 artifact and repository handling code. This package contains the HTTP
970 Test Compatibility Kit.")))
972 (define-public maven-wagon-http-shared
974 (inherit maven-wagon-provider-api)
975 (name "maven-wagon-http-shared")
977 `(#:jar-name "maven-wagon-http-shared.jar"
978 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
979 #:test-dir "wagon-providers/wagon-http-shared/src/test"
982 (modify-phases %standard-phases
983 (add-after 'build 'generate-metadata
985 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
986 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
987 "--source" "wagon-providers/wagon-http-shared/src/main/java"
988 "--output" "build/classes/META-INF/plexus/components.xml"
989 "--classes" "build/classes"
990 "--descriptors" "build/classes/META-INF")
992 (add-after 'generate-metadata 'rebuild
997 (list java-plexus-utils
998 java-httpcomponents-httpclient
999 java-httpcomponents-httpcore
1002 maven-wagon-provider-api))
1004 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
1005 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
1006 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
1007 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1008 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1009 ("java-plexus-classworlds" ,java-plexus-classworlds)
1010 ("java-guava" ,java-guava)
1011 ("java-guice" ,java-guice)
1012 ("java-javax-inject" ,java-javax-inject)
1013 ("java-cglib" ,java-cglib)
1014 ("java-slf4j-api" ,java-slf4j-api)
1015 ("java-plexus-utils" ,java-plexus-utils)
1016 ("java-plexus-cli" ,java-plexus-cli)
1017 ("maven-plugin-api" ,maven-plugin-api)
1018 ("maven-plugin-annotations" ,maven-plugin-annotations)
1019 ("maven-core" ,maven-core)
1020 ("maven-model" ,maven-model)
1021 ("java-commons-cli" ,java-commons-cli)
1022 ("java-qdox" ,java-qdox)
1023 ("java-jdom2" ,java-jdom2)
1024 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1025 ,@(package-native-inputs maven-wagon-provider-api)))
1026 (synopsis "Shared Library for wagon providers supporting HTTP")
1027 (description "Maven Wagon is a transport abstraction that is used in Maven's
1028 artifact and repository handling code. It uses providers, that are tools to
1029 manage artifacts and deployment. This package contains a shared library for
1030 wagon providers supporting HTTP.")))
1032 (define-public maven-wagon-http
1034 (inherit maven-wagon-provider-api)
1035 (name "maven-wagon-http")
1037 `(#:jar-name "maven-wagon-http.jar"
1038 #:source-dir "wagon-providers/wagon-http/src/main/java"
1039 #:test-dir "wagon-providers/wagon-http/src/test"
1040 #:test-exclude (list
1042 ;; FIXME: javax.net.ssl.SSLHandshakeException:
1043 ;; sun.security.validator.ValidatorException:
1044 ;; PKIX path building failed:
1045 ;; sun.security.provider.certpath.SunCertPathBuilderException:
1046 ;; unable to find valid certification path to requested target
1047 "**/HttpsWagonPreemptiveTest.java"
1048 "**/HttpsWagonTest.java"
1050 "**/HugeFileDownloadTest.java"
1055 (modify-phases %standard-phases
1056 (add-before 'build 'copy-resources
1058 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
1059 "build/classes/META-INF/plexus")
1061 (add-before 'check 'fix-resource-path
1063 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
1064 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
1065 (("src/test") "wagon-providers/wagon-http/src/test"))
1068 (list java-plexus-utils
1069 java-httpcomponents-httpclient
1070 java-httpcomponents-httpcore
1071 maven-wagon-http-shared
1072 maven-wagon-tck-http
1073 maven-wagon-provider-api))
1075 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
1076 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
1077 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
1078 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1079 ("java-plexus-container-default" ,java-plexus-container-default)
1080 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1081 ("java-plexus-classworlds" ,java-plexus-classworlds)
1082 ("java-guava" ,java-guava)
1083 ("java-guice" ,java-guice)
1084 ("java-inject" ,java-javax-inject)
1085 ("java-cglib" ,java-cglib)
1086 ("java-slf4j-api" ,java-slf4j-api)
1087 ("java-plexus-utils" ,java-plexus-utils)
1088 ("java-plexus-cli" ,java-plexus-cli)
1089 ("maven-plugin-api" ,maven-plugin-api)
1090 ("maven-plugin-annotations" ,maven-plugin-annotations)
1091 ("maven-core" ,maven-core)
1092 ("maven-model" ,maven-model)
1093 ("java-commons-cli" ,java-commons-cli)
1094 ("java-qdox" ,java-qdox)
1095 ("java-jdom2" ,java-jdom2)
1096 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1097 ("java-javaee-servletapi" ,java-javaee-servletapi)
1098 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
1099 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
1100 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
1101 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
1102 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
1103 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
1104 ("java-hamcrest-core" ,java-hamcrest-core)
1105 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1106 ("java-commons-codec" ,java-commons-codec)
1107 ("java-commons-io" ,java-commons-io)
1108 ("java-jsoup" ,java-jsoup)
1109 ("java-slf4j-simple" ,java-slf4j-simple)
1110 ,@(package-native-inputs maven-wagon-provider-api)))
1111 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
1112 (description "Maven Wagon is a transport abstraction that is used in Maven's
1113 artifact and repository handling code. It uses providers, that are tools to
1114 manage artifacts and deployment. This package contains a Wagon provider that
1115 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
1123 (uri (string-append "mirror://apache/maven/"
1124 "maven-3/" version "/source/"
1125 "apache-maven-" version "-src.tar.gz"))
1126 (sha256 (base32 "16xbhkhhp05gskgbhrf1ia8riivvkhpk822n9xgnad61f9hzp2r9"))
1127 (modules '((guix build utils)))
1130 (for-each delete-file (find-files "." "\\.jar$"))
1133 (search-patches "maven-generate-component-xml.patch"
1134 "maven-generate-javax-inject-named.patch"))))
1135 (build-system ant-build-system)
1139 (modify-phases %standard-phases
1142 (add-before 'install 'fix-dependencies
1144 (substitute* "pom.xml"
1145 (("classWorldsVersion>.*")
1147 "classWorldsVersion>"
1148 ,(package-version java-plexus-classworlds)
1149 "</classWorldsVersion>\n"))
1150 (("commonsCliVersion>.*")
1152 "commonsCliVersion>"
1153 ,(package-version java-commons-cli)
1154 "</commonsCliVersion>\n"))
1155 (("commonsLangVersion>.*")
1157 "commonsLangVersion>"
1158 ,(package-version java-commons-lang3)
1159 "</commonsLangVersion>\n"))
1160 (("plexusUtilsVersion>.*")
1162 "plexusUtilsVersion>"
1163 ,(package-version java-plexus-utils)
1164 "</plexusUtilsVersion>\n"))
1165 (("plexusInterpolationVersion>.*")
1167 "plexusInterpolationVersion>"
1168 ,(package-version java-plexus-interpolation)
1169 "</plexusInterpolationVersion>\n"))
1170 (("guiceVersion>.*")
1173 ,(package-version java-guice)
1174 "</guiceVersion>\n"))
1175 (("sisuInjectVersion>.*")
1177 "sisuInjectVersion>"
1178 ,(package-version java-eclipse-sisu-inject)
1179 "</sisuInjectVersion>\n"))
1180 (("securityDispatcherVersion>.*")
1182 "securityDispatcherVersion>"
1183 ,(package-version java-plexus-sec-dispatcher)
1184 "</securityDispatcherVersion>\n"))
1185 (("cipherVersion>.*")
1188 ,(package-version java-plexus-cipher)
1189 "</cipherVersion>\n"))
1190 (("slf4jVersion>.*")
1193 ,(package-version java-slf4j-api)
1194 "</slf4jVersion>\n"))
1195 (("<classifier>no_aop</classifier>") ""))
1198 (install-pom-file "pom.xml")))))
1200 `(("maven-parent-pom-34" ,maven-parent-pom-34)))
1201 (home-page "https://maven.apache.org/")
1202 (synopsis "Build system")
1203 (description "Apache Maven is a software project management and comprehension
1204 tool. This package contains the Maven pom file, used by all maven components.")
1205 (license license:asl2.0)))
1207 (define-public maven-artifact
1210 (name "maven-artifact")
1212 `(#:jar-name "maven-artifact.jar"
1213 #:source-dir "maven-artifact/src/main/java"
1214 #:test-dir "maven-artifact/src/test"
1215 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
1217 (modify-phases %standard-phases
1219 (install-from-pom "maven-artifact/pom.xml")))))
1221 (list java-plexus-utils java-commons-lang3 maven-pom))
1224 (description "Apache Maven is a software project management and comprehension
1225 tool. This package contains the Maven Artifact classes, providing the
1226 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
1227 jar file is executable and provides a little tool to display how Maven parses
1228 and compares versions:")))
1230 (define-public maven-model
1232 (inherit maven-artifact)
1233 (name "maven-model")
1235 `(#:jar-name "maven-model.jar"
1236 #:source-dir "maven-model/src/main/java"
1237 #:test-dir "maven-model/src/test"
1239 (modify-phases %standard-phases
1240 (add-before 'build 'generate-models
1241 (lambda* (#:key inputs #:allow-other-keys)
1242 (define (modello-single-mode file version mode)
1243 (invoke "java" "org.codehaus.modello.ModelloCli"
1244 file mode "maven-model/src/main/java" version
1246 (let ((file "maven-model/src/main/mdo/maven.mdo"))
1247 (modello-single-mode file "4.0.0" "java")
1248 (modello-single-mode file "4.0.0" "xpp3-reader")
1249 (modello-single-mode file "4.0.0" "xpp3-extended-reader")
1250 (modello-single-mode file "4.0.0" "xpp3-writer")
1251 (modello-single-mode file "4.0.0" "xpp3-extended-writer"))
1253 (replace 'install (install-from-pom "maven-model/pom.xml")))))
1255 (list java-commons-lang3 java-plexus-utils maven-pom))
1257 (list java-modello-core
1259 java-eclipse-sisu-plexus
1260 java-plexus-component-annotations
1264 java-eclipse-sisu-inject
1266 java-plexus-classworlds
1268 java-geronimo-xbean-reflect
1269 java-plexus-build-api
1271 java-modello-plugins-java
1272 java-modello-plugins-xml
1273 java-modello-plugins-xpp3
1276 (description "Apache Maven is a software project management and comprehension
1277 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
1278 so really just plain Java objects.")))
1280 (define-public maven-builder-support
1282 (inherit maven-artifact)
1283 (name "maven-builder-support")
1285 `(#:jar-name "maven-builder-support.jar"
1286 #:source-dir "maven-builder-support/src/main/java"
1288 #:test-dir "maven-builder-support/src/test"
1290 (modify-phases %standard-phases
1291 (add-before 'check 'fix-paths
1293 (with-directory-excursion "maven-builder-support/src/test/java"
1295 '("org/apache/maven/building/FileSourceTest.java"
1296 "org/apache/maven/building/UrlSourceTest.java")
1297 (("target/test-classes") "maven-builder-support/src/test/resources")))
1299 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
1304 (description "Apache Maven is a software project management and comprehension
1305 tool. This package contains a support library for descriptor builders (model,
1306 setting, toolchains)")))
1308 (define-public maven-settings
1310 (inherit maven-artifact)
1311 (name "maven-settings")
1313 `(#:jar-name "maven-settings.jar"
1314 #:source-dir "maven-settings/src/main/java"
1315 #:tests? #f; no tests
1317 (modify-phases %standard-phases
1318 (add-before 'build 'generate-models
1319 (lambda* (#:key inputs #:allow-other-keys)
1320 (define (modello-single-mode file version mode)
1321 (invoke "java" "org.codehaus.modello.ModelloCli"
1322 file mode "maven-settings/src/main/java" version
1324 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
1325 (modello-single-mode file "1.2.0" "java")
1326 (modello-single-mode file "1.2.0" "xpp3-reader")
1327 (modello-single-mode file "1.2.0" "xpp3-writer"))
1329 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
1331 (list java-plexus-utils maven-pom))
1333 (list java-modello-core
1335 ;("container" ,java-plexus-container-default)
1336 java-eclipse-sisu-plexus
1337 java-plexus-component-annotations
1340 java-eclipse-sisu-inject
1342 java-plexus-classworlds
1345 java-geronimo-xbean-reflect
1346 java-plexus-build-api
1348 java-modello-plugins-java
1349 java-modello-plugins-xml
1350 java-modello-plugins-xpp3))
1351 (description "Apache Maven is a software project management and comprehension
1352 tool. This package contains strictly the model for Maven settings, that is
1353 simply plain java objects.")))
1355 (define-public maven-settings-builder
1357 (inherit maven-artifact)
1358 (name "maven-settings-builder")
1360 `(#:jar-name "maven-settings-builder.jar"
1361 #:source-dir "maven-settings-builder/src/main/java"
1363 #:test-dir "maven-settings-builder/src/test"
1365 (modify-phases %standard-phases
1366 (add-before 'build 'generate-sisu-named
1368 (mkdir-p "build/classes/META-INF/sisu")
1369 (chmod "sisu.sh" #o755)
1370 (invoke "./sisu.sh" "maven-settings-builder/src/main/java"
1371 "build/classes/META-INF/sisu/javax.inject.Named")))
1372 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1374 (list java-plexus-utils
1375 java-plexus-interpolation
1376 java-plexus-sec-dispatcher
1377 maven-builder-support
1381 (list java-junit java-javax-inject java-plexus-component-annotations))
1382 (description "Apache Maven is a software project management and comprehension
1383 tool. This package contains the effective model builder, with profile activation,
1384 inheritance, interpolation, @dots{}")))
1386 (define-public maven-model-builder
1388 (inherit maven-artifact)
1389 (name "maven-model-builder")
1391 `(#:jar-name "maven-model-builder.jar"
1392 #:source-dir "maven-model-builder/src/main/java"
1394 #:test-dir "maven-model-builder/src/test"
1396 (modify-phases %standard-phases
1397 (add-before 'build 'copy-resources
1399 (copy-recursively "maven-model-builder/src/main/resources"
1402 (add-before 'build 'generate-sisu-named
1404 (mkdir-p "build/classes/META-INF/sisu")
1405 (chmod "sisu.sh" #o755)
1406 (invoke "./sisu.sh" "maven-model-builder/src/main/java"
1407 "build/classes/META-INF/sisu/javax.inject.Named")))
1408 (add-before 'check 'fix-paths
1410 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
1411 (("src/test") "maven-model-builder/src/test"))
1414 (install-from-pom "maven-model-builder/pom.xml")))))
1416 (list java-plexus-interpolation
1419 maven-builder-support
1423 `(("java-junit" ,java-junit)
1424 ("java-guava" ,java-guava)
1425 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1426 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1427 ("java-powermock-reflect" ,java-powermock-reflect)
1428 ("java-objenesis" ,java-objenesis)
1429 ("guice" ,java-guice)
1430 ("java-cglib" ,java-cglib)
1431 ("sisu-inject" ,java-eclipse-sisu-inject)
1432 ("javax-inject" ,java-javax-inject)
1433 ("java-xmlunit" ,java-xmlunit)
1434 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
1435 ("xbean" ,java-geronimo-xbean-reflect)
1436 ("classworlds" ,java-plexus-classworlds)))
1437 (description "Apache Maven is a software project management and comprehension
1438 tool. This package contains the effective model builder, with profile activation,
1439 inheritance, interpolation, @dots{}")))
1441 (define-public maven-repository-metadata
1443 (inherit maven-artifact)
1444 (name "maven-repository-metadata")
1446 `(#:jar-name "maven-repository-metadata.jar"
1447 #:source-dir "maven-repository-metadata/src/main/java"
1449 #:tests? #f; no tests
1451 (modify-phases %standard-phases
1452 (add-before 'build 'generate-models
1453 (lambda* (#:key inputs #:allow-other-keys)
1454 (define (modello-single-mode file version mode)
1455 (invoke "java" "org.codehaus.modello.ModelloCli"
1456 file mode "maven-repository-metadata/src/main/java" version
1458 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1459 (modello-single-mode file "1.1.0" "java")
1460 (modello-single-mode file "1.1.0" "xpp3-reader")
1461 (modello-single-mode file "1.1.0" "xpp3-writer"))
1464 (install-from-pom "maven-repository-metadata/pom.xml")))))
1466 (list java-plexus-utils maven-pom))
1468 `(("modello" ,java-modello-core)
1470 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1471 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1472 ("java-guice" ,java-guice)
1473 ("java-cglib" ,java-cglib)
1474 ("java-asm" ,java-asm)
1475 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1476 ("java-javax-inject" ,java-javax-inject)
1477 ("java-plexus-utils" ,java-plexus-utils)
1478 ("java-plexus-classworlds" ,java-plexus-classworlds)
1479 ("java-guava" ,java-guava)
1480 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1481 ("java-plexus-build-api" ,java-plexus-build-api)
1483 ("java-modello-plugins-java" ,java-modello-plugins-java)
1484 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1485 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1486 (description "Apache Maven is a software project management and comprehension
1487 tool. This package contains strictly the model for Maven Repository Metadata,
1488 so really just plain objects.")))
1490 (define-public maven-resolver-provider
1492 (inherit maven-artifact)
1493 (name "maven-resolver-provider")
1495 `(#:jar-name "maven-resolver-provider.jar"
1496 #:source-dir "maven-resolver-provider/src/main/java"
1497 #:test-dir "maven-resolver-provider/src/test"
1499 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1501 (modify-phases %standard-phases
1502 (add-before 'build 'generate-sisu-named
1504 (mkdir-p "build/classes/META-INF/sisu")
1505 (chmod "./sisu.sh" #o755)
1506 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1507 "build/classes/META-INF/sisu/javax.inject.Named")
1510 (install-from-pom "maven-resolver-provider/pom.xml")))))
1518 maven-builder-support
1519 maven-repository-metadata
1521 java-plexus-component-annotations
1523 java-javax-inject))))
1525 (define-public maven-plugin-api
1527 (inherit maven-artifact)
1528 (name "maven-plugin-api")
1530 `(#:jar-name "maven-plugin-api.jar"
1531 #:source-dir "maven-plugin-api/src/main/java"
1533 #:test-dir "maven-plugin-api/src/test"
1535 (modify-phases %standard-phases
1536 (add-before 'build 'generate-models
1537 (lambda* (#:key inputs #:allow-other-keys)
1538 (define (modello-single-mode file version mode)
1539 (invoke "java" "org.codehaus.modello.ModelloCli"
1540 file mode "maven-plugin-api/src/main/java" version
1542 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1543 (modello-single-mode file "1.0.0" "java")
1544 (modello-single-mode file "1.0.0" "xpp3-reader")
1545 (modello-single-mode file "1.0.0" "xpp3-writer"))
1548 (install-from-pom "maven-plugin-api/pom.xml")))))
1550 `(("maven-artifact" ,maven-artifact)
1551 ("maven-model" ,maven-model)
1552 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1553 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1554 ("guice" ,java-guice)
1555 ("java-cglib" ,java-cglib)
1556 ("sisu-inject" ,java-eclipse-sisu-inject)
1557 ("javax-inject" ,java-javax-inject)
1558 ("utils" ,java-plexus-utils)))
1560 `(("modello" ,java-modello-core)
1562 ("classworlds" ,java-plexus-classworlds)
1563 ("guava" ,java-guava)
1564 ("xbean" ,java-geronimo-xbean-reflect)
1565 ("build-api" ,java-plexus-build-api)
1567 ("java" ,java-modello-plugins-java)
1568 ("xml" ,java-modello-plugins-xml)
1569 ("xpp3" ,java-modello-plugins-xpp3)
1571 ("java-junit" ,java-junit)))
1572 (description "Apache Maven is a software project management and comprehension
1573 tool. This package contains strictly the API for plugins -- composed of goals
1574 implemented by Mojos -- development.
1576 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1577 generally generated from plugin sources using maven-plugin-plugin.")))
1579 (define-public maven-core-bootstrap
1582 (inherit maven-artifact)
1585 `(#:jar-name "maven-core.jar"
1586 #:source-dir "src/main/java"
1588 ;; Tests need maven-compat, which requires maven-core
1591 (modify-phases %standard-phases
1592 (add-before 'configure 'chdir
1594 ;; Required for generating components.xml in maven-core
1595 (chdir "maven-core")
1597 (add-before 'build 'copy-resources
1599 (mkdir-p "build/classes/")
1600 (copy-recursively "src/main/resources" "build/classes")
1602 (add-after 'copy-resources 'fill-properties
1604 ;; This file controls the output of some mvn subcommands, such as
1606 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1607 (("\\$\\{buildNumber\\}") "guix_build")
1608 (("\\$\\{timestamp\\}") "0")
1609 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1610 (("\\$\\{distributionId\\}") "apache-maven")
1611 (("\\$\\{distributionShortName\\}") "Maven")
1612 (("\\$\\{distributionName\\}") "Apache Maven"))
1614 (add-before 'build 'generate-sisu-named
1616 (mkdir-p "build/classes/META-INF/sisu")
1617 (chmod "../sisu.sh" #o755)
1618 (invoke "../sisu.sh" "src/main/java"
1619 "build/classes/META-INF/sisu/javax.inject.Named")
1621 (add-before 'build 'generate-models
1622 (lambda* (#:key inputs #:allow-other-keys)
1623 (define (modello-single-mode file version mode)
1624 (invoke "java" "org.codehaus.modello.ModelloCli"
1625 file mode "src/main/java" version
1627 (let ((file "src/main/mdo/toolchains.mdo"))
1628 (modello-single-mode file "1.1.0" "java")
1629 (modello-single-mode file "1.1.0" "xpp3-reader")
1630 (modello-single-mode file "1.1.0" "xpp3-writer"))
1632 (add-before 'install 'fix-pom
1634 (substitute* "pom.xml"
1635 (("<classifier>no_aop</classifier>") ""))
1638 (install-from-pom "pom.xml")))))
1640 `(("maven-artifact" ,maven-artifact)
1641 ("maven-resolver-provider" ,maven-resolver-provider)
1642 ("maven-builder-support" ,maven-builder-support)
1643 ("maven-model" ,maven-model)
1644 ("maven-model-builder" ,maven-model-builder)
1645 ("maven-settings" ,maven-settings)
1646 ("maven-settings-builder" ,maven-settings-builder)
1647 ("maven-plugin-api" ,maven-plugin-api)
1648 ("maven-repository-metadata" ,maven-repository-metadata)
1649 ("maven-shared-utils" ,maven-shared-utils)
1650 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
1651 ("java-plexus-utils" ,java-plexus-utils)
1652 ("java-commons-lang3" ,java-commons-lang3)
1653 ("java-guava" ,java-guava)
1654 ("java-guice" ,java-guice)
1655 ("maven-resolver-api" ,maven-resolver-api)
1656 ("maven-resolver-spi" ,maven-resolver-spi)
1657 ("maven-resolver-util" ,maven-resolver-util)
1658 ("maven-resolver-impl" ,maven-resolver-impl)
1659 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1660 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1661 ("java-javax-inject" ,java-javax-inject)
1662 ("java-plexus-classworld" ,java-plexus-classworlds)))
1664 `(("java-modello-core" ,java-modello-core)
1665 ("java-cglib" ,java-cglib)
1666 ("java-plexus-classworlds" ,java-plexus-classworlds)
1667 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1668 ("java-plexus-build-api" ,java-plexus-build-api)
1669 ("java-modello-plugins-java" ,java-modello-plugins-java)
1670 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1671 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1673 ("java-junit" ,java-junit)
1674 ("java-mockito-1" ,java-mockito-1)
1675 ("java-commons-jxpath" ,java-commons-jxpath)))
1676 (description "Apache Maven is a software project management and comprehension
1677 tool. This package contains the maven core classes managing the whole build
1680 (define-public maven-core
1682 (inherit maven-core-bootstrap)
1684 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1686 `(modify-phases ,phases
1687 (add-before 'build 'modify-metainf
1689 (substitute* "build.xml"
1691 (string-append "message=\"Implementation-Version: "
1692 (package-version maven) "\n\"")))
1694 (add-before 'build 'add-maven-files
1696 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1697 (copy-file "pom.xml"
1698 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1699 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1701 (format #t "version=~a~%
1702 groupId=org.apache.maven~%
1703 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1705 (add-after 'build 'generate-metadata
1707 (define (components file)
1708 (let ((sxml (with-input-from-file file
1709 (lambda _ (xml->sxml (current-input-port)
1710 #:trim-whitespace? #t)))))
1711 ;; Select the list of <component>s inside the <component-set>
1712 ;; and <components>.
1713 ((@ (ice-9 match) match) sxml
1717 ('components x ...))) x))))
1718 (use-modules (sxml simple))
1719 (delete-file "build/classes/META-INF/plexus/components.xml")
1720 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1721 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1722 "--source" "build/classes/META-INF/plexus"
1723 "--output" "build/classes/META-INF/plexus/components.t.xml"
1724 "--classes" "build/classes"
1725 "--descriptors" "build/classes")
1726 ;; Now we merge all other components from hand-written xml
1727 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1728 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1729 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1730 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1731 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1733 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1737 ,@(append generated-xml components-xml
1738 default-bindings-xml
1739 artifact-handlers-xml)))))))
1741 (add-after 'generate-metadata 'fix-plugin-versions
1743 ;; This file controls the default plugins used by Maven. Ensure
1744 ;; we use the versions we have packaged by default
1745 (substitute* '("build/classes/META-INF/plexus/default-bindings.xml"
1746 "build/classes/META-INF/plexus/components.xml")
1747 (("maven-install-plugin:[0-9.]+")
1748 (string-append "maven-install-plugin:"
1749 ,(package-version maven-install-plugin)))
1750 (("maven-resources-plugin:[0-9.]+")
1751 (string-append "maven-resources-plugin:"
1752 ,(package-version maven-resources-plugin)))
1753 (("maven-compiler-plugin:[0-9.]+")
1754 (string-append "maven-compiler-plugin:"
1755 ,(package-version maven-compiler-plugin)))
1756 (("maven-surefire-plugin:[0-9.]+")
1757 (string-append "maven-surefire-plugin:"
1758 ,(package-version maven-surefire-plugin)))
1759 (("maven-jar-plugin:[0-9.]+")
1760 (string-append "maven-jar-plugin:"
1761 ,(package-version maven-jar-plugin))))))
1762 (add-after 'fix-plugin-versions 'rebuild
1764 (invoke "ant" "jar")
1767 `(("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
1768 ("java-commons-cli" ,java-commons-cli)
1769 ("java-plexus-cli" ,java-plexus-cli)
1770 ("java-jdom2" ,java-jdom2)
1771 ("java-qdox" ,java-qdox)
1772 ("maven-core-boot" ,maven-core-bootstrap)
1773 ,@(package-native-inputs maven-core-bootstrap)))))
1775 (define-public maven-embedder
1777 (inherit maven-artifact)
1778 (name "maven-embedder")
1780 `(#:jar-name "maven-embedder.jar"
1781 #:source-dir "maven-embedder/src/main/java"
1782 #:test-dir "maven-embedder/src/test"
1783 #:test-exclude (list "**/MavenCliTest.java")
1786 (modify-phases %standard-phases
1787 (add-before 'build 'generate-sisu-named
1789 (mkdir-p "build/classes/META-INF/sisu")
1790 (chmod "sisu.sh" #o755)
1791 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1792 "build/classes/META-INF/sisu/javax.inject.Named")
1794 (add-before 'build 'copy-resources
1796 (mkdir-p "build/classes/")
1797 (copy-recursively "maven-embedder/src/main/resources" "build/classes")))
1798 (add-before 'build 'generate-models
1799 (lambda* (#:key inputs #:allow-other-keys)
1800 (define (modello-single-mode file version mode)
1801 (invoke "java" "org.codehaus.modello.ModelloCli"
1802 file mode "maven-embedder/src/main/java" version
1804 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1805 (modello-single-mode file "1.0.0" "java")
1806 (modello-single-mode file "1.0.0" "xpp3-reader")
1807 (modello-single-mode file "1.0.0" "xpp3-writer"))
1809 (add-before 'check 'fix-test-paths
1811 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1812 (("target/test-classes") "build/test-classes"))
1814 (add-before 'check 'fix-test-compilation
1816 ;; Tests are in the java/ subdir. Other subdirectories contain
1817 ;; additional test plugins, with duplicate classes, so we can't
1818 ;; compile them. Also, they are meant to be built with maven, to
1819 ;; test its build process.
1820 (substitute* "build.xml"
1821 (("srcdir=\"maven-embedder/src/test\"")
1822 "srcdir=\"maven-embedder/src/test/java\""))
1824 (add-before 'check 'disable-failing-test
1826 (delete-file "maven-embedder/src/test/java/org/apache/maven/cli/event/ExecutionEventLoggerTest.java")))
1827 (add-before 'install 'fix-pom
1829 (substitute* "maven-embedder/pom.xml"
1830 (("jsr250-api") "javax.annotation-api"))))
1832 (install-from-pom "maven-embedder/pom.xml")))))
1834 `(("maven-core" ,maven-core)
1835 ("maven-artifact" ,maven-artifact)
1836 ("maven-plugin-api" ,maven-plugin-api)
1837 ("maven-builder-support" ,maven-builder-support)
1838 ("maven-model" ,maven-model)
1839 ("maven-model-builder" ,maven-model-builder)
1840 ("maven-settings" ,maven-settings)
1841 ("maven-settings-builder" ,maven-settings-builder)
1842 ("maven-shared-utils" ,maven-shared-utils)
1843 ("java-plexus-classworlds" ,java-plexus-classworlds)
1844 ("java-plexus-util" ,java-plexus-utils)
1845 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1846 ("java-plexus-cipher" ,java-plexus-cipher)
1847 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1848 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1849 ("maven-resolevr-util" ,maven-resolver-util)
1850 ("maven-resolevr-api" ,maven-resolver-api)
1851 ("java-logback-core" ,java-logback-core)
1852 ("java-logback-classic" ,java-logback-classic)
1853 ("java-commons-cli" ,java-commons-cli)
1854 ("java-commons-io" ,java-commons-io)
1855 ("java-commons-lang3" ,java-commons-lang3)
1856 ("java-guava" ,java-guava)
1857 ("java-guice" ,java-guice)
1858 ("java-javax-inject" ,java-javax-inject)
1859 ("java-slf4j-api" ,java-slf4j-api)
1860 ("java-slf4j-simple" ,java-slf4j-simple)
1861 ("java-jsr250" ,java-jsr250)))
1863 `(("java-asm-8" ,java-asm-8)
1864 ("java-modello-core" ,java-modello-core)
1865 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1866 ("java-plexus-build-api" ,java-plexus-build-api)
1867 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1868 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1869 ("java-cglib" ,java-cglib)
1870 ("java-modello-plugins-java" ,java-modello-plugins-java)
1871 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1872 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1874 ("java-junit" ,java-junit)
1875 ("java-objenesis" ,java-objenesis)
1876 ("java-mockito-1" ,java-mockito-1)
1877 ("java-hamcrest-core" ,java-hamcrest-core)))
1878 (description "Apache Maven is a software project management and comprehension
1879 tool. This package contains a Maven embeddable component, with CLI and
1880 logging support.")))
1882 (define-public maven-compat
1884 (inherit maven-artifact)
1885 (name "maven-compat")
1887 `(#:jar-name "maven-compat.jar"
1888 #:source-dir "src/main/java"
1890 #:test-dir "src/test"
1892 (modify-phases %standard-phases
1893 ;; Tests assume we're in this directory
1894 (add-before 'configure 'chdir
1896 (chdir "maven-compat")
1898 (add-before 'build 'recreate-removed-jar
1900 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1902 (with-directory-excursion "src/test/resources"
1903 (with-output-to-file "artifact-install/artifact-1.0.jar"
1905 (format #t "dummy~%")))
1908 (with-output-to-file file
1910 (format #t "foo~%"))))
1911 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1912 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1913 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1914 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1915 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1916 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1917 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1918 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1919 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1920 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1921 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1922 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1923 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1924 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1925 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1926 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1927 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1928 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1929 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1930 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1931 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1932 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1933 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1934 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1935 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1936 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1937 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1938 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1939 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1940 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1941 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1942 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1943 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1944 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1945 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1946 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1947 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1948 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1949 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1950 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1951 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1952 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1953 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1954 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1955 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1956 (with-directory-excursion "local-repo/snapshot-test/jars"
1959 (with-output-to-file file
1962 (format #t "local"))))
1963 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1964 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1965 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1968 (with-directory-excursion
1969 (string-append "src/test/remote-repo/org/apache/maven/its/"
1971 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1974 (copy-file (string-append letter "-0.1.pom")
1975 (string-append dir "/pom.xml"))
1976 (with-output-to-file (string-append dir "/pom.properties")
1978 (format #t "version=0.1~%")
1979 (format #t "groupId=org.apache.maven.its")
1980 (format #t (string-append "artifactId=" letter))))
1981 (with-output-to-file "META-INF/MANIFEST.MF"
1983 (format #t "Manifest-Version: 1.0~%"))))
1984 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1985 (string-append letter "-0.1.jar") "META-INF")))
1988 (add-before 'build 'generate-models
1989 (lambda* (#:key inputs #:allow-other-keys)
1990 (define (modello-single-mode file version mode)
1991 (invoke "java" "org.codehaus.modello.ModelloCli"
1992 file mode "src/main/java" version
1994 (let ((file "src/main/mdo/profiles.mdo"))
1995 (modello-single-mode file "1.0.0" "java")
1996 (modello-single-mode file "1.0.0" "xpp3-reader")
1997 (modello-single-mode file "1.0.0" "xpp3-writer"))
1998 (let ((file "src/main/mdo/paramdoc.mdo"))
1999 (modello-single-mode file "1.0.0" "java")
2000 (modello-single-mode file "1.0.0" "xpp3-reader")
2001 (modello-single-mode file "1.0.0" "xpp3-writer"))
2003 (add-before 'build 'copy-resources
2005 (mkdir-p "build/classes/")
2006 (copy-recursively "src/main/resources" "build/classes")))
2007 (add-after 'build 'generate-metadata
2009 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2010 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2011 "--source" "src/main/java"
2012 "--output" "build/classes/META-INF/plexus/components.xml"
2013 "--classes" "build/classes"
2014 "--descriptors" "build/classes/META-INF")
2016 (add-before 'check 'build-tests
2018 (invoke "ant" "compile-tests")
2020 (add-after 'build-tests 'generate-test-metadata
2022 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
2024 ":build/test-classes")
2025 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2026 "--source" "src/test/java"
2027 "--output" "build/test-classes/META-INF/plexus/components.xml"
2028 "--classes" "build/test-classes"
2029 "--descriptors" "build/test-classes/META-INF")
2031 (add-before 'check 'disable-failing-test
2033 (delete-file "src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java")))
2034 (add-after 'generate-metadata 'rebuild
2036 (invoke "ant" "jar")
2039 (install-from-pom "pom.xml")))))
2041 (list maven-artifact
2042 maven-repository-metadata
2043 maven-builder-support
2047 maven-settings-builder
2049 maven-wagon-provider-api
2054 java-plexus-interpolation))
2056 `(("java-modello-core" ,java-modello-core)
2057 ("java-plexus-utils" ,java-plexus-utils)
2058 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
2059 ("java-plexus-classworlds" ,java-plexus-classworlds)
2060 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
2061 ("java-plexus-build-api" ,java-plexus-build-api)
2062 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2063 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
2064 ("java-javax-inject" ,java-javax-inject)
2065 ("java-guice" ,java-guice)
2066 ("java-guava" ,java-guava)
2067 ("java-cglib" ,java-cglib)
2068 ("java-asm" ,java-asm)
2069 ("java-modello-plugins-java" ,java-modello-plugins-java)
2070 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
2071 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
2073 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
2074 ("java-commons-cli" ,java-commons-cli)
2075 ("java-plexus-cli" ,java-plexus-cli)
2076 ("java-jdom2" ,java-jdom2)
2077 ("maven-plugin-api" ,maven-plugin-api)
2078 ("java-qdox" ,java-qdox)
2080 ("java-plexus-cipher" ,java-plexus-cipher)
2081 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2082 ("java-jsr250" ,java-jsr250)
2083 ("java-cdi-api" ,java-cdi-api)
2084 ("java-junit" ,java-junit)
2085 ("maven-resolver-impl" ,maven-resolver-impl)
2086 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
2087 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
2088 ("java-commons-lang3" ,java-commons-lang3)
2089 ("java-aop" ,java-aopalliance)
2090 ("maven-resolver-provider" ,maven-resolver-provider)
2091 ("java-slf4j-api" ,java-slf4j-api)
2092 ("java-slf4j-simple" ,java-slf4j-simple)
2093 ,@(package-inputs java-slf4j-api)))
2094 (description "Apache Maven is a software project management and comprehension
2095 tool. This package contains Maven2 classes maintained as compatibility
2096 layer for plugins that need to keep Maven2 compatibility.")))
2098 (define-public maven
2100 (inherit maven-artifact)
2104 (modify-phases %standard-phases
2106 (lambda* (#:key inputs #:allow-other-keys)
2107 ;; Recreate the configuration for the loader
2108 (with-output-to-file "apache-maven/src/bin/m2.conf"
2110 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
2112 (format #t "set maven.conf default ${maven.home}/conf~%")
2114 (format #t "[plexus.core]~%")
2115 (format #t "load ${maven.conf}/logging~%")
2116 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
2117 ;; Reference every jar so plexus-classworlds can find them.
2119 (lambda (dependency)
2122 (format #t "load ~a~%" file))
2123 (find-files (assoc-ref inputs dependency) ".*.jar$")))
2124 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
2125 "maven-builder-support" "maven-model" "maven-model-builder"
2126 "maven-settings" "maven-settings-builder" "maven-plugin-api"
2127 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
2128 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
2129 "maven-resolver-connector-basic" "maven-resolver-provider"
2130 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
2131 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
2132 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
2133 "maven-wagon-http-shared" "maven-wagon-tck-http"
2134 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
2135 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
2136 "java-javax-inject" "java-plexus-component-annotations"
2137 "java-plexus-utils" "java-plexus-interpolation"
2138 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
2139 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
2140 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
2141 "java-slf4j-simple"))))
2142 (substitute* "apache-maven/src/bin/mvn"
2147 (assoc-ref inputs "java-plexus-classworlds")
2150 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
2154 (lambda* (#:key outputs #:allow-other-keys)
2155 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
2156 (conf (string-append (assoc-ref outputs "out") "/conf/")))
2157 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
2158 (for-each (lambda (file)
2159 (install-file (string-append "apache-maven/src/bin/" file)
2161 (chmod (string-append bin file) #o755))
2162 '("mvn" "mvnDebug" "mvnyjp"))
2163 (install-file "apache-maven/src/bin/m2.conf" bin)
2164 (copy-recursively "apache-maven/src/conf" conf))
2167 (list java-plexus-classworlds
2172 maven-builder-support
2176 maven-settings-builder
2178 maven-repository-metadata
2184 maven-resolver-connector-basic
2185 maven-resolver-provider
2186 maven-resolver-transport-wagon
2187 maven-wagon-provider-api
2190 java-commons-logging-minimal
2191 java-httpcomponents-httpclient
2192 java-httpcomponents-httpcore
2193 maven-wagon-http-shared
2194 maven-wagon-tck-http
2195 java-eclipse-sisu-plexus
2200 java-eclipse-sisu-inject
2202 java-plexus-component-annotations
2204 java-plexus-interpolation
2205 java-plexus-sec-dispatcher
2215 ;; TODO: replace with maven-slf4j-provider
2218 (list coreutils which))
2219 (description "Apache Maven is a software project management and comprehension
2220 tool. Based on the concept of a project object model: builds, dependency
2221 management, documentation creation, site publication, and distribution
2222 publication are all controlled from the @file{pom.xml} declarative file. Maven
2223 can be extended by plugins to utilise a number of other development tools for
2224 reporting or the build process.")))
2226 ;; Many plugins require maven 3.0 as a dependency.
2227 (define maven-3.0-pom
2234 (url "https://github.com/apache/maven")
2235 (commit (string-append "maven-" version))))
2236 (file-name (git-file-name "maven" version))
2239 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2240 (modules '((guix build utils)))
2243 (for-each delete-file (find-files "." "\\.jar$"))
2244 (for-each (lambda (file) (chmod file #o644))
2245 (find-files "." "."))
2248 (search-patches "maven-generate-component-xml.patch"
2249 "maven-generate-javax-inject-named.patch"))))
2251 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2253 (define-public maven-3.0-artifact
2255 (inherit maven-artifact)
2256 (version (package-version maven-3.0-pom))
2257 (source (package-source maven-3.0-pom))
2261 (if (equal? (car input) "maven-pom")
2262 `("maven-pom" ,maven-3.0-pom)
2264 (package-propagated-inputs maven-artifact)))))
2266 (define-public maven-3.0-model
2268 (inherit maven-model)
2269 (version (package-version maven-3.0-pom))
2270 (source (package-source maven-3.0-pom))
2274 (if (equal? (car input) "maven-pom")
2275 `("maven-pom" ,maven-3.0-pom)
2277 (package-propagated-inputs maven-artifact)))
2279 `(#:jar-name "maven-model.jar"
2280 #:source-dir "maven-model/src/main/java"
2281 #:test-dir "maven-model/src/test"
2283 ((guix build ant-build-system)
2284 (guix build java-utils)
2285 (guix build syscalls)
2288 (modify-phases %standard-phases
2289 (add-after 'configure 'use-newer-model
2290 (lambda* (#:key inputs #:allow-other-keys)
2291 ;; The model has almost not changed, but the newer version is
2292 ;; needed to prevent an error in the newer modello we have
2293 (let ((source (assoc-ref inputs "maven-source"))
2294 (dir (mkdtemp! "maven-source-XXXXXXXX")))
2295 (with-directory-excursion dir
2296 (invoke "tar" "xf" source)
2297 (copy-file (car (find-files "." "maven.mdo"))
2298 "../maven-model/src/main/mdo/maven.mdo")))
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 "maven-model/src/main/java" version
2305 "false" "true" "UTF-8"))
2306 (let ((file "maven-model/src/main/mdo/maven.mdo"))
2307 (modello-single-mode file "4.0.0" "java")
2308 (modello-single-mode file "4.0.0" "xpp3-reader")
2309 (modello-single-mode file "4.0.0" "xpp3-writer")
2310 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
2313 (install-from-pom "maven-model/pom.xml")))))
2315 `(("maven-source" ,(package-source maven-pom))
2316 ,@(package-inputs maven-model)))))
2318 (define-public maven-3.0-settings
2320 (inherit maven-settings)
2321 (version (package-version maven-3.0-pom))
2322 (source (package-source maven-3.0-pom))
2326 (if (equal? (car input) "maven-pom")
2327 `("maven-pom" ,maven-3.0-pom)
2329 (package-propagated-inputs maven-settings)))))
2331 (define-public maven-3.0-settings-builder
2333 (inherit maven-settings-builder)
2334 (version (package-version maven-3.0-pom))
2335 (source (package-source maven-3.0-pom))
2337 (substitute-keyword-arguments (package-arguments maven-settings-builder)
2339 `(modify-phases ,phases
2340 (add-before 'build 'generate-components.xml
2342 (mkdir-p "build/classes/META-INF/plexus")
2343 (chmod "components.sh" #o755)
2344 (invoke "./components.sh" "maven-settings-builder/src/main/java"
2345 "build/classes/META-INF/plexus/components.xml")))))))
2347 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2353 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2354 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2355 ("maven-builder-support" #f)
2356 ("java-plexus-sec-dispatcher"
2357 `("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher-1.4))
2359 (package-propagated-inputs maven-settings-builder)))))))
2361 (define-public maven-3.0-model-builder
2363 (inherit maven-model-builder)
2364 (version (package-version maven-3.0-pom))
2365 (source (package-source maven-3.0-pom))
2367 (substitute-keyword-arguments (package-arguments maven-model-builder)
2369 `(modify-phases ,phases
2370 (add-before 'build 'generate-components.xml
2372 (mkdir-p "build/classes/META-INF/plexus")
2373 (chmod "components.sh" #o755)
2374 (invoke "./components.sh" "maven-model-builder/src/main/java"
2375 "build/classes/META-INF/plexus/components.xml")))
2376 (add-before 'check 'remove-failing-test
2378 (delete-file "maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java")))))))
2380 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2386 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2387 ("maven-model" `("maven-model" ,maven-3.0-model))
2388 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2389 ("maven-builder-support" #f)
2391 (package-propagated-inputs maven-model-builder)))))))
2393 (define-public maven-3.0-plugin-api
2395 (inherit maven-plugin-api)
2396 (version (package-version maven-3.0-pom))
2397 (source (package-source maven-3.0-pom))
2399 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2401 `(modify-phases ,phases
2402 (add-before 'install 'fix-pom
2404 (substitute* "maven-plugin-api/pom.xml"
2405 (("org.sonatype.sisu") "org.codehaus.plexus")
2406 (("sisu-inject-plexus") "plexus-container-default"))
2412 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2413 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2414 ("maven-model" `("maven-model" ,maven-3.0-model))
2416 (package-propagated-inputs maven-model-builder)))
2418 (modify-inputs (package-native-inputs maven-plugin-api)
2419 (prepend java-plexus-container-default)))))
2421 (define-public maven-3.0-repository-metadata
2423 (inherit maven-repository-metadata)
2424 (version (package-version maven-3.0-pom))
2425 (source (package-source maven-3.0-pom))
2429 (if (equal? (car input) "maven-pom")
2430 `("maven-pom" ,maven-3.0-pom)
2432 (package-propagated-inputs maven-repository-metadata)))))
2434 (define-public maven-3.0-aether-provider
2436 (inherit maven-3.0-pom)
2437 (name "maven-aether-provider")
2439 `(#:jar-name "maven-aether-provider.jar"
2440 #:source-dir "maven-aether-provider/src/main/java"
2441 #:tests? #f; no tests in 3.0
2443 (modify-phases %standard-phases
2444 (add-after 'build 'generate-metadata
2446 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2447 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2448 "--source" "src/main/java"
2449 "--output" "build/classes/META-INF/plexus/components.xml"
2450 "--classes" "build/classes"
2451 "--descriptors" "build/classes/META-INF")
2453 (add-after 'generate-metadata 'rebuild
2455 (invoke "ant" "jar")
2458 (install-from-pom "maven-aether-provider/pom.xml")))))
2460 `(("maven-model" ,maven-3.0-model)
2461 ("maven-model-builder" ,maven-3.0-model-builder)
2462 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2463 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2464 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
2465 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2466 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
2467 ("java-plexus-utils" ,java-plexus-utils)
2468 ("maven-pom" ,maven-3.0-pom)))
2470 (list java-plexus-component-metadata))))
2472 (define-public maven-3.0-core
2474 (inherit maven-core)
2475 (version (package-version maven-3.0-pom))
2476 (source (package-source maven-3.0-pom))
2478 `(#:jar-name "maven-core.jar"
2479 #:source-dir "src/main/java"
2482 (modify-phases %standard-phases
2483 (add-before 'configure 'chdir
2485 ;; Required for generating components.xml in maven-core
2486 (chdir "maven-core")
2488 (add-before 'build 'generate-models
2489 (lambda* (#:key inputs #:allow-other-keys)
2490 (define (modello-single-mode file version mode)
2491 (invoke "java" "org.codehaus.modello.ModelloCli"
2492 file mode "src/main/java" version
2493 "false" "true" "UTF-8"))
2494 (let ((file "src/main/mdo/toolchains.mdo"))
2495 (modello-single-mode file "1.0.0" "java")
2496 (modello-single-mode file "1.0.0" "xpp3-reader")
2497 (modello-single-mode file "1.0.0" "xpp3-writer"))
2499 (add-before 'build 'copy-resources
2501 (mkdir-p "build/classes/")
2502 (copy-recursively "src/main/resources" "build/classes")
2504 (add-after 'build 'generate-metadata
2506 (define (components file)
2507 (let ((sxml (with-input-from-file file
2508 (lambda _ (xml->sxml (current-input-port)
2509 #:trim-whitespace? #t)))))
2510 ;; Select the list of <component>s inside the <component-set>
2511 ;; and <components>.
2512 ((@ (ice-9 match) match) sxml
2516 ('components x ...))) x))))
2517 (use-modules (sxml simple))
2518 (delete-file "build/classes/META-INF/plexus/components.xml")
2519 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2520 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2521 "--source" "build/classes/META-INF/plexus"
2522 "--output" "build/classes/META-INF/plexus/components.t.xml"
2523 "--classes" "build/classes"
2524 "--descriptors" "build/classes")
2525 ;; Now we merge all other components from hand-written xml
2526 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
2527 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
2528 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
2529 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
2531 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2535 ,@(append generated-xml components-xml
2536 artifact-handlers-xml)))))))
2538 (add-after 'generate-metadata 'rebuild
2540 (invoke "ant" "jar")
2542 (add-before 'install 'fix-pom
2544 (substitute* "pom.xml"
2545 (("org.sonatype.sisu") "org.codehaus.plexus")
2546 (("sisu-inject-plexus") "plexus-container-default"))
2549 (install-from-pom "pom.xml")))))
2551 (list maven-3.0-model
2553 maven-3.0-settings-builder
2554 maven-3.0-repository-metadata
2556 maven-3.0-model-builder
2557 maven-3.0-aether-provider
2558 java-sonatype-aether-impl
2559 java-sonatype-aether-api
2560 java-sonatype-aether-util
2561 java-plexus-interpolation
2563 java-plexus-classworlds
2564 java-plexus-component-annotations
2565 java-plexus-container-default
2566 java-plexus-sec-dispatcher-1.4
2569 (define-public maven-3.0-compat
2571 (inherit maven-compat)
2572 (version (package-version maven-3.0-pom))
2573 (source (package-source maven-3.0-pom))
2575 `(#:tests? #f ;require an old version of java-easymock
2576 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2578 `(modify-phases ,phases
2579 (add-before 'install 'fix-pom
2581 (substitute* "pom.xml"
2582 (("org.sonatype.sisu") "org.codehaus.plexus")
2583 (("sisu-inject-plexus") "plexus-container-default"))
2585 (delete 'build-tests))))))
2587 (list maven-3.0-model
2588 maven-3.0-model-builder
2590 maven-3.0-settings-builder
2593 maven-3.0-aether-provider
2594 maven-3.0-repository-metadata
2595 java-sonatype-aether-api
2596 java-sonatype-aether-util
2597 java-sonatype-aether-impl
2599 java-plexus-interpolation
2600 java-eclipse-sisu-plexus
2601 java-plexus-component-annotations
2602 java-plexus-container-default
2603 maven-wagon-provider-api
2606 (define-public maven-shared-utils-3.0
2608 (inherit maven-shared-utils)
2612 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2613 "maven-shared-utils-" version "-source-release.zip"))
2616 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2618 (modify-inputs (package-propagated-inputs maven-shared-utils)
2619 (prepend maven-3.0-core maven-components-parent-pom-21)))))
2621 (define-public maven-shared-utils-3.1
2623 (inherit maven-shared-utils)
2627 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2628 "maven-shared-utils-" version "-source-release.zip"))
2631 "0vfaas4g09ch0agrd1dcxcmhdd3w971ssvfr9mx9gi2lp5nv8w66"))))))
2633 (define-public maven-shared-io
2635 (name "maven-shared-io")
2639 (uri (string-append "mirror://apache/maven/shared/"
2640 "maven-shared-io-" version
2641 "-source-release.zip"))
2644 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2645 (build-system ant-build-system)
2647 `(#:jar-name "maven-shared-io.jar"
2648 #:source-dir "src/main/java"
2649 #:test-dir "src/test"
2651 (modify-phases %standard-phases
2652 (add-before 'build 'copy-resources
2654 (copy-recursively "src/main/resources" "build/classes/")
2655 (copy-recursively "src/test/resources" "build/test-classes/")
2658 (install-from-pom "pom.xml")))))
2660 (list maven-3.0-artifact
2662 maven-3.0-plugin-api
2664 maven-wagon-provider-api
2666 maven-components-parent-pom-22))
2668 (list unzip java-junit java-easymock))
2669 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2670 (synopsis "Tree-based API for resolution of Maven project dependencies")
2671 (description "This package provides a tree-based API for resolution of
2672 Maven project dependencies.")
2673 (license license:asl2.0)))
2675 (define-public maven-file-management
2677 (name "maven-file-management")
2681 (uri (string-append "mirror://apache/maven/shared/"
2682 "file-management-" version
2683 "-source-release.zip"))
2686 "0wisz6sm67axrwvx8a75mb9s03h7kzkzfw8j3aaa4sx4k9ph58da"))))
2687 (build-system ant-build-system)
2689 `(#:jar-name "maven-file-management.jar"
2690 #:source-dir "src/main/java"
2692 (modify-phases %standard-phases
2693 (add-before 'build 'copy-resources
2695 (copy-recursively "src/main/resources" "build/classes/")
2697 (add-before 'build 'generate-models
2698 (lambda* (#:key inputs #:allow-other-keys)
2699 (define (modello-single-mode file version mode)
2701 "org.codehaus.modello.ModelloCli"
2702 file mode "src/main/java" version
2704 (let ((file "src/main/mdo/fileset.mdo"))
2705 (modello-single-mode file "1.1.0" "java")
2706 (modello-single-mode file "1.1.0" "xpp3-reader")
2707 (modello-single-mode file "1.1.0" "xpp3-writer"))
2710 (install-from-pom "pom.xml")))))
2712 (list maven-3.0-plugin-api maven-shared-io maven-shared-utils
2713 java-plexus-utils maven-components-parent-pom-22))
2715 `(("java-modello-core" ,java-modello-core)
2717 ("java-modellop-plugins-java" ,java-modello-plugins-java)
2718 ("java-modellop-plugins-xpp3" ,java-modello-plugins-xpp3)
2720 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2721 (synopsis "Tree-based API for resolution of Maven project dependencies")
2722 (description "This package provides a tree-based API for resolution of
2723 Maven project dependencies.")
2724 (license license:asl2.0)))
2726 (define-public maven-archiver
2728 (name "maven-archiver")
2732 (uri (string-append "mirror://apache/maven/shared/"
2733 "maven-archiver-" version
2734 "-source-release.zip"))
2737 "1204xkqj259brpk3yscprml0lbfbyn1vn5nrgqjk44z5vx127lbw"))))
2738 (build-system ant-build-system)
2740 `(#:jar-name "maven-archiver.jar"
2741 #:source-dir "src/main/java"
2743 (modify-phases %standard-phases
2745 (install-from-pom "pom.xml")))))
2747 `(("java-commons-io" ,java-commons-io)
2748 ("maven-artifact" ,maven-3.0-artifact)
2749 ("maven-core" ,maven-3.0-core)
2750 ("maven-model" ,maven-3.0-model)
2751 ("maven-shared-utils" ,maven-shared-utils)
2752 ("java-plexus-archiver" ,java-plexus-archiver)
2753 ("java-plexus-interpolation" ,java-plexus-interpolation)
2754 ("java-plexus-utils" ,java-plexus-utils)
2755 ("maen-parent-pom" ,maven-parent-pom-33)))
2757 (list java-junit java-assertj unzip))
2758 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2759 (synopsis "Tree-based API for resolution of Maven project dependencies")
2760 (description "This package provides a tree-based API for resolution of
2761 Maven project dependencies.")
2762 (license license:asl2.0)))
2764 (define-public maven-dependency-tree
2766 (name "maven-dependency-tree")
2770 (uri (string-append "mirror://apache/maven/shared/"
2771 "maven-dependency-tree-" version
2772 "-source-release.zip"))
2775 "1vhcd3lmbyy8q61c37sqgbllqj4ypkxm344l6pb05mkchlyk5dy5"))))
2776 (build-system ant-build-system)
2778 `(#:jar-name "maven-dependency-tree.jar"
2779 #:source-dir "src/main/java"
2780 #:tests? #f; no tests
2782 (modify-phases %standard-phases
2784 (install-from-pom "pom.xml")))))
2786 (list maven-3.0-core java-plexus-component-annotations
2787 maven-parent-pom-34))
2789 (list java-sonatype-aether-api-1.13 java-sonatype-aether-util-1.13
2790 java-eclipse-aether-api java-eclipse-aether-util))
2792 (list unzip java-junit))
2793 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2794 (synopsis "Tree-based API for resolution of Maven project dependencies")
2795 (description "This package provides a tree-based API for resolution of
2796 Maven project dependencies.")
2797 (license license:asl2.0)))
2799 (define-public maven-common-artifact-filters
2801 (name "maven-common-artifact-filters")
2805 (uri (string-append "mirror://apache/maven/shared/"
2806 "maven-common-artifact-filters-" version
2807 "-source-release.zip"))
2810 "1mr92s4zz6gf028wiskjg8rd1znxzdnmskg42ac55ifg9v1p1884"))))
2811 (build-system ant-build-system)
2813 `(#:jar-name "maven-common-artifact-filters.jar"
2814 #:source-dir "src/main/java"
2815 #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
2817 (modify-phases %standard-phases
2818 (add-before 'build 'fix-aether
2820 (substitute* "pom.xml"
2821 (("eclipse.aether") "sonatype.aether"))
2822 (substitute* "src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java"
2823 (("eclipse") "sonatype"))))
2825 (install-from-pom "pom.xml")))))
2827 (list maven-3.0-artifact
2830 maven-3.0-plugin-api
2833 java-eclipse-sisu-plexus
2834 java-sonatype-aether-api
2835 java-sonatype-aether-util))
2837 (list maven-resolver-api maven-resolver-util))
2840 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2841 (synopsis "Tree-based API for resolution of Maven project dependencies")
2842 (description "This package provides a tree-based API for resolution of
2843 Maven project dependencies.")
2844 (license license:asl2.0)))
2846 (define-public maven-common-artifact-filters-3.1.0
2848 (inherit maven-common-artifact-filters)
2852 (uri (string-append "mirror://apache/maven/shared/"
2853 "maven-common-artifact-filters-" version
2854 "-source-release.zip"))
2857 "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
2859 (substitute-keyword-arguments (package-arguments maven-common-artifact-filters)
2861 `(modify-phases ,phases
2862 (delete 'fix-aether)
2863 (add-before 'build 'remove-sisu
2865 (substitute* "pom.xml"
2866 (("sisu-inject-plexus") "maven-plugin-api")
2867 (("org.sonatype.sisu") "org.apache.maven"))))))))))
2869 (define-public maven-enforcer-api
2871 (name "maven-enforcer-api")
2875 (uri (string-append "mirror://apache/maven/enforcer/"
2876 "enforcer-" version "-source-release.zip"))
2879 "1479yp58jv788xc1jc2sbdxpajlbvwlk60639vd2h4s8r6x7naqh"))))
2880 (build-system ant-build-system)
2882 `(#:jar-name "maven-enforcer-api.jar"
2883 #:source-dir "enforcer-api/src/main/java"
2884 #:tests? #f; no tests
2886 (modify-phases %standard-phases
2888 (install-from-pom "enforcer-api/pom.xml")))))
2890 (list maven-plugin-api java-plexus-container-default java-jsr305
2891 maven-enforcer-parent-pom))
2894 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2895 (synopsis "Tree-based API for resolution of Maven project dependencies")
2896 (description "This package provides a tree-based API for resolution of
2897 Maven project dependencies.")
2898 (license license:asl2.0)))
2900 (define maven-enforcer-parent-pom
2902 (inherit maven-enforcer-api)
2903 (name "maven-enforcer-parent-pom")
2907 (modify-phases %standard-phases
2910 (add-before 'install 'fix-pom-versions
2912 (substitute* "pom.xml"
2913 (("<maven.version>.*</maven.version>")
2914 ,(string-append "<maven.version>" (package-version maven)
2915 "</maven.version>"))
2916 (("2.11.0") ,(package-version java-commons-io))
2917 (("3.12.0") ,(package-version java-commons-lang3))
2918 (("1.6.1") ,(package-version maven-resolver-util))
2919 (("1.15") ,(package-version java-commons-codec)))))
2921 (install-pom-file "pom.xml")))))
2923 `(("maven-parent-pom" ,maven-parent-pom-30)))))
2925 (define-public maven-enforcer-rules
2927 (inherit maven-enforcer-api)
2928 (name "maven-enforcer-rules")
2930 `(#:tests? #f; requires maven-plugin-testing-harness
2931 #:jar-name "maven-enforcer-rules.jar"
2932 #:source-dir "enforcer-rules/src/main/java"
2933 #:test-dir "enforcer-rules/src/test"
2935 (modify-phases %standard-phases
2937 (install-from-pom "enforcer-rules/pom.xml")))))
2939 (list maven-artifact
2942 maven-common-artifact-filters
2948 maven-dependency-tree
2950 maven-enforcer-parent-pom))))
2952 (define-public maven-enforcer-plugin
2954 (inherit maven-enforcer-api)
2955 (name "maven-enforcer-plugin")
2958 #:jar-name "maven-enforcer-plugin.jar"
2959 #:source-dir "maven-enforcer-plugin/src/main/java"
2961 (modify-phases %standard-phases
2962 (add-before 'build 'generate-plugin.xml
2963 (generate-plugin.xml "maven-enforcer-plugin/pom.xml"
2965 "maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/"
2967 (list "DisplayInfoMojo.java")
2968 (list "EnforceMojo.java"))))
2970 (install-from-pom "maven-enforcer-plugin/pom.xml")))))
2972 (list maven-artifact
2977 maven-enforcer-rules
2978 maven-plugin-annotations
2979 maven-enforcer-parent-pom))))
2981 (define-public maven-artifact-transfer
2983 (name "maven-artifact-transfer")
2987 (uri (string-append "mirror://apache/maven/shared/"
2988 "maven-artifact-transfer-" version
2989 "-source-release.zip"))
2992 "0xl7lkksljacrhmvwf924zb6h0h5zw9494jaz9cz4hll0lrhlpz6"))))
2993 (build-system ant-build-system)
2995 `(#:tests? #f; require mockito 2
2996 #:jar-name "maven-artifact-transfer.jar"
2997 #:source-dir "src/main/java"
2999 (modify-phases %standard-phases
3000 (add-after 'build 'generate-metadata
3002 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3003 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3004 "--source" "src/main/java"
3005 "--output" "build/classes/META-INF/plexus/components.xml"
3006 "--classes" "build/classes"
3007 "--descriptors" "build/classes/META-INF")
3009 (add-after 'generate-metadata 'rebuild
3011 (invoke "ant" "jar")
3014 (install-from-pom "pom.xml")))))
3016 (list java-commons-codec
3019 maven-common-artifact-filters-3.1.0
3020 java-plexus-component-annotations
3023 java-plexus-classworlds
3024 java-sonatype-aether-api
3025 java-eclipse-aether-api
3026 java-eclipse-aether-util
3027 java-eclipse-aether-impl))
3029 (list unzip java-plexus-component-metadata))
3030 (home-page "https://maven.apache.org/shared/maven-artifact-transfer")
3031 (synopsis "API to install, deploy and resolve artifacts in Maven")
3032 (description "This package contains an API to install, deploy and resolve
3033 artifacts in Maven 3.")
3034 (license license:asl2.0)))
3036 (define-public maven-install-plugin
3038 (name "maven-install-plugin")
3039 (version "3.0.0-M1")
3042 (uri (string-append "mirror://apache/maven/plugins/"
3043 "maven-install-plugin-" version
3044 "-source-release.zip"))
3047 "1l9iydxririrair0i5sk2iypn9wspzbb666lc0ddg20yyr8w39dm"))))
3048 (build-system ant-build-system)
3050 `(#:tests? #f; require maven-plugin-testing-harness
3051 #:jar-name "maven-install-plugin.jar"
3052 #:source-dir "src/main/java"
3054 (modify-phases %standard-phases
3055 (add-before 'build 'fix-pom
3057 (substitute* "pom.xml"
3058 (("maven-project") "maven-core")
3059 (("maven-artifact-manager") "maven-artifact")
3062 (add-before 'build 'generate-plugin.xml
3063 (generate-plugin.xml "pom.xml"
3065 "src/main/java/org/apache/maven/plugins/install"
3067 (list "AbstractInstallMojo.java" "InstallFileMojo.java")
3068 (list "AbstractInstallMojo.java" "InstallMojo.java"))))
3070 (install-from-pom "pom.xml")))))
3072 `(("maven-artifact" ,maven-artifact)
3073 ("maven-plugin-api" ,maven-plugin-api)
3074 ("maven-compat" ,maven-compat)
3075 ("maven-artifact-transfer" ,maven-artifact-transfer)
3076 ("maven-plugins-pom-23" ,maven-plugins-pom-23)
3077 ("java-plexus-digest" ,java-plexus-digest)))
3079 (list maven-plugin-annotations java-slf4j-api))
3082 (home-page "https://maven.apache.org/plugin/maven-install-plugin")
3083 (synopsis "Maven's install plugin")
3084 (description "The Install Plugin is used during the install phase to add
3085 artifact(s) to the local repository. The Install Plugin uses the information
3086 in the POM (groupId, artifactId, version) to determine the proper location for
3087 the artifact within the local repository.
3089 The local repository is the local cache where all artifacts needed for the
3090 build are stored. By default, it is located within the user's home directory
3091 (@file{~/.m2/repository}) but the location can be configured in
3092 @file{~/.m2/settings.xml} using the @code{<localRepository>} element.")
3093 (license license:asl2.0)))
3095 (define-public maven-filtering
3097 (name "maven-filtering")
3101 (uri (string-append "https://archive.apache.org/dist/maven/"
3102 "shared/maven-filtering-" version
3103 "-source-release.zip"))
3106 "09wrdhchnszd2l6h4z30ra0bv1a19qyjgac9z8zf1pn0m4nw05yz"))))
3107 (build-system ant-build-system)
3109 `(#:jar-name "maven-filtering.jar"
3110 #:source-dir "src/main/java"
3111 #:test-dir "src/test"
3112 ;; this test comes from plexus-build-api, not this package
3113 #:test-exclude (list "**/IncrementalResourceFilteringTest.java"
3114 "**/Abstract*.java")
3116 (modify-phases %standard-phases
3117 (add-after 'build 'generate-metadata
3119 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3120 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3121 "--source" "src/main/java"
3122 "--output" "build/classes/META-INF/plexus/components.xml"
3123 "--classes" "build/classes"
3124 "--descriptors" "build/classes/META-INF")
3126 (add-after 'generate-metadata 'rebuild
3128 (invoke "ant" "jar")
3130 (add-before 'check 'decompress-tests
3131 (lambda* (#:key inputs #:allow-other-keys)
3132 (let* ((build-api-source (assoc-ref inputs "java-plexus-build-api-origin"))
3133 (classes (string-append build-api-source "/src/test/java")))
3134 (copy-recursively classes "src/test/"))
3136 (add-before 'check 'fix-directory
3138 (substitute* (find-files "src/test" ".*.java$")
3139 (("target/test-classes/") "build/test-classes/"))))
3140 (add-before 'check 'copy-test-resources
3142 (copy-recursively "src/test/resources" "build/test-classes/")
3145 (install-from-pom "pom.xml")))))
3147 (list maven-3.0-core
3149 java-plexus-utils-3.2.1
3150 java-plexus-interpolation
3151 java-plexus-build-api
3152 maven-parent-pom-30))
3157 ("java-assertj" ,java-assertj)
3158 ("java-junit" ,java-junit)
3159 ("java-mockito" ,java-mockito-1)
3160 ("java-objenesis" ,java-objenesis)
3161 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
3162 ("java-plexus-build-api-origin" ,(package-source java-plexus-build-api))))
3163 (home-page "https://maven.apache.org/shared/maven-filtering")
3164 (synopsis "Shared component for all plugins that needs to filter resources")
3165 (description "This component provides an API to filter resources in Maven
3167 (license license:asl2.0)))
3169 (define-public maven-resources-plugin
3171 (name "maven-resources-plugin")
3176 (url "https://github.com/apache/maven-resources-plugin")
3177 (commit (string-append "maven-resources-plugin-" version))))
3178 (file-name (git-file-name name version))
3181 "090k5j2y7ak54czfjjg3v7pdmdlgd96fbs91d1fd3vslm9zzndg8"))))
3182 (build-system ant-build-system)
3184 `(#:jar-name "maven-resources-plugin.jar"
3185 #:source-dir "src/main/java"
3186 #:test-dir "src/test"
3187 #:tests? #f; test depends on maven-plugin-test-harness
3189 (modify-phases %standard-phases
3190 (add-before 'build 'generate-plugin.xml
3191 (generate-plugin.xml "pom.xml" "resources"
3192 "src/main/java/org/apache/maven/plugins/resources"
3194 (list "ResourcesMojo.java" "CopyResourcesMojo.java")
3195 (list "ResourcesMojo.java")
3196 (list "ResourcesMojo.java" "TestResourcesMojo.java"))))
3198 (install-from-pom "pom.xml")))))
3200 (list maven-plugin-api
3204 java-plexus-interpolation
3205 maven-parent-pom-31))
3207 (list maven-plugin-annotations java-commons-io))
3209 (list java-plexus-component-metadata))
3210 (home-page "https://maven.apache.org/plugins/maven-resources-plugin")
3211 (synopsis "Maven plugin to collect and install resources")
3212 (description "The Resources Plugin handles the copying of project resources
3213 to the output directory. There are two different kinds of resources: main
3214 resources and test resources. The difference is that the main resources are
3215 the resources associated to the main source code while the test resources are
3216 associated to the test source code.
3218 Thus, this allows the separation of resources for the main source code and its
3220 (license license:asl2.0)))
3222 (define-public maven-shared-incremental
3224 (name "maven-shared-incremental")
3228 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
3229 "maven-shared-incremental-" version
3230 "-source-release.zip"))
3233 "03n4nfswyg9ahkz2zx4skcr3ghs01zh95g9js51hc75mfqx9b976"))))
3234 (build-system ant-build-system)
3236 `(#:jar-name "shared-incremental.java"
3237 #:source-dir "src/main/java"
3238 #:test-dir "src/test"
3240 (modify-phases %standard-phases
3241 (add-before 'build 'change-parent
3243 (substitute* "pom.xml"
3246 (add-before 'build 'fix-pom
3248 (substitute* "pom.xml"
3249 (("plexus-component-api") "plexus-component-annotations"))
3251 (add-after 'build 'generate-metadata
3253 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3254 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3255 "--source" "src/main/java"
3256 "--output" "build/classes/META-INF/plexus/components.xml"
3257 "--classes" "build/classes"
3258 "--descriptors" "build/classes/META-INF")
3261 (install-from-pom "pom.xml")))))
3263 (list maven-plugin-api maven-core maven-shared-utils
3264 java-plexus-component-annotations maven-parent-pom-30))
3266 (list unzip java-plexus-component-metadata))
3267 (home-page "https://maven.apache.org/shared/maven-shared-incremental")
3268 (synopsis "Maven Incremental Build support utilities")
3269 (description "This package contains various utility classes and plexus
3270 components for supporting incremental build functionality in maven plugins.")
3271 (license license:asl2.0)))
3273 (define-public maven-compiler-plugin
3275 (name "maven-compiler-plugin")
3280 (url "https://github.com/apache/maven-compiler-plugin")
3281 (commit (string-append "maven-compiler-plugin-" version))))
3282 (file-name (git-file-name name version))
3285 "0jkbq02vykd09ws8k9bzqxv6fjrpmir8gcxydbmj05kkhl242bma"))))
3286 (build-system ant-build-system)
3288 `(#:jar-name "maven-compiler-plugin.jar"
3289 #:source-dir "src/main/java"
3290 #:test-dir "src/test"
3291 #:tests? #f; test depends on maven-plugin-test-harness
3293 (modify-phases %standard-phases
3294 (add-before 'build 'generate-plugin.xml
3295 (generate-plugin.xml "pom.xml"
3297 "src/main/java/org/apache/maven/plugin/compiler"
3299 (list "AbstractCompilerMojo.java" "CompilerMojo.java")
3300 (list "AbstractCompilerMojo.java" "TestCompilerMojo.java"))))
3301 (add-after 'generate-plugin.xml 'fix-plugin.xml
3303 (substitute* "build/classes/META-INF/maven/plugin.xml"
3304 ;; These are defined in AbstractCompilerMojo.java, but not
3305 ;; parsed correctly in the previous phase
3306 (("DEFAULT_TARGET") "1.6")
3307 (("DEFAULT_SOURCE") "1.6"))
3310 (install-from-pom "pom.xml")))))
3312 (list maven-plugin-api
3316 maven-shared-incremental
3318 java-plexus-compiler-api
3319 java-plexus-compiler-manager
3320 java-plexus-compiler-javac
3321 maven-parent-pom-33))
3323 (list maven-plugin-annotations java-commons-io))
3324 (home-page "https://maven.apache.org/plugins/maven-compiler-plugin")
3325 (synopsis "Compiler plugin for Maven")
3326 (description "The Compiler Plugin is used to compile the sources of your
3327 project. Since 3.0, the default compiler is @code{javax.tools.JavaCompiler}
3328 (if you are using java 1.6) and is used to compile Java sources. If you want
3329 to force the plugin using javac, you must configure the plugin option
3330 @code{forceJavacCompilerUse}.
3332 Also note that at present the default source setting is 1.6 and the default
3333 target setting is 1.6, independently of the JDK you run Maven with. You are
3334 highly encouraged to change these defaults by setting source and target as
3335 described in Setting the -source and -target of the Java Compiler.
3337 Other compilers than javac can be used and work has already started on
3338 AspectJ, .NET, and C#.")
3339 (license license:asl2.0)))
3341 (define-public java-surefire-logger-api
3343 (name "java-surefire-logger-api")
3344 (version "3.0.0-M4")
3347 (uri (string-append "mirror://apache/maven/surefire/"
3348 "surefire-" version "-source-release.zip"))
3351 "1s6d4pzk3bjm9l38mj9sfgbgmk145rppdj1dmqwc4d5105mr9q9w"))))
3352 (build-system ant-build-system)
3354 `(#:jar-name "java-surefire-logger-api.jar"
3355 #:source-dir "surefire-logger-api/src/main/java"
3356 #:tests? #f; require mockito 2
3358 (modify-phases %standard-phases
3360 (install-from-pom "surefire-logger-api/pom.xml")))))
3362 (list java-surefire-parent-pom))
3365 (home-page "https://maven.apache.org/surefire/surefire-logger-api")
3366 (synopsis "Interfaces and Utilities related only to internal SureFire Logger API")
3367 (description "This package contains interfaces and utilities that are
3368 internal to the SureFire Logger API. It is designed to have no dependency.")
3369 (license license:asl2.0)))
3371 (define-public java-surefire-parent-pom
3373 (inherit java-surefire-logger-api)
3374 (name "java-surefire-parent-pom")
3378 (modify-phases %standard-phases
3381 (add-before 'install 'fix-pom-dependency-versions
3383 (substitute* "pom.xml"
3384 (("1.11") ,(package-version java-commons-compress))
3385 (("1.13") ,(package-version java-commons-codec)))
3386 (substitute* "pom.xml"
3387 (("commonsLang3Version>.*")
3389 "commonsLang3Version>"
3390 ,(package-version java-commons-lang3)
3391 "</commonsLang3Version>\n"))
3392 (("commonsCompress>.*")
3395 ,(package-version java-commons-compress)
3396 "</commonsCompress>\n"))
3397 (("commonsIoVersion>.*")
3400 ,(package-version java-commons-io)
3401 "</commonsIoVersion>\n"))
3402 (("0.11.0") ,(package-version maven-artifact-transfer))
3403 (("1.0.3") ,(package-version java-plexus-java)))
3405 (add-after 'install 'install-providers
3406 (install-pom-file "surefire-providers/pom.xml"))
3408 (install-pom-file "pom.xml")))))
3410 (list maven-parent-pom-33))))
3412 (define-public java-surefire-api
3414 (inherit java-surefire-logger-api)
3415 (name "java-surefire-api")
3418 #:jar-name "java-surefire-api.jar"
3419 #:source-dir "surefire-api/src/main/java"
3421 (modify-phases %standard-phases
3422 (add-before 'build 'copy-resources
3424 (mkdir-p "build/classes")
3425 (copy-recursively "surefire-api/src/main/resources" "build/classes")
3427 (add-before 'build 'prepare-shade
3428 (lambda* (#:key inputs #:allow-other-keys)
3429 (mkdir-p "build/classes")
3430 (with-directory-excursion "build/classes"
3435 (invoke "jar" "xf" jar-file)
3436 (delete-file-recursively "META-INF"))
3437 (find-files (assoc-ref inputs input) ".*.jar$")))
3438 '("maven-shared-utils" "java-commons-codec")))
3440 (add-after 'build 'shade
3441 (lambda* (#:key inputs #:allow-other-keys)
3443 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3444 (injar "java-surefire-api.jar")
3445 (outjar "java-surefire-api-shaded.jar"))
3446 (with-directory-excursion "build/jar"
3447 (with-output-to-file "rules"
3449 (format #t (string-append
3451 "org.apache.maven.shared.utils.** "
3452 "org.apache.maven.surefire.shade.api."
3453 "org.apache.maven.shared.utils.@1~%"))
3454 (format #t (string-append
3456 "org.apache.commons.codec.** "
3457 "org.apache.maven.surefire.shade.api."
3458 "org.apache.commons.codec.@1~%"))))
3459 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3461 (rename-file outjar injar)))
3464 (install-from-pom "surefire-api/pom.xml")))))
3466 (list java-surefire-logger-api java-commons-codec
3467 java-surefire-parent-pom maven-shared-utils-3.1))
3471 (list unzip java-jarjar))
3472 (synopsis "Maven SureFire API")
3473 (description "This package contains the API to use Maven SureFire.")))
3475 (define-public java-surefire-booter
3477 (inherit java-surefire-logger-api)
3478 (name "java-surefire-booter")
3480 `(#:tests? #f; require mockito 2
3481 #:jar-name "java-surefire-booter.jar"
3482 #:source-dir "surefire-booter/src/main/java"
3484 (modify-phases %standard-phases
3485 (add-before 'build 'fix-/bin/sh
3487 (substitute* "surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java"
3488 (("/bin/sh") (which "sh")))
3491 (install-from-pom "surefire-booter/pom.xml")))))
3493 (list java-surefire-api java-commons-lang3 java-commons-io
3494 java-surefire-parent-pom))
3497 (synopsis "API and Facilities used by forked tests running in JVM sub-process")
3498 (description "SureFire runs tests inside a forked JVM subprocess. This
3499 package contains an API and facilities used inside that forked JVM.")))
3501 (define-public java-surefire-extensions-api
3503 (inherit java-surefire-logger-api)
3504 (name "java-surefire-extensions-api")
3506 `(#:tests? #f; requires mockito 2
3507 #:jar-name "java-surefire-extensions-api.jar"
3508 #:source-dir "surefire-extensions-api/src/main/java"
3510 (modify-phases %standard-phases
3512 (install-from-pom "surefire-extensions-api/pom.xml")))))
3514 (list java-surefire-api java-surefire-parent-pom))
3516 (list java-plexus-component-annotations))
3517 (synopsis "Extension API for Maven SureFire")
3518 (description "Surefire is a test framework project. This is the aggregator
3519 POM in Apache Maven Surefire project.")))
3521 (define-public java-surefire-common-java5
3523 (inherit java-surefire-logger-api)
3524 (name "java-surefire-common-java5")
3526 `(#:jar-name "java-surefire-common-java5.jar"
3527 #:source-dir "surefire-providers/common-java5/src/main/java"
3528 #:test-dir "surefire-providers/common-java5/src/test"
3529 #:test-exclude (list
3531 "**/PojoStackTraceWriterTest.java"
3533 "**/SmartStackTraceParserTest.java")
3535 (modify-phases %standard-phases
3536 (add-before 'build 'prepare-shade
3537 (lambda* (#:key inputs #:allow-other-keys)
3538 (mkdir-p "build/classes")
3539 (with-directory-excursion "build/classes"
3542 (invoke "jar" "xf" jar-file)
3543 (delete-file-recursively "META-INF"))
3544 (find-files (assoc-ref inputs "maven-shared-utils") ".*.jar$")))
3546 (add-after 'build 'shade
3547 (lambda* (#:key inputs #:allow-other-keys)
3549 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3550 (injar "java-surefire-common-java5.jar")
3551 (outjar "java-surefire-common-java5-shaded.jar"))
3552 (with-directory-excursion "build/jar"
3553 (with-output-to-file "rules"
3555 (format #t (string-append
3557 "org.apache.maven.shared.utils.** "
3558 "org.apache.maven.surefire.shade.common."
3559 "org.apache.maven.shared.utils.@1~%"))))
3560 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3562 (rename-file outjar injar)))
3565 (install-from-pom "surefire-providers/common-java5/pom.xml")))))
3567 (list maven-shared-utils-3.1 java-surefire-api
3568 java-surefire-parent-pom))
3570 (list unzip java-jarjar java-junit java-fest-assert))
3571 (synopsis "Common java5 facilities for Maven SureFire")
3572 (description "This package contains shared Java 5 code for all providers.")))
3574 (define-public java-surefire-common-junit3
3576 (inherit java-surefire-logger-api)
3577 (name "java-surefire-common-junit3")
3579 `(#:jar-name "java-surefire-common-junit3.jar"
3580 #:source-dir "surefire-providers/common-junit3/src/main/java"
3581 #:test-dir "surefire-providers/common-junit3/src/test"
3583 (modify-phases %standard-phases
3585 (install-from-pom "surefire-providers/common-junit3/pom.xml")))))
3587 (list java-junit java-surefire-api java-surefire-parent-pom))
3589 (list unzip java-junit java-fest-assert))
3590 (synopsis "Shared JUnit3 provider code for Maven SureFire")
3591 (description "This package contains shared code for all JUnit providers.")))
3593 (define-public java-surefire-common-junit4
3595 (inherit java-surefire-logger-api)
3596 (name "java-surefire-common-junit4")
3598 `(#:jar-name "java-surefire-common-junit4.jar"
3599 #:source-dir "surefire-providers/common-junit4/src/main/java"
3600 #:tests? #f; tests require junit 4.0
3602 (modify-phases %standard-phases
3604 (install-from-pom "surefire-providers/common-junit4/pom.xml")))))
3608 java-surefire-common-java5
3609 java-surefire-common-junit3
3610 maven-shared-utils-3.1
3611 java-surefire-parent-pom))
3612 (synopsis "Shared JUnit4 provider code for Maven SureFire")
3613 (description "This package contains shared code for all JUnit providers,
3614 starting from JUnit 4.")))
3616 (define-public java-surefire-junit4
3618 (inherit java-surefire-logger-api)
3619 (name "java-surefire-junit4")
3622 #:jar-name "java-surefire-junit4.jar"
3623 #:source-dir "surefire-providers/surefire-junit4/src/main/java"
3624 #:test-dir "surefire-providers/surefire-junit4/src/test"
3625 #:modules ((guix build ant-build-system)
3627 (guix build java-utils)
3630 (modify-phases %standard-phases
3631 (add-before 'install 'regenerate-own-pom
3632 ;; Surefire struggles resolving artifacts because of this pom
3633 ;; file, resulting in a NullPointerException when collecting
3634 ;; Artifacts (and a "Failure detected." message from
3635 ;; DefaultArtifactResolver). Replace the pom file with a much
3636 ;; simpler one. Everything is shaded anyway (as used to be the
3637 ;; case in 2.22), so there will not be missing dependencies.
3639 "surefire-providers/surefire-junit4/pom.xml"
3640 "org.apache.maven.surefire" "surefire-junit4"
3641 ,(package-version java-surefire-common-java5)
3642 #:name "Surefire JUnit4"))
3643 (add-before 'build 'copy-resources
3645 (mkdir-p "build/classes")
3646 (copy-recursively "surefire-providers/surefire-junit4/src/main/resources"
3649 (add-before 'build 'prepare-shade
3650 (lambda* (#:key inputs #:allow-other-keys)
3651 (mkdir-p "build/classes")
3652 (with-directory-excursion "build/classes"
3657 (invoke "jar" "xf" jar-file)
3658 (delete-file-recursively "META-INF"))
3659 (find-files (assoc-ref inputs input) ".*.jar$")))
3660 '("maven-shared-utils" "java-surefire-common-java5"
3661 "java-surefire-common-junit3" "java-surefire-common-junit4"
3662 "java-surefire-api")))
3664 (add-after 'build 'shade
3665 (lambda* (#:key inputs #:allow-other-keys)
3667 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3668 (injar "java-surefire-junit4.jar")
3669 (outjar "java-surefire-junit4-shaded.jar"))
3670 (with-directory-excursion "build/jar"
3671 (with-output-to-file "rules"
3673 (format #t (string-append
3675 "org.apache.maven.shared.utils.** "
3676 "org.apache.maven.surefire.shade."
3677 "org.apache.maven.shared.utils.@1~%"))))
3678 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3680 (rename-file outjar injar)))
3683 (install-from-pom "surefire-providers/surefire-junit4/pom.xml")))))
3685 (list java-junit java-surefire-parent-pom))
3687 (list java-surefire-common-junit4 java-surefire-common-junit3
3688 java-surefire-common-java5 java-surefire-api))
3690 (list java-jarjar unzip java-junit java-hamcrest-all
3692 (synopsis "SureFire JUnit 4.0+ runner")
3693 (description "This package contains the runner for tests run on a forked
3694 JVM, using JUnit 4.0 or later.")))
3696 (define-public maven-surefire-common
3698 (inherit java-surefire-logger-api)
3699 (name "maven-surefire-common")
3701 `(#:tests? #f; require mockito 2
3702 #:jar-name "maven-surefire-common.jar"
3703 #:source-dir "maven-surefire-common/src/main/java"
3705 (modify-phases %standard-phases
3706 (add-before 'build 'prepare-shade
3707 (lambda* (#:key inputs #:allow-other-keys)
3708 (mkdir-p "build/classes")
3709 (with-directory-excursion "build/classes"
3714 (invoke "jar" "xf" jar-file)
3715 (delete-file-recursively "META-INF"))
3716 (find-files (assoc-ref inputs input) ".*.jar$")))
3717 '("maven-shared-utils" "java-commons-io" "java-commons-lang3"
3718 "java-commons-compress" "maven-common-artifact-filters")))
3720 (add-after 'build 'shade
3721 (lambda* (#:key inputs #:allow-other-keys)
3723 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3724 (injar "maven-surefire-common.jar")
3725 (outjar "maven-surefire-common-shaded.jar"))
3726 (with-directory-excursion "build/jar"
3727 (with-output-to-file "rules"
3729 (format #t (string-append
3731 "org.apache.maven.shared.utils.** "
3732 "org.apache.maven.surefire.shade.common."
3733 "org.apache.maven.shared.utils.@1~%"))
3734 (format #t (string-append
3736 "org.apache.commons.io.** "
3737 "org.apache.maven.surefire.shade.common."
3738 "org.apache.commons.io.@1~%"))
3739 (format #t (string-append
3741 "org.apache.commons.lang3.** "
3742 "org.apache.maven.surefire.shade.common."
3743 "org.apache.commons.lang3.@1~%"))
3744 (format #t (string-append
3746 "org.apache.commons.compress.** "
3747 "org.apache.maven.surefire.shade.common."
3748 "org.apache.commons.compress.@1~%"))))
3749 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3751 (rename-file outjar injar)))
3753 (add-before 'install 'fix-pom
3755 (substitute* "maven-surefire-common/pom.xml"
3756 (("maven-toolchain") "maven-core"))
3759 (install-from-pom "maven-surefire-common/pom.xml")))))
3761 (list java-surefire-api
3762 java-surefire-extensions-api
3763 java-surefire-booter
3765 maven-plugin-annotations
3766 maven-common-artifact-filters
3767 maven-artifact-transfer
3772 java-commons-compress
3773 maven-shared-utils-3.1
3774 java-surefire-parent-pom))
3778 (list unzip java-jarjar))
3779 (synopsis "API used in Surefire and Failsafe MOJO")
3780 (description "This package contains an API used in SureFire and Failsafe
3783 (define-public maven-surefire-plugin
3785 (inherit java-surefire-logger-api)
3786 (name "maven-surefire-plugin")
3788 `(#:jar-name "maven-surefire-plugin.jar"
3789 #:source-dir "maven-surefire-plugin/src/main/java"
3790 #:tests? #f; test depends on maven-plugin-test-harness
3792 (modify-phases %standard-phases
3793 (add-before 'build 'generate-plugin.xml
3794 (generate-plugin.xml "maven-surefire-plugin/pom.xml"
3799 "maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java"
3800 "maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java"))))
3802 (install-from-pom "maven-surefire-plugin/pom.xml")))))
3804 (list maven-surefire-common maven-core))
3806 (list maven-plugin-annotations unzip))
3807 (synopsis "SureFire Maven plugin that runs tests")
3808 (description "The Surefire Plugin is used during the test phase of the
3809 build lifecycle to execute the unit tests of an application. It generates
3810 reports in two different file formats, plain text and xml.")))
3812 (define-public maven-jar-plugin
3814 (name "maven-jar-plugin")
3819 (url "https://github.com/apache/maven-jar-plugin")
3820 (commit (string-append "maven-jar-plugin-" version))))
3821 (file-name (git-file-name name version))
3824 "04y2rlmcabmc55ljqlkgbb5xx94a59cz1dvrnpfj1vzz024pqkyg"))))
3825 (build-system ant-build-system)
3827 `(#:jar-name "maven-jar-plugin.jar"
3828 #:source-dir "src/main/java"
3829 #:tests? #f; test depends on maven-plugin-test-harness
3831 (modify-phases %standard-phases
3832 (add-before 'build 'generate-plugin.xml
3833 (generate-plugin.xml "pom.xml"
3835 "src/main/java/org/apache/maven/plugins/jar"
3837 (list "AbstractJarMojo.java" "JarMojo.java")
3838 (list "AbstractJarMojo.java" "TestJarMojo.java"))))
3840 (install-from-pom "pom.xml")))))
3842 (list maven-archiver
3845 maven-3.0-plugin-api
3846 maven-file-management
3848 java-plexus-archiver
3851 (list maven-plugin-annotations))
3852 (home-page "https://maven.apache.org/plugins/maven-jar-plugin")
3853 (synopsis "Jar builder plugin for Maven")
3854 (description "This plugin provides the capability to build jars. If you
3855 would like to sign jars please use the Maven Jarsigner Plugin instead.")
3856 (license license:asl2.0)))