1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018-2021 Julien Lepiller <julien@lepiller.eu>
3 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
5 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
7 ;;; This file is part of GNU Guix.
9 ;;; GNU Guix is free software; you can redistribute it and/or modify it
10 ;;; under the terms of the GNU General Public License as published by
11 ;;; the Free Software Foundation; either version 3 of the License, or (at
12 ;;; your option) any later version.
14 ;;; GNU Guix is distributed in the hope that it will be useful, but
15 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;;; GNU General Public License for more details.
19 ;;; You should have received a copy of the GNU General Public License
20 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 (define-module (gnu packages maven)
23 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix git-download)
27 #:use-module (guix utils)
28 #:use-module (guix build-system ant)
29 #:use-module (gnu packages)
30 #:use-module (gnu packages base)
31 #:use-module (gnu packages compression)
32 #:use-module (gnu packages java)
33 #:use-module (gnu packages maven-parent-pom)
34 #:use-module (gnu packages web)
35 #:use-module (gnu packages xml)
36 #:use-module (ice-9 match))
38 (define-public maven-resolver-api
40 (name "maven-resolver-api")
45 (url "https://github.com/apache/maven-resolver")
46 (commit (string-append "maven-resolver-" version))))
47 (file-name (git-file-name name version))
50 "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 'generate-models
1795 (lambda* (#:key inputs #:allow-other-keys)
1796 (define (modello-single-mode file version mode)
1797 (invoke "java" "org.codehaus.modello.ModelloCli"
1798 file mode "maven-embedder/src/main/java" version
1800 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1801 (modello-single-mode file "1.0.0" "java")
1802 (modello-single-mode file "1.0.0" "xpp3-reader")
1803 (modello-single-mode file "1.0.0" "xpp3-writer"))
1805 (add-before 'check 'fix-test-paths
1807 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1808 (("target/test-classes") "build/test-classes"))
1810 (add-before 'check 'fix-test-compilation
1812 ;; Tests are in the java/ subdir. Other subdirectories contain
1813 ;; additional test plugins, with duplicate classes, so we can't
1814 ;; compile them. Also, they are meant to be built with maven, to
1815 ;; test its build process.
1816 (substitute* "build.xml"
1817 (("srcdir=\"maven-embedder/src/test\"")
1818 "srcdir=\"maven-embedder/src/test/java\""))
1820 (add-before 'check 'disable-failing-test
1822 (delete-file "maven-embedder/src/test/java/org/apache/maven/cli/event/ExecutionEventLoggerTest.java")))
1823 (add-before 'install 'fix-pom
1825 (substitute* "maven-embedder/pom.xml"
1826 (("jsr250-api") "javax.annotation-api"))))
1828 (install-from-pom "maven-embedder/pom.xml")))))
1830 `(("maven-core" ,maven-core)
1831 ("maven-artifact" ,maven-artifact)
1832 ("maven-plugin-api" ,maven-plugin-api)
1833 ("maven-builder-support" ,maven-builder-support)
1834 ("maven-model" ,maven-model)
1835 ("maven-model-builder" ,maven-model-builder)
1836 ("maven-settings" ,maven-settings)
1837 ("maven-settings-builder" ,maven-settings-builder)
1838 ("maven-shared-utils" ,maven-shared-utils)
1839 ("java-plexus-classworlds" ,java-plexus-classworlds)
1840 ("java-plexus-util" ,java-plexus-utils)
1841 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1842 ("java-plexus-cipher" ,java-plexus-cipher)
1843 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1844 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1845 ("maven-resolevr-util" ,maven-resolver-util)
1846 ("maven-resolevr-api" ,maven-resolver-api)
1847 ("java-logback-core" ,java-logback-core)
1848 ("java-logback-classic" ,java-logback-classic)
1849 ("java-commons-cli" ,java-commons-cli)
1850 ("java-commons-io" ,java-commons-io)
1851 ("java-commons-lang3" ,java-commons-lang3)
1852 ("java-guava" ,java-guava)
1853 ("java-guice" ,java-guice)
1854 ("java-javax-inject" ,java-javax-inject)
1855 ("java-slf4j-api" ,java-slf4j-api)
1856 ("java-slf4j-simple" ,java-slf4j-simple)
1857 ("java-jsr250" ,java-jsr250)))
1859 `(("java-asm-8" ,java-asm-8)
1860 ("java-modello-core" ,java-modello-core)
1861 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1862 ("java-plexus-build-api" ,java-plexus-build-api)
1863 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1864 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1865 ("java-cglib" ,java-cglib)
1866 ("java-modello-plugins-java" ,java-modello-plugins-java)
1867 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1868 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1870 ("java-junit" ,java-junit)
1871 ("java-objenesis" ,java-objenesis)
1872 ("java-mockito-1" ,java-mockito-1)
1873 ("java-hamcrest-core" ,java-hamcrest-core)))
1874 (description "Apache Maven is a software project management and comprehension
1875 tool. This package contains a Maven embeddable component, with CLI and
1876 logging support.")))
1878 (define-public maven-compat
1880 (inherit maven-artifact)
1881 (name "maven-compat")
1883 `(#:jar-name "maven-compat.jar"
1884 #:source-dir "src/main/java"
1886 #:test-dir "src/test"
1888 (modify-phases %standard-phases
1889 ;; Tests assume we're in this directory
1890 (add-before 'configure 'chdir
1892 (chdir "maven-compat")
1894 (add-before 'build 'recreate-removed-jar
1896 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1898 (with-directory-excursion "src/test/resources"
1899 (with-output-to-file "artifact-install/artifact-1.0.jar"
1901 (format #t "dummy~%")))
1904 (with-output-to-file file
1906 (format #t "foo~%"))))
1907 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1908 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1909 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1910 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1911 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1912 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1913 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1914 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1915 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1916 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1917 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1918 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1919 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1920 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1921 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1922 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1923 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1924 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1925 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1926 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1927 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1928 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1929 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1930 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1931 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1932 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1933 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1934 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1935 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1936 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1937 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1938 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1939 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1940 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1941 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1942 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1943 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1944 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1945 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1946 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1947 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1948 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1949 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1950 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1951 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1952 (with-directory-excursion "local-repo/snapshot-test/jars"
1955 (with-output-to-file file
1958 (format #t "local"))))
1959 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1960 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1961 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1964 (with-directory-excursion
1965 (string-append "src/test/remote-repo/org/apache/maven/its/"
1967 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1970 (copy-file (string-append letter "-0.1.pom")
1971 (string-append dir "/pom.xml"))
1972 (with-output-to-file (string-append dir "/pom.properties")
1974 (format #t "version=0.1~%")
1975 (format #t "groupId=org.apache.maven.its")
1976 (format #t (string-append "artifactId=" letter))))
1977 (with-output-to-file "META-INF/MANIFEST.MF"
1979 (format #t "Manifest-Version: 1.0~%"))))
1980 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1981 (string-append letter "-0.1.jar") "META-INF")))
1984 (add-before 'build 'generate-models
1985 (lambda* (#:key inputs #:allow-other-keys)
1986 (define (modello-single-mode file version mode)
1987 (invoke "java" "org.codehaus.modello.ModelloCli"
1988 file mode "src/main/java" version
1990 (let ((file "src/main/mdo/profiles.mdo"))
1991 (modello-single-mode file "1.0.0" "java")
1992 (modello-single-mode file "1.0.0" "xpp3-reader")
1993 (modello-single-mode file "1.0.0" "xpp3-writer"))
1994 (let ((file "src/main/mdo/paramdoc.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"))
1999 (add-after 'build 'generate-metadata
2001 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2002 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2003 "--source" "src/main/java"
2004 "--output" "build/classes/META-INF/plexus/components.xml"
2005 "--classes" "build/classes"
2006 "--descriptors" "build/classes/META-INF")
2008 (add-before 'check 'build-tests
2010 (invoke "ant" "compile-tests")
2012 (add-after 'build-tests 'generate-test-metadata
2014 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
2016 ":build/test-classes")
2017 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2018 "--source" "src/test/java"
2019 "--output" "build/test-classes/META-INF/plexus/components.xml"
2020 "--classes" "build/test-classes"
2021 "--descriptors" "build/test-classes/META-INF")
2023 (add-before 'check 'disable-failing-test
2025 (delete-file "src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java")))
2026 (add-after 'generate-metadata 'rebuild
2028 (invoke "ant" "jar")
2031 (install-from-pom "pom.xml")))))
2033 (list maven-artifact
2034 maven-repository-metadata
2035 maven-builder-support
2039 maven-settings-builder
2041 maven-wagon-provider-api
2046 java-plexus-interpolation))
2048 `(("java-modello-core" ,java-modello-core)
2049 ("java-plexus-utils" ,java-plexus-utils)
2050 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
2051 ("java-plexus-classworlds" ,java-plexus-classworlds)
2052 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
2053 ("java-plexus-build-api" ,java-plexus-build-api)
2054 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2055 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
2056 ("java-javax-inject" ,java-javax-inject)
2057 ("java-guice" ,java-guice)
2058 ("java-guava" ,java-guava)
2059 ("java-cglib" ,java-cglib)
2060 ("java-asm" ,java-asm)
2061 ("java-modello-plugins-java" ,java-modello-plugins-java)
2062 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
2063 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
2065 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
2066 ("java-commons-cli" ,java-commons-cli)
2067 ("java-plexus-cli" ,java-plexus-cli)
2068 ("java-jdom2" ,java-jdom2)
2069 ("maven-plugin-api" ,maven-plugin-api)
2070 ("java-qdox" ,java-qdox)
2072 ("java-plexus-cipher" ,java-plexus-cipher)
2073 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2074 ("java-jsr250" ,java-jsr250)
2075 ("java-cdi-api" ,java-cdi-api)
2076 ("java-junit" ,java-junit)
2077 ("maven-resolver-impl" ,maven-resolver-impl)
2078 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
2079 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
2080 ("java-commons-lang3" ,java-commons-lang3)
2081 ("java-aop" ,java-aopalliance)
2082 ("maven-resolver-provider" ,maven-resolver-provider)
2083 ("java-slf4j-api" ,java-slf4j-api)
2084 ("java-slf4j-simple" ,java-slf4j-simple)
2085 ,@(package-inputs java-slf4j-api)))
2086 (description "Apache Maven is a software project management and comprehension
2087 tool. This package contains Maven2 classes maintained as compatibility
2088 layer for plugins that need to keep Maven2 compatibility.")))
2090 (define-public maven
2092 (inherit maven-artifact)
2096 (modify-phases %standard-phases
2098 (lambda* (#:key inputs #:allow-other-keys)
2099 ;; Recreate the configuration for the loader
2100 (with-output-to-file "apache-maven/src/bin/m2.conf"
2102 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
2104 (format #t "set maven.conf default ${maven.home}/conf~%")
2106 (format #t "[plexus.core]~%")
2107 (format #t "load ${maven.conf}/logging~%")
2108 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
2109 ;; Reference every jar so plexus-classworlds can find them.
2111 (lambda (dependency)
2114 (format #t "load ~a~%" file))
2115 (find-files (assoc-ref inputs dependency) ".*.jar$")))
2116 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
2117 "maven-builder-support" "maven-model" "maven-model-builder"
2118 "maven-settings" "maven-settings-builder" "maven-plugin-api"
2119 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
2120 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
2121 "maven-resolver-connector-basic" "maven-resolver-provider"
2122 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
2123 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
2124 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
2125 "maven-wagon-http-shared" "maven-wagon-tck-http"
2126 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
2127 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
2128 "java-javax-inject" "java-plexus-component-annotations"
2129 "java-plexus-utils" "java-plexus-interpolation"
2130 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
2131 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
2132 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
2133 "java-slf4j-simple"))))
2134 (substitute* "apache-maven/src/bin/mvn"
2139 (assoc-ref inputs "java-plexus-classworlds")
2142 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
2146 (lambda* (#:key outputs #:allow-other-keys)
2147 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
2148 (conf (string-append (assoc-ref outputs "out") "/conf/")))
2149 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
2150 (for-each (lambda (file)
2151 (install-file (string-append "apache-maven/src/bin/" file)
2153 (chmod (string-append bin file) #o755))
2154 '("mvn" "mvnDebug" "mvnyjp"))
2155 (install-file "apache-maven/src/bin/m2.conf" bin)
2156 (copy-recursively "apache-maven/src/conf" conf))
2159 (list java-plexus-classworlds
2164 maven-builder-support
2168 maven-settings-builder
2170 maven-repository-metadata
2176 maven-resolver-connector-basic
2177 maven-resolver-provider
2178 maven-resolver-transport-wagon
2179 maven-wagon-provider-api
2182 java-commons-logging-minimal
2183 java-httpcomponents-httpclient
2184 java-httpcomponents-httpcore
2185 maven-wagon-http-shared
2186 maven-wagon-tck-http
2187 java-eclipse-sisu-plexus
2192 java-eclipse-sisu-inject
2194 java-plexus-component-annotations
2196 java-plexus-interpolation
2197 java-plexus-sec-dispatcher
2207 ;; TODO: replace with maven-slf4j-provider
2210 (list coreutils which))
2211 (description "Apache Maven is a software project management and comprehension
2212 tool. Based on the concept of a project object model: builds, dependency
2213 management, documentation creation, site publication, and distribution
2214 publication are all controlled from the @file{pom.xml} declarative file. Maven
2215 can be extended by plugins to utilise a number of other development tools for
2216 reporting or the build process.")))
2218 ;; Many plugins require maven 3.0 as a dependency.
2219 (define maven-3.0-pom
2226 (url "https://github.com/apache/maven")
2227 (commit (string-append "maven-" version))))
2228 (file-name (git-file-name "maven" version))
2231 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2232 (modules '((guix build utils)))
2235 (for-each delete-file (find-files "." "\\.jar$"))
2236 (for-each (lambda (file) (chmod file #o644))
2237 (find-files "." "."))
2240 (search-patches "maven-generate-component-xml.patch"
2241 "maven-generate-javax-inject-named.patch"))))
2243 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2245 (define-public maven-3.0-artifact
2247 (inherit maven-artifact)
2248 (version (package-version maven-3.0-pom))
2249 (source (package-source maven-3.0-pom))
2253 (if (equal? (car input) "maven-pom")
2254 `("maven-pom" ,maven-3.0-pom)
2256 (package-propagated-inputs maven-artifact)))))
2258 (define-public maven-3.0-model
2260 (inherit maven-model)
2261 (version (package-version maven-3.0-pom))
2262 (source (package-source maven-3.0-pom))
2266 (if (equal? (car input) "maven-pom")
2267 `("maven-pom" ,maven-3.0-pom)
2269 (package-propagated-inputs maven-artifact)))
2271 `(#:jar-name "maven-model.jar"
2272 #:source-dir "maven-model/src/main/java"
2273 #:test-dir "maven-model/src/test"
2275 ((guix build ant-build-system)
2276 (guix build java-utils)
2277 (guix build syscalls)
2280 (modify-phases %standard-phases
2281 (add-after 'configure 'use-newer-model
2282 (lambda* (#:key inputs #:allow-other-keys)
2283 ;; The model has almost not changed, but the newer version is
2284 ;; needed to prevent an error in the newer modello we have
2285 (let ((source (assoc-ref inputs "maven-source"))
2286 (dir (mkdtemp! "maven-source-XXXXXXXX")))
2287 (with-directory-excursion dir
2288 (invoke "tar" "xf" source)
2289 (copy-file (car (find-files "." "maven.mdo"))
2290 "../maven-model/src/main/mdo/maven.mdo")))
2292 (add-before 'build 'generate-models
2293 (lambda* (#:key inputs #:allow-other-keys)
2294 (define (modello-single-mode file version mode)
2295 (invoke "java" "org.codehaus.modello.ModelloCli"
2296 file mode "maven-model/src/main/java" version
2297 "false" "true" "UTF-8"))
2298 (let ((file "maven-model/src/main/mdo/maven.mdo"))
2299 (modello-single-mode file "4.0.0" "java")
2300 (modello-single-mode file "4.0.0" "xpp3-reader")
2301 (modello-single-mode file "4.0.0" "xpp3-writer")
2302 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
2305 (install-from-pom "maven-model/pom.xml")))))
2307 `(("maven-source" ,(package-source maven-pom))
2308 ,@(package-inputs maven-model)))))
2310 (define-public maven-3.0-settings
2312 (inherit maven-settings)
2313 (version (package-version maven-3.0-pom))
2314 (source (package-source maven-3.0-pom))
2318 (if (equal? (car input) "maven-pom")
2319 `("maven-pom" ,maven-3.0-pom)
2321 (package-propagated-inputs maven-settings)))))
2323 (define-public maven-3.0-settings-builder
2325 (inherit maven-settings-builder)
2326 (version (package-version maven-3.0-pom))
2327 (source (package-source maven-3.0-pom))
2329 (substitute-keyword-arguments (package-arguments maven-settings-builder)
2331 `(modify-phases ,phases
2332 (add-before 'build 'generate-components.xml
2334 (mkdir-p "build/classes/META-INF/plexus")
2335 (chmod "components.sh" #o755)
2336 (invoke "./components.sh" "maven-settings-builder/src/main/java"
2337 "build/classes/META-INF/plexus/components.xml")))))))
2339 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2345 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2346 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2347 ("maven-builder-support" #f)
2348 ("java-plexus-sec-dispatcher"
2349 `("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher-1.4))
2351 (package-propagated-inputs maven-settings-builder)))))))
2353 (define-public maven-3.0-model-builder
2355 (inherit maven-model-builder)
2356 (version (package-version maven-3.0-pom))
2357 (source (package-source maven-3.0-pom))
2359 (substitute-keyword-arguments (package-arguments maven-model-builder)
2361 `(modify-phases ,phases
2362 (add-before 'build 'generate-components.xml
2364 (mkdir-p "build/classes/META-INF/plexus")
2365 (chmod "components.sh" #o755)
2366 (invoke "./components.sh" "maven-model-builder/src/main/java"
2367 "build/classes/META-INF/plexus/components.xml")))
2368 (add-before 'check 'remove-failing-test
2370 (delete-file "maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java")))))))
2372 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2378 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2379 ("maven-model" `("maven-model" ,maven-3.0-model))
2380 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2381 ("maven-builder-support" #f)
2383 (package-propagated-inputs maven-model-builder)))))))
2385 (define-public maven-3.0-plugin-api
2387 (inherit maven-plugin-api)
2388 (version (package-version maven-3.0-pom))
2389 (source (package-source maven-3.0-pom))
2391 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2393 `(modify-phases ,phases
2394 (add-before 'install 'fix-pom
2396 (substitute* "maven-plugin-api/pom.xml"
2397 (("org.sonatype.sisu") "org.codehaus.plexus")
2398 (("sisu-inject-plexus") "plexus-container-default"))
2404 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2405 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2406 ("maven-model" `("maven-model" ,maven-3.0-model))
2408 (package-propagated-inputs maven-model-builder)))
2410 (modify-inputs (package-native-inputs maven-plugin-api)
2411 (prepend java-plexus-container-default)))))
2413 (define-public maven-3.0-repository-metadata
2415 (inherit maven-repository-metadata)
2416 (version (package-version maven-3.0-pom))
2417 (source (package-source maven-3.0-pom))
2421 (if (equal? (car input) "maven-pom")
2422 `("maven-pom" ,maven-3.0-pom)
2424 (package-propagated-inputs maven-repository-metadata)))))
2426 (define-public maven-3.0-aether-provider
2428 (inherit maven-3.0-pom)
2429 (name "maven-aether-provider")
2431 `(#:jar-name "maven-aether-provider.jar"
2432 #:source-dir "maven-aether-provider/src/main/java"
2433 #:tests? #f; no tests in 3.0
2435 (modify-phases %standard-phases
2436 (add-after 'build 'generate-metadata
2438 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2439 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2440 "--source" "src/main/java"
2441 "--output" "build/classes/META-INF/plexus/components.xml"
2442 "--classes" "build/classes"
2443 "--descriptors" "build/classes/META-INF")
2445 (add-after 'generate-metadata 'rebuild
2447 (invoke "ant" "jar")
2450 (install-from-pom "maven-aether-provider/pom.xml")))))
2452 `(("maven-model" ,maven-3.0-model)
2453 ("maven-model-builder" ,maven-3.0-model-builder)
2454 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2455 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2456 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
2457 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2458 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
2459 ("java-plexus-utils" ,java-plexus-utils)
2460 ("maven-pom" ,maven-3.0-pom)))
2462 (list java-plexus-component-metadata))))
2464 (define-public maven-3.0-core
2466 (inherit maven-core)
2467 (version (package-version maven-3.0-pom))
2468 (source (package-source maven-3.0-pom))
2470 `(#:jar-name "maven-core.jar"
2471 #:source-dir "src/main/java"
2474 (modify-phases %standard-phases
2475 (add-before 'configure 'chdir
2477 ;; Required for generating components.xml in maven-core
2478 (chdir "maven-core")
2480 (add-before 'build 'generate-models
2481 (lambda* (#:key inputs #:allow-other-keys)
2482 (define (modello-single-mode file version mode)
2483 (invoke "java" "org.codehaus.modello.ModelloCli"
2484 file mode "src/main/java" version
2485 "false" "true" "UTF-8"))
2486 (let ((file "src/main/mdo/toolchains.mdo"))
2487 (modello-single-mode file "1.0.0" "java")
2488 (modello-single-mode file "1.0.0" "xpp3-reader")
2489 (modello-single-mode file "1.0.0" "xpp3-writer"))
2491 (add-before 'build 'copy-resources
2493 (mkdir-p "build/classes/")
2494 (copy-recursively "src/main/resources" "build/classes")
2496 (add-after 'build 'generate-metadata
2498 (define (components file)
2499 (let ((sxml (with-input-from-file file
2500 (lambda _ (xml->sxml (current-input-port)
2501 #:trim-whitespace? #t)))))
2502 ;; Select the list of <component>s inside the <component-set>
2503 ;; and <components>.
2504 ((@ (ice-9 match) match) sxml
2508 ('components x ...))) x))))
2509 (use-modules (sxml simple))
2510 (delete-file "build/classes/META-INF/plexus/components.xml")
2511 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2512 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2513 "--source" "build/classes/META-INF/plexus"
2514 "--output" "build/classes/META-INF/plexus/components.t.xml"
2515 "--classes" "build/classes"
2516 "--descriptors" "build/classes")
2517 ;; Now we merge all other components from hand-written xml
2518 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
2519 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
2520 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
2521 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
2523 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2527 ,@(append generated-xml components-xml
2528 artifact-handlers-xml)))))))
2530 (add-after 'generate-metadata 'rebuild
2532 (invoke "ant" "jar")
2534 (add-before 'install 'fix-pom
2536 (substitute* "pom.xml"
2537 (("org.sonatype.sisu") "org.codehaus.plexus")
2538 (("sisu-inject-plexus") "plexus-container-default"))
2541 (install-from-pom "pom.xml")))))
2543 (list maven-3.0-model
2545 maven-3.0-settings-builder
2546 maven-3.0-repository-metadata
2548 maven-3.0-model-builder
2549 maven-3.0-aether-provider
2550 java-sonatype-aether-impl
2551 java-sonatype-aether-api
2552 java-sonatype-aether-util
2553 java-plexus-interpolation
2555 java-plexus-classworlds
2556 java-plexus-component-annotations
2557 java-plexus-container-default
2558 java-plexus-sec-dispatcher-1.4
2561 (define-public maven-3.0-compat
2563 (inherit maven-compat)
2564 (version (package-version maven-3.0-pom))
2565 (source (package-source maven-3.0-pom))
2567 `(#:tests? #f ;require an old version of java-easymock
2568 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2570 `(modify-phases ,phases
2571 (add-before 'install 'fix-pom
2573 (substitute* "pom.xml"
2574 (("org.sonatype.sisu") "org.codehaus.plexus")
2575 (("sisu-inject-plexus") "plexus-container-default"))
2577 (delete 'build-tests))))))
2579 (list maven-3.0-model
2580 maven-3.0-model-builder
2582 maven-3.0-settings-builder
2585 maven-3.0-aether-provider
2586 maven-3.0-repository-metadata
2587 java-sonatype-aether-api
2588 java-sonatype-aether-util
2589 java-sonatype-aether-impl
2591 java-plexus-interpolation
2592 java-eclipse-sisu-plexus
2593 java-plexus-component-annotations
2594 java-plexus-container-default
2595 maven-wagon-provider-api
2598 (define-public maven-shared-utils-3.0
2600 (inherit maven-shared-utils)
2604 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2605 "maven-shared-utils-" version "-source-release.zip"))
2608 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2610 (modify-inputs (package-propagated-inputs maven-shared-utils)
2611 (prepend maven-3.0-core maven-components-parent-pom-21)))))
2613 (define-public maven-shared-utils-3.1
2615 (inherit maven-shared-utils)
2619 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2620 "maven-shared-utils-" version "-source-release.zip"))
2623 "0vfaas4g09ch0agrd1dcxcmhdd3w971ssvfr9mx9gi2lp5nv8w66"))))))
2625 (define-public maven-shared-io
2627 (name "maven-shared-io")
2631 (uri (string-append "mirror://apache/maven/shared/"
2632 "maven-shared-io-" version
2633 "-source-release.zip"))
2636 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2637 (build-system ant-build-system)
2639 `(#:jar-name "maven-shared-io.jar"
2640 #:source-dir "src/main/java"
2641 #:test-dir "src/test"
2643 (modify-phases %standard-phases
2644 (add-before 'build 'copy-resources
2646 (copy-recursively "src/main/resources" "build/classes/")
2647 (copy-recursively "src/test/resources" "build/test-classes/")
2650 (install-from-pom "pom.xml")))))
2652 (list maven-3.0-artifact
2654 maven-3.0-plugin-api
2656 maven-wagon-provider-api
2658 maven-components-parent-pom-22))
2660 (list unzip java-junit java-easymock))
2661 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2662 (synopsis "Tree-based API for resolution of Maven project dependencies")
2663 (description "This package provides a tree-based API for resolution of
2664 Maven project dependencies.")
2665 (license license:asl2.0)))
2667 (define-public maven-file-management
2669 (name "maven-file-management")
2673 (uri (string-append "mirror://apache/maven/shared/"
2674 "file-management-" version
2675 "-source-release.zip"))
2678 "0wisz6sm67axrwvx8a75mb9s03h7kzkzfw8j3aaa4sx4k9ph58da"))))
2679 (build-system ant-build-system)
2681 `(#:jar-name "maven-file-management.jar"
2682 #:source-dir "src/main/java"
2684 (modify-phases %standard-phases
2685 (add-before 'build 'copy-resources
2687 (copy-recursively "src/main/resources" "build/classes/")
2689 (add-before 'build 'generate-models
2690 (lambda* (#:key inputs #:allow-other-keys)
2691 (define (modello-single-mode file version mode)
2693 "org.codehaus.modello.ModelloCli"
2694 file mode "src/main/java" version
2696 (let ((file "src/main/mdo/fileset.mdo"))
2697 (modello-single-mode file "1.1.0" "java")
2698 (modello-single-mode file "1.1.0" "xpp3-reader")
2699 (modello-single-mode file "1.1.0" "xpp3-writer"))
2702 (install-from-pom "pom.xml")))))
2704 (list maven-3.0-plugin-api maven-shared-io maven-shared-utils
2705 java-plexus-utils maven-components-parent-pom-22))
2707 `(("java-modello-core" ,java-modello-core)
2709 ("java-modellop-plugins-java" ,java-modello-plugins-java)
2710 ("java-modellop-plugins-xpp3" ,java-modello-plugins-xpp3)
2712 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2713 (synopsis "Tree-based API for resolution of Maven project dependencies")
2714 (description "This package provides a tree-based API for resolution of
2715 Maven project dependencies.")
2716 (license license:asl2.0)))
2718 (define-public maven-archiver
2720 (name "maven-archiver")
2724 (uri (string-append "mirror://apache/maven/shared/"
2725 "maven-archiver-" version
2726 "-source-release.zip"))
2729 "1204xkqj259brpk3yscprml0lbfbyn1vn5nrgqjk44z5vx127lbw"))))
2730 (build-system ant-build-system)
2732 `(#:jar-name "maven-archiver.jar"
2733 #:source-dir "src/main/java"
2735 (modify-phases %standard-phases
2737 (install-from-pom "pom.xml")))))
2739 `(("java-commons-io" ,java-commons-io)
2740 ("maven-artifact" ,maven-3.0-artifact)
2741 ("maven-core" ,maven-3.0-core)
2742 ("maven-model" ,maven-3.0-model)
2743 ("maven-shared-utils" ,maven-shared-utils)
2744 ("java-plexus-archiver" ,java-plexus-archiver)
2745 ("java-plexus-interpolation" ,java-plexus-interpolation)
2746 ("java-plexus-utils" ,java-plexus-utils)
2747 ("maen-parent-pom" ,maven-parent-pom-33)))
2749 (list java-junit java-assertj unzip))
2750 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2751 (synopsis "Tree-based API for resolution of Maven project dependencies")
2752 (description "This package provides a tree-based API for resolution of
2753 Maven project dependencies.")
2754 (license license:asl2.0)))
2756 (define-public maven-dependency-tree
2758 (name "maven-dependency-tree")
2762 (uri (string-append "mirror://apache/maven/shared/"
2763 "maven-dependency-tree-" version
2764 "-source-release.zip"))
2767 "1vhcd3lmbyy8q61c37sqgbllqj4ypkxm344l6pb05mkchlyk5dy5"))))
2768 (build-system ant-build-system)
2770 `(#:jar-name "maven-dependency-tree.jar"
2771 #:source-dir "src/main/java"
2772 #:tests? #f; no tests
2774 (modify-phases %standard-phases
2776 (install-from-pom "pom.xml")))))
2778 (list maven-3.0-core java-plexus-component-annotations
2779 maven-parent-pom-34))
2781 (list java-sonatype-aether-api-1.13 java-sonatype-aether-util-1.13
2782 java-eclipse-aether-api java-eclipse-aether-util))
2784 (list unzip java-junit))
2785 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2786 (synopsis "Tree-based API for resolution of Maven project dependencies")
2787 (description "This package provides a tree-based API for resolution of
2788 Maven project dependencies.")
2789 (license license:asl2.0)))
2791 (define-public maven-common-artifact-filters
2793 (name "maven-common-artifact-filters")
2797 (uri (string-append "mirror://apache/maven/shared/"
2798 "maven-common-artifact-filters-" version
2799 "-source-release.zip"))
2802 "1mr92s4zz6gf028wiskjg8rd1znxzdnmskg42ac55ifg9v1p1884"))))
2803 (build-system ant-build-system)
2805 `(#:jar-name "maven-common-artifact-filters.jar"
2806 #:source-dir "src/main/java"
2807 #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
2809 (modify-phases %standard-phases
2810 (add-before 'build 'fix-aether
2812 (substitute* "pom.xml"
2813 (("eclipse.aether") "sonatype.aether"))
2814 (substitute* "src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java"
2815 (("eclipse") "sonatype"))))
2817 (install-from-pom "pom.xml")))))
2819 (list maven-3.0-artifact
2822 maven-3.0-plugin-api
2825 java-eclipse-sisu-plexus
2826 java-sonatype-aether-api
2827 java-sonatype-aether-util))
2829 (list maven-resolver-api maven-resolver-util))
2832 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2833 (synopsis "Tree-based API for resolution of Maven project dependencies")
2834 (description "This package provides a tree-based API for resolution of
2835 Maven project dependencies.")
2836 (license license:asl2.0)))
2838 (define-public maven-common-artifact-filters-3.1.0
2840 (inherit maven-common-artifact-filters)
2844 (uri (string-append "mirror://apache/maven/shared/"
2845 "maven-common-artifact-filters-" version
2846 "-source-release.zip"))
2849 "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
2851 (substitute-keyword-arguments (package-arguments maven-common-artifact-filters)
2853 `(modify-phases ,phases
2854 (delete 'fix-aether)
2855 (add-before 'build 'remove-sisu
2857 (substitute* "pom.xml"
2858 (("sisu-inject-plexus") "maven-plugin-api")
2859 (("org.sonatype.sisu") "org.apache.maven"))))))))))
2861 (define-public maven-enforcer-api
2863 (name "maven-enforcer-api")
2867 (uri (string-append "mirror://apache/maven/enforcer/"
2868 "enforcer-" version "-source-release.zip"))
2871 "1479yp58jv788xc1jc2sbdxpajlbvwlk60639vd2h4s8r6x7naqh"))))
2872 (build-system ant-build-system)
2874 `(#:jar-name "maven-enforcer-api.jar"
2875 #:source-dir "enforcer-api/src/main/java"
2876 #:tests? #f; no tests
2878 (modify-phases %standard-phases
2880 (install-from-pom "enforcer-api/pom.xml")))))
2882 (list maven-plugin-api java-plexus-container-default java-jsr305
2883 maven-enforcer-parent-pom))
2886 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2887 (synopsis "Tree-based API for resolution of Maven project dependencies")
2888 (description "This package provides a tree-based API for resolution of
2889 Maven project dependencies.")
2890 (license license:asl2.0)))
2892 (define maven-enforcer-parent-pom
2894 (inherit maven-enforcer-api)
2895 (name "maven-enforcer-parent-pom")
2899 (modify-phases %standard-phases
2902 (add-before 'install 'fix-pom-versions
2904 (substitute* "pom.xml"
2905 (("<maven.version>.*</maven.version>")
2906 ,(string-append "<maven.version>" (package-version maven)
2907 "</maven.version>"))
2908 (("2.11.0") ,(package-version java-commons-io))
2909 (("3.12.0") ,(package-version java-commons-lang3))
2910 (("1.6.1") ,(package-version maven-resolver-util))
2911 (("1.15") ,(package-version java-commons-codec)))))
2913 (install-pom-file "pom.xml")))))
2915 `(("maven-parent-pom" ,maven-parent-pom-30)))))
2917 (define-public maven-enforcer-rules
2919 (inherit maven-enforcer-api)
2920 (name "maven-enforcer-rules")
2922 `(#:tests? #f; requires maven-plugin-testing-harness
2923 #:jar-name "maven-enforcer-rules.jar"
2924 #:source-dir "enforcer-rules/src/main/java"
2925 #:test-dir "enforcer-rules/src/test"
2927 (modify-phases %standard-phases
2929 (install-from-pom "enforcer-rules/pom.xml")))))
2931 (list maven-artifact
2934 maven-common-artifact-filters
2940 maven-dependency-tree
2942 maven-enforcer-parent-pom))))
2944 (define-public maven-enforcer-plugin
2946 (inherit maven-enforcer-api)
2947 (name "maven-enforcer-plugin")
2950 #:jar-name "maven-enforcer-plugin.jar"
2951 #:source-dir "maven-enforcer-plugin/src/main/java"
2953 (modify-phases %standard-phases
2954 (add-before 'build 'generate-plugin.xml
2955 (generate-plugin.xml "maven-enforcer-plugin/pom.xml"
2957 "maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/"
2959 (list "DisplayInfoMojo.java")
2960 (list "EnforceMojo.java"))))
2962 (install-from-pom "maven-enforcer-plugin/pom.xml")))))
2964 (list maven-artifact
2969 maven-enforcer-rules
2970 maven-plugin-annotations
2971 maven-enforcer-parent-pom))))
2973 (define-public maven-artifact-transfer
2975 (name "maven-artifact-transfer")
2979 (uri (string-append "mirror://apache/maven/shared/"
2980 "maven-artifact-transfer-" version
2981 "-source-release.zip"))
2984 "0xl7lkksljacrhmvwf924zb6h0h5zw9494jaz9cz4hll0lrhlpz6"))))
2985 (build-system ant-build-system)
2987 `(#:tests? #f; require mockito 2
2988 #:jar-name "maven-artifact-transfer.jar"
2989 #:source-dir "src/main/java"
2991 (modify-phases %standard-phases
2992 (add-after 'build 'generate-metadata
2994 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2995 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2996 "--source" "src/main/java"
2997 "--output" "build/classes/META-INF/plexus/components.xml"
2998 "--classes" "build/classes"
2999 "--descriptors" "build/classes/META-INF")
3001 (add-after 'generate-metadata 'rebuild
3003 (invoke "ant" "jar")
3006 (install-from-pom "pom.xml")))))
3008 (list java-commons-codec
3011 maven-common-artifact-filters-3.1.0
3012 java-plexus-component-annotations
3015 java-plexus-classworlds
3016 java-sonatype-aether-api
3017 java-eclipse-aether-api
3018 java-eclipse-aether-util
3019 java-eclipse-aether-impl))
3021 (list unzip java-plexus-component-metadata))
3022 (home-page "https://maven.apache.org/shared/maven-artifact-transfer")
3023 (synopsis "API to install, deploy and resolve artifacts in Maven")
3024 (description "This package contains an API to install, deploy and resolve
3025 artifacts in Maven 3.")
3026 (license license:asl2.0)))
3028 (define-public maven-install-plugin
3030 (name "maven-install-plugin")
3031 (version "3.0.0-M1")
3034 (uri (string-append "mirror://apache/maven/plugins/"
3035 "maven-install-plugin-" version
3036 "-source-release.zip"))
3039 "1l9iydxririrair0i5sk2iypn9wspzbb666lc0ddg20yyr8w39dm"))))
3040 (build-system ant-build-system)
3042 `(#:tests? #f; require maven-plugin-testing-harness
3043 #:jar-name "maven-install-plugin.jar"
3044 #:source-dir "src/main/java"
3046 (modify-phases %standard-phases
3047 (add-before 'build 'fix-pom
3049 (substitute* "pom.xml"
3050 (("maven-project") "maven-core")
3051 (("maven-artifact-manager") "maven-artifact")
3054 (add-before 'build 'generate-plugin.xml
3055 (generate-plugin.xml "pom.xml"
3057 "src/main/java/org/apache/maven/plugins/install"
3059 (list "AbstractInstallMojo.java" "InstallFileMojo.java")
3060 (list "AbstractInstallMojo.java" "InstallMojo.java"))))
3062 (install-from-pom "pom.xml")))))
3064 `(("maven-artifact" ,maven-artifact)
3065 ("maven-plugin-api" ,maven-plugin-api)
3066 ("maven-compat" ,maven-compat)
3067 ("maven-artifact-transfer" ,maven-artifact-transfer)
3068 ("maven-plugins-pom-23" ,maven-plugins-pom-23)
3069 ("java-plexus-digest" ,java-plexus-digest)))
3071 (list maven-plugin-annotations java-slf4j-api))
3074 (home-page "https://maven.apache.org/plugin/maven-install-plugin")
3075 (synopsis "Maven's install plugin")
3076 (description "The Install Plugin is used during the install phase to add
3077 artifact(s) to the local repository. The Install Plugin uses the information
3078 in the POM (groupId, artifactId, version) to determine the proper location for
3079 the artifact within the local repository.
3081 The local repository is the local cache where all artifacts needed for the
3082 build are stored. By default, it is located within the user's home directory
3083 (@file{~/.m2/repository}) but the location can be configured in
3084 @file{~/.m2/settings.xml} using the @code{<localRepository>} element.")
3085 (license license:asl2.0)))
3087 (define-public maven-filtering
3089 (name "maven-filtering")
3093 (uri (string-append "https://archive.apache.org/dist/maven/"
3094 "shared/maven-filtering-" version
3095 "-source-release.zip"))
3098 "09wrdhchnszd2l6h4z30ra0bv1a19qyjgac9z8zf1pn0m4nw05yz"))))
3099 (build-system ant-build-system)
3101 `(#:jar-name "maven-filtering.jar"
3102 #:source-dir "src/main/java"
3103 #:test-dir "src/test"
3104 ;; this test comes from plexus-build-api, not this package
3105 #:test-exclude (list "**/IncrementalResourceFilteringTest.java"
3106 "**/Abstract*.java")
3108 (modify-phases %standard-phases
3109 (add-after 'build 'generate-metadata
3111 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3112 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3113 "--source" "src/main/java"
3114 "--output" "build/classes/META-INF/plexus/components.xml"
3115 "--classes" "build/classes"
3116 "--descriptors" "build/classes/META-INF")
3118 (add-after 'generate-metadata 'rebuild
3120 (invoke "ant" "jar")
3122 (add-before 'check 'decompress-tests
3123 (lambda* (#:key inputs #:allow-other-keys)
3124 (let* ((build-api-source (assoc-ref inputs "java-plexus-build-api-origin"))
3125 (classes (string-append build-api-source "/src/test/java")))
3126 (copy-recursively classes "src/test/"))
3128 (add-before 'check 'fix-directory
3130 (substitute* (find-files "src/test" ".*.java$")
3131 (("target/test-classes/") "build/test-classes/"))))
3132 (add-before 'check 'copy-test-resources
3134 (copy-recursively "src/test/resources" "build/test-classes/")
3137 (install-from-pom "pom.xml")))))
3139 (list maven-3.0-core
3141 java-plexus-utils-3.2.1
3142 java-plexus-interpolation
3143 java-plexus-build-api
3144 maven-parent-pom-30))
3149 ("java-assertj" ,java-assertj)
3150 ("java-junit" ,java-junit)
3151 ("java-mockito" ,java-mockito-1)
3152 ("java-objenesis" ,java-objenesis)
3153 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
3154 ("java-plexus-build-api-origin" ,(package-source java-plexus-build-api))))
3155 (home-page "https://maven.apache.org/shared/maven-filtering")
3156 (synopsis "Shared component for all plugins that needs to filter resources")
3157 (description "This component provides an API to filter resources in Maven
3159 (license license:asl2.0)))
3161 (define-public maven-resources-plugin
3163 (name "maven-resources-plugin")
3168 (url "https://github.com/apache/maven-resources-plugin")
3169 (commit (string-append "maven-resources-plugin-" version))))
3170 (file-name (git-file-name name version))
3173 "090k5j2y7ak54czfjjg3v7pdmdlgd96fbs91d1fd3vslm9zzndg8"))))
3174 (build-system ant-build-system)
3176 `(#:jar-name "maven-resources-plugin.jar"
3177 #:source-dir "src/main/java"
3178 #:test-dir "src/test"
3179 #:tests? #f; test depends on maven-plugin-test-harness
3181 (modify-phases %standard-phases
3182 (add-before 'build 'generate-plugin.xml
3183 (generate-plugin.xml "pom.xml" "resources"
3184 "src/main/java/org/apache/maven/plugins/resources"
3186 (list "ResourcesMojo.java" "CopyResourcesMojo.java")
3187 (list "ResourcesMojo.java")
3188 (list "ResourcesMojo.java" "TestResourcesMojo.java"))))
3190 (install-from-pom "pom.xml")))))
3192 (list maven-plugin-api
3196 java-plexus-interpolation
3197 maven-parent-pom-31))
3199 (list maven-plugin-annotations java-commons-io))
3201 (list java-plexus-component-metadata))
3202 (home-page "https://maven.apache.org/plugins/maven-resources-plugin")
3203 (synopsis "Maven plugin to collect and install resources")
3204 (description "The Resources Plugin handles the copying of project resources
3205 to the output directory. There are two different kinds of resources: main
3206 resources and test resources. The difference is that the main resources are
3207 the resources associated to the main source code while the test resources are
3208 associated to the test source code.
3210 Thus, this allows the separation of resources for the main source code and its
3212 (license license:asl2.0)))
3214 (define-public maven-shared-incremental
3216 (name "maven-shared-incremental")
3220 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
3221 "maven-shared-incremental-" version
3222 "-source-release.zip"))
3225 "03n4nfswyg9ahkz2zx4skcr3ghs01zh95g9js51hc75mfqx9b976"))))
3226 (build-system ant-build-system)
3228 `(#:jar-name "shared-incremental.java"
3229 #:source-dir "src/main/java"
3230 #:test-dir "src/test"
3232 (modify-phases %standard-phases
3233 (add-before 'build 'change-parent
3235 (substitute* "pom.xml"
3238 (add-before 'build 'fix-pom
3240 (substitute* "pom.xml"
3241 (("plexus-component-api") "plexus-component-annotations"))
3243 (add-after 'build 'generate-metadata
3245 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3246 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3247 "--source" "src/main/java"
3248 "--output" "build/classes/META-INF/plexus/components.xml"
3249 "--classes" "build/classes"
3250 "--descriptors" "build/classes/META-INF")
3253 (install-from-pom "pom.xml")))))
3255 (list maven-plugin-api maven-core maven-shared-utils
3256 java-plexus-component-annotations maven-parent-pom-30))
3258 (list unzip java-plexus-component-metadata))
3259 (home-page "https://maven.apache.org/shared/maven-shared-incremental")
3260 (synopsis "Maven Incremental Build support utilities")
3261 (description "This package contains various utility classes and plexus
3262 components for supporting incremental build functionality in maven plugins.")
3263 (license license:asl2.0)))
3265 (define-public maven-compiler-plugin
3267 (name "maven-compiler-plugin")
3272 (url "https://github.com/apache/maven-compiler-plugin")
3273 (commit (string-append "maven-compiler-plugin-" version))))
3274 (file-name (git-file-name name version))
3277 "0jkbq02vykd09ws8k9bzqxv6fjrpmir8gcxydbmj05kkhl242bma"))))
3278 (build-system ant-build-system)
3280 `(#:jar-name "maven-compiler-plugin.jar"
3281 #:source-dir "src/main/java"
3282 #:test-dir "src/test"
3283 #:tests? #f; test depends on maven-plugin-test-harness
3285 (modify-phases %standard-phases
3286 (add-before 'build 'generate-plugin.xml
3287 (generate-plugin.xml "pom.xml"
3289 "src/main/java/org/apache/maven/plugin/compiler"
3291 (list "AbstractCompilerMojo.java" "CompilerMojo.java")
3292 (list "AbstractCompilerMojo.java" "TestCompilerMojo.java"))))
3293 (add-after 'generate-plugin.xml 'fix-plugin.xml
3295 (substitute* "build/classes/META-INF/maven/plugin.xml"
3296 ;; These are defined in AbstractCompilerMojo.java, but not
3297 ;; parsed correctly in the previous phase
3298 (("DEFAULT_TARGET") "1.6")
3299 (("DEFAULT_SOURCE") "1.6"))
3302 (install-from-pom "pom.xml")))))
3304 (list maven-plugin-api
3308 maven-shared-incremental
3310 java-plexus-compiler-api
3311 java-plexus-compiler-manager
3312 java-plexus-compiler-javac
3313 maven-parent-pom-33))
3315 (list maven-plugin-annotations java-commons-io))
3316 (home-page "https://maven.apache.org/plugins/maven-compiler-plugin")
3317 (synopsis "Compiler plugin for Maven")
3318 (description "The Compiler Plugin is used to compile the sources of your
3319 project. Since 3.0, the default compiler is @code{javax.tools.JavaCompiler}
3320 (if you are using java 1.6) and is used to compile Java sources. If you want
3321 to force the plugin using javac, you must configure the plugin option
3322 @code{forceJavacCompilerUse}.
3324 Also note that at present the default source setting is 1.6 and the default
3325 target setting is 1.6, independently of the JDK you run Maven with. You are
3326 highly encouraged to change these defaults by setting source and target as
3327 described in Setting the -source and -target of the Java Compiler.
3329 Other compilers than javac can be used and work has already started on
3330 AspectJ, .NET, and C#.")
3331 (license license:asl2.0)))
3333 (define-public java-surefire-logger-api
3335 (name "java-surefire-logger-api")
3336 (version "3.0.0-M4")
3339 (uri (string-append "mirror://apache/maven/surefire/"
3340 "surefire-" version "-source-release.zip"))
3343 "1s6d4pzk3bjm9l38mj9sfgbgmk145rppdj1dmqwc4d5105mr9q9w"))))
3344 (build-system ant-build-system)
3346 `(#:jar-name "java-surefire-logger-api.jar"
3347 #:source-dir "surefire-logger-api/src/main/java"
3348 #:tests? #f; require mockito 2
3350 (modify-phases %standard-phases
3352 (install-from-pom "surefire-logger-api/pom.xml")))))
3354 (list java-surefire-parent-pom))
3357 (home-page "https://maven.apache.org/surefire/surefire-logger-api")
3358 (synopsis "Interfaces and Utilities related only to internal SureFire Logger API")
3359 (description "This package contains interfaces and utilities that are
3360 internal to the SureFire Logger API. It is designed to have no dependency.")
3361 (license license:asl2.0)))
3363 (define-public java-surefire-parent-pom
3365 (inherit java-surefire-logger-api)
3366 (name "java-surefire-parent-pom")
3370 (modify-phases %standard-phases
3373 (add-before 'install 'fix-pom-dependency-versions
3375 (substitute* "pom.xml"
3376 (("1.11") ,(package-version java-commons-compress))
3377 (("1.13") ,(package-version java-commons-codec)))
3378 (substitute* "pom.xml"
3379 (("commonsLang3Version>.*")
3381 "commonsLang3Version>"
3382 ,(package-version java-commons-lang3)
3383 "</commonsLang3Version>\n"))
3384 (("commonsCompress>.*")
3387 ,(package-version java-commons-compress)
3388 "</commonsCompress>\n"))
3389 (("commonsIoVersion>.*")
3392 ,(package-version java-commons-io)
3393 "</commonsIoVersion>\n"))
3394 (("0.11.0") ,(package-version maven-artifact-transfer))
3395 (("1.0.3") ,(package-version java-plexus-java)))
3397 (add-after 'install 'install-providers
3398 (install-pom-file "surefire-providers/pom.xml"))
3400 (install-pom-file "pom.xml")))))
3402 (list maven-parent-pom-33))))
3404 (define-public java-surefire-api
3406 (inherit java-surefire-logger-api)
3407 (name "java-surefire-api")
3410 #:jar-name "java-surefire-api.jar"
3411 #:source-dir "surefire-api/src/main/java"
3413 (modify-phases %standard-phases
3414 (add-before 'build 'copy-resources
3416 (mkdir-p "build/classes")
3417 (copy-recursively "surefire-api/src/main/resources" "build/classes")
3419 (add-before 'build 'prepare-shade
3420 (lambda* (#:key inputs #:allow-other-keys)
3421 (mkdir-p "build/classes")
3422 (with-directory-excursion "build/classes"
3427 (invoke "jar" "xf" jar-file)
3428 (delete-file-recursively "META-INF"))
3429 (find-files (assoc-ref inputs input) ".*.jar$")))
3430 '("maven-shared-utils" "java-commons-codec")))
3432 (add-after 'build 'shade
3433 (lambda* (#:key inputs #:allow-other-keys)
3435 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3436 (injar "java-surefire-api.jar")
3437 (outjar "java-surefire-api-shaded.jar"))
3438 (with-directory-excursion "build/jar"
3439 (with-output-to-file "rules"
3441 (format #t (string-append
3443 "org.apache.maven.shared.utils.** "
3444 "org.apache.maven.surefire.shade.api."
3445 "org.apache.maven.shared.utils.@1~%"))
3446 (format #t (string-append
3448 "org.apache.commons.codec.** "
3449 "org.apache.maven.surefire.shade.api."
3450 "org.apache.commons.codec.@1~%"))))
3451 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3453 (rename-file outjar injar)))
3456 (install-from-pom "surefire-api/pom.xml")))))
3458 (list java-surefire-logger-api java-commons-codec
3459 java-surefire-parent-pom maven-shared-utils-3.1))
3463 (list unzip java-jarjar))
3464 (synopsis "Maven SureFire API")
3465 (description "This package contains the API to use Maven SureFire.")))
3467 (define-public java-surefire-booter
3469 (inherit java-surefire-logger-api)
3470 (name "java-surefire-booter")
3472 `(#:tests? #f; require mockito 2
3473 #:jar-name "java-surefire-booter.jar"
3474 #:source-dir "surefire-booter/src/main/java"
3476 (modify-phases %standard-phases
3477 (add-before 'build 'fix-/bin/sh
3479 (substitute* "surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java"
3480 (("/bin/sh") (which "sh")))
3483 (install-from-pom "surefire-booter/pom.xml")))))
3485 (list java-surefire-api java-commons-lang3 java-commons-io
3486 java-surefire-parent-pom))
3489 (synopsis "API and Facilities used by forked tests running in JVM sub-process")
3490 (description "SureFire runs tests inside a forked JVM subprocess. This
3491 package contains an API and facilities used inside that forked JVM.")))
3493 (define-public java-surefire-extensions-api
3495 (inherit java-surefire-logger-api)
3496 (name "java-surefire-extensions-api")
3498 `(#:tests? #f; requires mockito 2
3499 #:jar-name "java-surefire-extensions-api.jar"
3500 #:source-dir "surefire-extensions-api/src/main/java"
3502 (modify-phases %standard-phases
3504 (install-from-pom "surefire-extensions-api/pom.xml")))))
3506 (list java-surefire-api java-surefire-parent-pom))
3508 (list java-plexus-component-annotations))
3509 (synopsis "Extension API for Maven SureFire")
3510 (description "Surefire is a test framework project. This is the aggregator
3511 POM in Apache Maven Surefire project.")))
3513 (define-public java-surefire-common-java5
3515 (inherit java-surefire-logger-api)
3516 (name "java-surefire-common-java5")
3518 `(#:jar-name "java-surefire-common-java5.jar"
3519 #:source-dir "surefire-providers/common-java5/src/main/java"
3520 #:test-dir "surefire-providers/common-java5/src/test"
3521 #:test-exclude (list
3523 "**/PojoStackTraceWriterTest.java"
3525 "**/SmartStackTraceParserTest.java")
3527 (modify-phases %standard-phases
3528 (add-before 'build 'prepare-shade
3529 (lambda* (#:key inputs #:allow-other-keys)
3530 (mkdir-p "build/classes")
3531 (with-directory-excursion "build/classes"
3534 (invoke "jar" "xf" jar-file)
3535 (delete-file-recursively "META-INF"))
3536 (find-files (assoc-ref inputs "maven-shared-utils") ".*.jar$")))
3538 (add-after 'build 'shade
3539 (lambda* (#:key inputs #:allow-other-keys)
3541 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3542 (injar "java-surefire-common-java5.jar")
3543 (outjar "java-surefire-common-java5-shaded.jar"))
3544 (with-directory-excursion "build/jar"
3545 (with-output-to-file "rules"
3547 (format #t (string-append
3549 "org.apache.maven.shared.utils.** "
3550 "org.apache.maven.surefire.shade.common."
3551 "org.apache.maven.shared.utils.@1~%"))))
3552 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3554 (rename-file outjar injar)))
3557 (install-from-pom "surefire-providers/common-java5/pom.xml")))))
3559 (list maven-shared-utils-3.1 java-surefire-api
3560 java-surefire-parent-pom))
3562 (list unzip java-jarjar java-junit java-fest-assert))
3563 (synopsis "Common java5 facilities for Maven SureFire")
3564 (description "This package contains shared Java 5 code for all providers.")))
3566 (define-public java-surefire-common-junit3
3568 (inherit java-surefire-logger-api)
3569 (name "java-surefire-common-junit3")
3571 `(#:jar-name "java-surefire-common-junit3.jar"
3572 #:source-dir "surefire-providers/common-junit3/src/main/java"
3573 #:test-dir "surefire-providers/common-junit3/src/test"
3575 (modify-phases %standard-phases
3577 (install-from-pom "surefire-providers/common-junit3/pom.xml")))))
3579 (list java-junit java-surefire-api java-surefire-parent-pom))
3581 (list unzip java-junit java-fest-assert))
3582 (synopsis "Shared JUnit3 provider code for Maven SureFire")
3583 (description "This package contains shared code for all JUnit providers.")))
3585 (define-public java-surefire-common-junit4
3587 (inherit java-surefire-logger-api)
3588 (name "java-surefire-common-junit4")
3590 `(#:jar-name "java-surefire-common-junit4.jar"
3591 #:source-dir "surefire-providers/common-junit4/src/main/java"
3592 #:tests? #f; tests require junit 4.0
3594 (modify-phases %standard-phases
3596 (install-from-pom "surefire-providers/common-junit4/pom.xml")))))
3600 java-surefire-common-java5
3601 java-surefire-common-junit3
3602 maven-shared-utils-3.1
3603 java-surefire-parent-pom))
3604 (synopsis "Shared JUnit4 provider code for Maven SureFire")
3605 (description "This package contains shared code for all JUnit providers,
3606 starting from JUnit 4.")))
3608 (define-public java-surefire-junit4
3610 (inherit java-surefire-logger-api)
3611 (name "java-surefire-junit4")
3614 #:jar-name "java-surefire-junit4.jar"
3615 #:source-dir "surefire-providers/surefire-junit4/src/main/java"
3616 #:test-dir "surefire-providers/surefire-junit4/src/test"
3617 #:modules ((guix build ant-build-system)
3619 (guix build java-utils)
3622 (modify-phases %standard-phases
3623 (add-before 'install 'regenerate-own-pom
3624 ;; Surefire struggles resolving artifacts because of this pom
3625 ;; file, resulting in a NullPointerException when collecting
3626 ;; Artifacts (and a "Failure detected." message from
3627 ;; DefaultArtifactResolver). Replace the pom file with a much
3628 ;; simpler one. Everything is shaded anyway (as used to be the
3629 ;; case in 2.22), so there will not be missing dependencies.
3631 "surefire-providers/surefire-junit4/pom.xml"
3632 "org.apache.maven.surefire" "surefire-junit4"
3633 ,(package-version java-surefire-common-java5)
3634 #:name "Surefire JUnit4"))
3635 (add-before 'build 'copy-resources
3637 (mkdir-p "build/classes")
3638 (copy-recursively "surefire-providers/surefire-junit4/src/main/resources"
3641 (add-before 'build 'prepare-shade
3642 (lambda* (#:key inputs #:allow-other-keys)
3643 (mkdir-p "build/classes")
3644 (with-directory-excursion "build/classes"
3649 (invoke "jar" "xf" jar-file)
3650 (delete-file-recursively "META-INF"))
3651 (find-files (assoc-ref inputs input) ".*.jar$")))
3652 '("maven-shared-utils" "java-surefire-common-java5"
3653 "java-surefire-common-junit3" "java-surefire-common-junit4"
3654 "java-surefire-api")))
3656 (add-after 'build 'shade
3657 (lambda* (#:key inputs #:allow-other-keys)
3659 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3660 (injar "java-surefire-junit4.jar")
3661 (outjar "java-surefire-junit4-shaded.jar"))
3662 (with-directory-excursion "build/jar"
3663 (with-output-to-file "rules"
3665 (format #t (string-append
3667 "org.apache.maven.shared.utils.** "
3668 "org.apache.maven.surefire.shade."
3669 "org.apache.maven.shared.utils.@1~%"))))
3670 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3672 (rename-file outjar injar)))
3675 (install-from-pom "surefire-providers/surefire-junit4/pom.xml")))))
3677 (list java-junit java-surefire-parent-pom))
3679 (list java-surefire-common-junit4 java-surefire-common-junit3
3680 java-surefire-common-java5 java-surefire-api))
3682 (list java-jarjar unzip java-junit java-hamcrest-all
3684 (synopsis "SureFire JUnit 4.0+ runner")
3685 (description "This package contains the runner for tests run on a forked
3686 JVM, using JUnit 4.0 or later.")))
3688 (define-public maven-surefire-common
3690 (inherit java-surefire-logger-api)
3691 (name "maven-surefire-common")
3693 `(#:tests? #f; require mockito 2
3694 #:jar-name "maven-surefire-common.jar"
3695 #:source-dir "maven-surefire-common/src/main/java"
3697 (modify-phases %standard-phases
3698 (add-before 'build 'prepare-shade
3699 (lambda* (#:key inputs #:allow-other-keys)
3700 (mkdir-p "build/classes")
3701 (with-directory-excursion "build/classes"
3706 (invoke "jar" "xf" jar-file)
3707 (delete-file-recursively "META-INF"))
3708 (find-files (assoc-ref inputs input) ".*.jar$")))
3709 '("maven-shared-utils" "java-commons-io" "java-commons-lang3"
3710 "java-commons-compress" "maven-common-artifact-filters")))
3712 (add-after 'build 'shade
3713 (lambda* (#:key inputs #:allow-other-keys)
3715 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3716 (injar "maven-surefire-common.jar")
3717 (outjar "maven-surefire-common-shaded.jar"))
3718 (with-directory-excursion "build/jar"
3719 (with-output-to-file "rules"
3721 (format #t (string-append
3723 "org.apache.maven.shared.utils.** "
3724 "org.apache.maven.surefire.shade.common."
3725 "org.apache.maven.shared.utils.@1~%"))
3726 (format #t (string-append
3728 "org.apache.commons.io.** "
3729 "org.apache.maven.surefire.shade.common."
3730 "org.apache.commons.io.@1~%"))
3731 (format #t (string-append
3733 "org.apache.commons.lang3.** "
3734 "org.apache.maven.surefire.shade.common."
3735 "org.apache.commons.lang3.@1~%"))
3736 (format #t (string-append
3738 "org.apache.commons.compress.** "
3739 "org.apache.maven.surefire.shade.common."
3740 "org.apache.commons.compress.@1~%"))))
3741 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3743 (rename-file outjar injar)))
3745 (add-before 'install 'fix-pom
3747 (substitute* "maven-surefire-common/pom.xml"
3748 (("maven-toolchain") "maven-core"))
3751 (install-from-pom "maven-surefire-common/pom.xml")))))
3753 (list java-surefire-api
3754 java-surefire-extensions-api
3755 java-surefire-booter
3757 maven-plugin-annotations
3758 maven-common-artifact-filters
3759 maven-artifact-transfer
3764 java-commons-compress
3765 maven-shared-utils-3.1
3766 java-surefire-parent-pom))
3770 (list unzip java-jarjar))
3771 (synopsis "API used in Surefire and Failsafe MOJO")
3772 (description "This package contains an API used in SureFire and Failsafe
3775 (define-public maven-surefire-plugin
3777 (inherit java-surefire-logger-api)
3778 (name "maven-surefire-plugin")
3780 `(#:jar-name "maven-surefire-plugin.jar"
3781 #:source-dir "maven-surefire-plugin/src/main/java"
3782 #:tests? #f; test depends on maven-plugin-test-harness
3784 (modify-phases %standard-phases
3785 (add-before 'build 'generate-plugin.xml
3786 (generate-plugin.xml "maven-surefire-plugin/pom.xml"
3791 "maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java"
3792 "maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java"))))
3794 (install-from-pom "maven-surefire-plugin/pom.xml")))))
3796 (list maven-surefire-common maven-core))
3798 (list maven-plugin-annotations unzip))
3799 (synopsis "SureFire Maven plugin that runs tests")
3800 (description "The Surefire Plugin is used during the test phase of the
3801 build lifecycle to execute the unit tests of an application. It generates
3802 reports in two different file formats, plain text and xml.")))
3804 (define-public maven-jar-plugin
3806 (name "maven-jar-plugin")
3811 (url "https://github.com/apache/maven-jar-plugin")
3812 (commit (string-append "maven-jar-plugin-" version))))
3813 (file-name (git-file-name name version))
3816 "04y2rlmcabmc55ljqlkgbb5xx94a59cz1dvrnpfj1vzz024pqkyg"))))
3817 (build-system ant-build-system)
3819 `(#:jar-name "maven-jar-plugin.jar"
3820 #:source-dir "src/main/java"
3821 #:tests? #f; test depends on maven-plugin-test-harness
3823 (modify-phases %standard-phases
3824 (add-before 'build 'generate-plugin.xml
3825 (generate-plugin.xml "pom.xml"
3827 "src/main/java/org/apache/maven/plugins/jar"
3829 (list "AbstractJarMojo.java" "JarMojo.java")
3830 (list "AbstractJarMojo.java" "TestJarMojo.java"))))
3832 (install-from-pom "pom.xml")))))
3834 (list maven-archiver
3837 maven-3.0-plugin-api
3838 maven-file-management
3840 java-plexus-archiver
3843 (list maven-plugin-annotations))
3844 (home-page "https://maven.apache.org/plugins/maven-jar-plugin")
3845 (synopsis "Jar builder plugin for Maven")
3846 (description "This plugin provides the capability to build jars. If you
3847 would like to sign jars please use the Maven Jarsigner Plugin instead.")
3848 (license license:asl2.0)))