1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
3 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
5 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
7 ;;; This file is part of GNU Guix.
9 ;;; GNU Guix is free software; you can redistribute it and/or modify it
10 ;;; under the terms of the GNU General Public License as published by
11 ;;; the Free Software Foundation; either version 3 of the License, or (at
12 ;;; your option) any later version.
14 ;;; GNU Guix is distributed in the hope that it will be useful, but
15 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;;; GNU General Public License for more details.
19 ;;; You should have received a copy of the GNU General Public License
20 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 (define-module (gnu packages maven)
23 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix git-download)
27 #:use-module (guix utils)
28 #:use-module (guix build-system ant)
29 #:use-module (gnu packages)
30 #:use-module (gnu packages base)
31 #:use-module (gnu packages compression)
32 #:use-module (gnu packages java)
33 #:use-module (gnu packages maven-parent-pom)
34 #:use-module (gnu packages web)
35 #:use-module (gnu packages xml)
36 #:use-module (ice-9 match))
38 (define-public maven-resolver-api
40 (name "maven-resolver-api")
45 (url "https://github.com/apache/maven-resolver")
46 (commit (string-append "maven-resolver-" version))))
47 (file-name (git-file-name name version))
50 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
51 (build-system ant-build-system)
53 `(#:jar-name "maven-resolver-api.jar"
54 #:source-dir "maven-resolver-api/src/main/java"
55 #:test-dir "maven-resolver-api/src/test"
57 (modify-phases %standard-phases
59 (install-from-pom "maven-resolver-api/pom.xml")))))
61 `(("java-asm" ,java-asm)
62 ("java-cglib" ,java-cglib)
63 ("java-hamcrest-core" ,java-hamcrest-core)
64 ("java-junit" ,java-junit)
65 ("java-mockito-1" ,java-mockito-1)
66 ("java-objenesis" ,java-objenesis)))
68 `(("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
69 (home-page "https://github.com/apache/maven-resolver")
70 (synopsis "Maven repository system API")
71 (description "This package contains the API for the maven repository system.")
72 (license license:asl2.0)))
74 (define maven-resolver-parent-pom
76 (inherit maven-resolver-api)
77 (name "maven-resolver-parent-pom")
81 (modify-phases %standard-phases
84 (add-before 'install 'fix-pom
86 (substitute* "pom.xml"
87 (("<classifier>no_aop</classifier>") ""))
90 (install-pom-file "pom.xml")))))
91 (propagated-inputs '())))
93 (define-public maven-resolver-spi
95 (inherit maven-resolver-api)
96 (name "maven-resolver-spi")
98 `(#:jar-name "maven-resolver-spi.jar"
99 #:source-dir "maven-resolver-spi/src/main/java"
100 #:test-dir "maven-resolver-spi/src/test"
102 (modify-phases %standard-phases
104 (install-from-pom "maven-resolver-spi/pom.xml")))))
106 `(("maven-resolver-api" ,maven-resolver-api)))
107 (synopsis "Maven repository system SPI")
108 (description "This package contains the service provider interface (SPI)
109 for repository system implementations and repository connectors.")))
111 (define-public maven-resolver-test-util
113 (inherit maven-resolver-api)
114 (name "maven-resolver-test-util")
116 `(#:jar-name "maven-resolver-test-util.jar"
117 #:source-dir "maven-resolver-test-util/src/main/java"
118 #:test-dir "maven-resolver-test-util/src/test"
121 `(("maven-resolver-api" ,maven-resolver-api)
122 ("maven-resolver-spi" ,maven-resolver-spi)))
123 (synopsis "Utility classes for testing the maven repository system")
124 (description "This package contains a collection of utility classes to
125 ease testing of the repository system.")))
127 (define-public maven-resolver-util
129 (inherit maven-resolver-api)
130 (name "maven-resolver-util")
132 `(#:jar-name "maven-resolver-util.jar"
133 #:source-dir "maven-resolver-util/src/main/java"
134 #:test-dir "maven-resolver-util/src/test"
136 (modify-phases %standard-phases
138 (install-from-pom "maven-resolver-util/pom.xml")))))
140 `(("maven-resolver-api" ,maven-resolver-api)))
142 `(("java-junit" ,java-junit)
143 ("java-hamcrest-core" ,java-hamcrest-core)
144 ("maven-resolver-test-util" ,maven-resolver-test-util)))
145 (synopsis "Utility classes for the maven repository system")
146 (description "This package contains a collection of utility classes to
147 ease usage of the repository system.")))
149 (define-public maven-resolver-connector-basic
151 (inherit maven-resolver-api)
152 (name "maven-resolver-connector-basic")
154 `(#:jar-name "maven-resolver-connector-basic.jar"
155 #:source-dir "maven-resolver-connector-basic/src/main/java"
156 #:test-dir "maven-resolver-connector-basic/src/test"
159 (modify-phases %standard-phases
160 (add-before 'build 'generate-sisu
162 (mkdir-p "build/classes/META-INF/sisu")
163 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
165 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
168 (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
170 `(("maven-resolver-api" ,maven-resolver-api)
171 ("maven-resolver-spi" ,maven-resolver-spi)
172 ("maven-resolver-util" ,maven-resolver-util)
173 ("java-slf4j-api" ,java-slf4j-api)))
175 `(("java-javax-inject" ,java-javax-inject)
176 ("java-junit" ,java-junit)
177 ("maven-resolver-test-util" ,maven-resolver-test-util)))
178 (synopsis "Maven repository connector implementation")
179 (description "This package contains a repository connector implementation
180 for repositories using URI-based layouts.")))
182 (define-public maven-resolver-impl
184 (inherit maven-resolver-api)
185 (name "maven-resolver-impl")
187 `(#:jar-name "maven-resolver-impl.jar"
188 #:source-dir "maven-resolver-impl/src/main/java"
189 #:test-dir "maven-resolver-impl/src/test"
191 (modify-phases %standard-phases
192 (add-before 'build 'generate-sisu
194 (mkdir-p "build/classes/META-INF/sisu")
195 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
199 ;; Build this list by looking for files containing "@Named"
200 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
201 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
202 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
203 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
204 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
205 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
206 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
207 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
208 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
209 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
210 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
211 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
212 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
213 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
214 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
215 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
216 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
217 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
218 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
219 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
220 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
221 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
222 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
225 (install-from-pom "maven-resolver-impl/pom.xml")))))
227 `(("maven-resolver-api" ,maven-resolver-api)
228 ("maven-resolver-spi" ,maven-resolver-spi)
229 ("maven-resolver-util" ,maven-resolver-util)
230 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
231 ("java-javax-inject" ,java-javax-inject)
232 ("java-guice" ,java-guice)
233 ("java-slf4j-api" ,java-slf4j-api)
234 ("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
236 `(("java-junit" ,java-junit)
237 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
239 (define-public maven-resolver-transport-wagon
241 (inherit maven-resolver-api)
242 (name "maven-resolver-transport-wagon")
244 `(#:jar-name "maven-resolver-transport-wagon.jar"
245 #:source-dir "maven-resolver-transport-wagon/src/main/java"
246 #:test-dir "maven-resolver-transport-wagon/src/test"
249 (modify-phases %standard-phases
250 (add-before 'build 'generate-sisu
252 (mkdir-p "build/classes/META-INF/sisu")
253 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
255 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
257 (add-before 'build 'generate-components.xml
259 (mkdir-p "build/classes/META-INF/plexus")
260 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
264 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
268 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
269 <role-hint>plexus</role-hint>
270 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
272 <isolated-realm>false</isolated-realm>
275 <role>org.codehaus.plexus.PlexusContainer</role>
277 <field-name>container</field-name>
282 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
283 <role-hint>plexus</role-hint>
284 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
286 <isolated-realm>false</isolated-realm>
289 <role>org.codehaus.plexus.PlexusContainer</role>
291 <field-name>container</field-name>
296 </component-set>\n"))))
299 `(("maven-resolver-api" ,maven-resolver-api)
300 ("maven-resolver-spi" ,maven-resolver-spi)
301 ("maven-resolver-util" ,maven-resolver-util)
302 ("java-javax-inject" ,java-javax-inject)
303 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
304 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
305 ("java-plexus-classworld" ,java-plexus-classworlds)
306 ("java-plexus-plexus-util" ,java-plexus-utils)
307 ("java-slf4j-api" ,java-slf4j-api)
308 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
309 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
311 `(("java-junit" ,java-junit)
312 ("java-hamcrest-core" ,java-hamcrest-core)
313 ("maven-resolver-test-util" ,maven-resolver-test-util)
314 ("java-guava" ,java-guava)
315 ("java-cglib" ,java-cglib)
316 ("java-asm" ,java-asm)
317 ("java-aopalliance" ,java-aopalliance)
318 ("java-guice" ,java-guice)))
319 (synopsis "Transport implementation for Maven")
320 (description "This package contains a transport implementation based on
321 Maven Wagon, for use in Maven.")))
323 ;; aether is the parent project that was forked into maven-resolver. It used
324 ;; to be used with older versions of Maven, and is still required for some
325 ;; plugins and their dependencies. This version is required for the plugins,
326 ;; even though there are newer versions of this project.
327 (define-public java-sonatype-aether-api
329 (name "java-sonatype-aether-api")
334 (url "https://github.com/sonatype/sonatype-aether")
335 (commit (string-append "aether-" version))))
336 (file-name (git-file-name name version))
339 "1wn9fv91n40bvlwbzy0dmh0xqibxl2mpzpnbibhqss3c0zlr1ccq"))))
340 (build-system ant-build-system)
342 `(#:jar-name "aether-api.jar"
343 #:source-dir "aether-api/src/main/java"
344 #:test-dir "aether-api/src/test"
346 (modify-phases %standard-phases
347 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
348 (replace 'install (install-from-pom "aether-api/pom.xml")))))
350 `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-6)))
351 (native-inputs `(("java-junit" ,java-junit)))
352 (home-page "https://github.com/sonatype/sonatype-aether")
353 (synopsis "Maven repository system API")
354 (description "This package contains the API for the maven repository system.")
355 (license license:asl2.0)))
357 (define-public java-sonatype-aether-spi
359 (inherit java-sonatype-aether-api)
360 (name "java-sonatype-aether-spi")
362 `(#:jar-name "aether-spi.jar"
363 #:source-dir "aether-spi/src/main/java"
364 #:tests? #f; no tests
366 (modify-phases %standard-phases
367 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
369 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
370 (synopsis "Maven repository system SPI")
371 (description "This package contains the service provider interface (SPI)
372 for repository system implementations and repository connectors.")))
374 (define-public java-sonatype-aether-test-util
376 (inherit java-sonatype-aether-api)
377 (name "java-sonatype-aether-test-util")
379 `(#:jar-name "java-sonatype-aether-test-util.jar"
380 #:source-dir "aether-test-util/src/main/java"
381 #:test-dir "aether-test-util/src/test"))
383 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
384 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)))
385 (synopsis "Utility classes for testing the maven repository system")
386 (description "This package contains a collection of utility classes to
387 ease testing of the repository system.")))
389 (define-public java-sonatype-aether-util
391 (inherit java-sonatype-aether-api)
392 (name "java-sonatype-aether-util")
394 `(#:jar-name "aether-util.jar"
395 #:source-dir "aether-util/src/main/java"
396 #:test-dir "aether-util/src/test"
398 (modify-phases %standard-phases
399 (replace 'install (install-from-pom "aether-util/pom.xml")))))
401 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
403 `(("java-junit" ,java-junit)
404 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))
405 (synopsis "Utility classes for the maven repository system")
406 (description "This package contains a collection of utility classes to
407 ease usage of the repository system.")))
409 (define-public java-sonatype-aether-impl
411 (inherit java-sonatype-aether-api)
412 (name "java-sonatype-aether-impl")
414 `(#:jar-name "aether-impl.jar"
415 #:source-dir "aether-impl/src/main/java"
416 #:test-dir "aether-impl/src/test"
418 (modify-phases %standard-phases
419 (add-before 'install 'fix-pom
421 (substitute* "aether-impl/pom.xml"
422 (("org.sonatype.sisu") "org.codehaus.plexus")
423 (("sisu-inject-plexus") "plexus-container-default"))
425 (add-after 'build 'generate-metadata
427 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
428 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
429 "--source" "src/main/java"
430 "--output" "build/classes/META-INF/plexus/components.xml"
431 "--classes" "build/classes"
432 "--descriptors" "build/classes/META-INF")
434 (add-after 'generate-metadata 'rebuild
438 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
440 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
441 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
442 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
443 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
444 ("java-plexus-container-default" ,java-plexus-container-default)
445 ("java-slf4j-api" ,java-slf4j-api)))
447 `(("java-junit" ,java-junit)
448 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
449 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))))
451 ;; Again, this old version is required by some maven plugins
452 (define-public java-eclipse-aether-api
454 (name "java-eclipse-aether-api")
459 (url "https://github.com/eclipse/aether-core")
460 (commit "aether-1.0.2.v20150114")))
461 (file-name (git-file-name name version))
464 "14d336nn0kh5ddf23j37va3hd8gaai19llrpxhf4bcc7g7sgdqxs"))))
465 (build-system ant-build-system)
467 `(#:jar-name "aether-api.jar"
468 #:source-dir "aether-api/src/main/java"
469 #:test-dir "aether-api/src/test"
471 (modify-phases %standard-phases
472 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
473 (replace 'install (install-from-pom "aether-api/pom.xml")))))
474 (native-inputs `(("java-junit" ,java-junit)))
475 (home-page "https://github.com/sonatype/sonatype-aether")
476 (synopsis "Maven repository system API")
477 (description "This package contains the API for the maven repository system.")
478 (license license:asl2.0)))
480 (define-public java-eclipse-aether-spi
482 (inherit java-eclipse-aether-api)
483 (name "java-eclipse-aether-spi")
485 `(#:jar-name "aether-spi.jar"
486 #:source-dir "aether-spi/src/main/java"
487 #:test-dir "aether-spi/src/test"
489 (modify-phases %standard-phases
490 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
492 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
493 (synopsis "Maven repository system SPI")
494 (description "This package contains the service provider interface (SPI)
495 for repository system implementations and repository connectors.")))
497 (define-public java-eclipse-aether-test-util
499 (inherit java-eclipse-aether-api)
500 (name "java-eclipse-aether-test-util")
502 `(#:jar-name "aether-test-util.jar"
503 #:source-dir "aether-test-util/src/main/java"
504 #:test-dir "aether-test-util/src/test"
506 (modify-phases %standard-phases
507 (replace 'install (install-from-pom "aether-util/pom.xml")))))
509 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
510 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)))
511 (synopsis "Utility classes for testing the maven repository system")
512 (description "This package contains a collection of utility classes to
513 ease testing of the repository system.")))
515 (define-public java-eclipse-aether-util
517 (inherit java-eclipse-aether-api)
518 (name "java-eclipse-aether-util")
520 `(#:jar-name "aether-util.jar"
521 #:source-dir "aether-util/src/main/java"
522 #:test-dir "aether-util/src/test"
524 (modify-phases %standard-phases
525 (replace 'install (install-from-pom "aether-util/pom.xml")))))
527 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
529 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
530 ("java-junit" ,java-junit)))
531 (synopsis "Utility classes for the maven repository system")
532 (description "This package contains a collection of utility classes to
533 ease usage of the repository system.")))
535 (define-public java-eclipse-aether-impl
537 (inherit java-eclipse-aether-api)
538 (name "java-eclipse-aether-impl")
540 `(#:jar-name "aether-impl.jar"
541 #:source-dir "aether-impl/src/main/java"
542 #:test-dir "aether-impl/src/test"
544 (modify-phases %standard-phases
545 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
547 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
548 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)
549 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
550 ("java-javax-inject" ,java-javax-inject)
551 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
552 ("java-guice" ,java-guice)
553 ("java-slf4j-api" ,java-slf4j-api)))
555 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
556 ("java-junit" ,java-junit)))))
558 (define-public maven-shared-utils
560 (name "maven-shared-utils")
564 (uri (string-append "mirror://apache/maven/shared/"
565 "maven-shared-utils-" version "-source-release.zip"))
568 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
569 (build-system ant-build-system)
571 `(#:jar-name "maven-shared-utils.jar"
572 #:source-dir "src/main/java"
574 (modify-phases %standard-phases
575 (add-before 'build 'fix-/bin/sh-invocation
577 (substitute* (find-files "src" ".*.java$")
578 (("/bin/sh") (which "sh")))
580 (add-before 'check 'remove-cyclic-dep
583 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
586 (install-from-pom "pom.xml")))))
588 `(("java-jansi" ,java-jansi)
589 ("java-commons-io" ,java-commons-io)
590 ("java-jsr305" ,java-jsr305)
591 ("java-plexus-container-default" ,java-plexus-container-default)
592 ("maven-parent-pom-30" ,maven-parent-pom-30)))
595 ("java-junit" ,java-junit)
596 ("java-hamcrest-core" ,java-hamcrest-core)
597 ("java-commons-lang3" ,java-commons-lang3)))
598 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
599 (synopsis "Plexus-util replacement for maven")
600 (description "This project aims to be a functional replacement for
601 plexus-utils in Maven. It is not a 100% API compatible replacement but a
602 replacement with improvements.")
603 (license license:asl2.0)))
605 (define-public maven-plugin-annotations
607 (name "maven-plugin-annotations")
611 (uri (string-append "mirror://apache/maven/"
612 "plugin-tools/maven-plugin-tools-" version
613 "-source-release.zip"))
614 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
615 (build-system ant-build-system)
617 `(#:jar-name "maven-plugin-annotations.jar"
618 #:source-dir "maven-plugin-annotations/src/main/java"
621 (modify-phases %standard-phases
623 (install-from-pom "maven-plugin-annotations/pom.xml")))))
625 `(("maven-artifact" ,maven-artifact)
626 ("maven-plugin-tools-parent-pom" ,maven-plugin-tools-parent-pom)))
629 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
630 (synopsis "Java 5 annotations to use in Mojos")
631 (description "This package contains Java 5 annotations for use in Mojos.")
632 (license license:asl2.0)))
634 (define maven-plugin-tools-parent-pom
636 (inherit maven-plugin-annotations)
637 (name "maven-plugin-tools-parent-pom")
641 (modify-phases %standard-phases
645 (install-pom-file "pom.xml")))))
646 (propagated-inputs '())))
648 (define-public maven-wagon-provider-api
650 (name "maven-wagon-provider-api")
654 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
655 "wagon-" version "-source-release.zip"))
658 "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
659 (build-system ant-build-system)
661 `(#:jar-name "maven-wagon-provider-api.jar"
662 #:source-dir "wagon-provider-api/src/main/java"
663 #:test-dir "wagon-provider-api/src/test"
665 (modify-phases %standard-phases
667 (install-from-pom "wagon-provider-api/pom.xml")))))
669 `(("java-plexus-utils" ,java-plexus-utils)
670 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
673 ("java-junit" ,java-junit)
674 ("java-easymock" ,java-easymock)))
675 (home-page "https://maven.apache.org/wagon")
676 (synopsis "Transport abstraction for Maven")
677 (description "Maven Wagon is a transport abstraction that is used in Maven's
678 artifact and repository handling code.")
679 (license license:asl2.0)))
681 (define maven-wagon-parent-pom
683 (inherit maven-wagon-provider-api)
687 (modify-phases %standard-phases
691 (install-pom-file "pom.xml")))))
693 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
695 `(("unzip" ,unzip)))))
697 (define-public maven-wagon-provider-test
699 (inherit maven-wagon-provider-api)
700 (name "maven-wagon-provider-test")
702 `(#:jar-name "maven-wagon-provider-test.jar"
703 #:source-dir "wagon-provider-test/src/main/java"
704 #:tests? #f; no tests
707 `(("java-plexus-utils" ,java-plexus-utils)
708 ("java-plexus-container-default" ,java-plexus-container-default)
709 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
710 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
711 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
712 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
713 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
714 ("java-slf4j-api" ,java-slf4j-api)
715 ("java-javaee-servletapi" ,java-javaee-servletapi)
716 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
717 (synopsis "Test classes from maven-wagon")
718 (description "Maven Wagon is a transport abstraction that is used in Maven's
719 artifact and repository handling code. This package contains common test
720 classes used in multiple maven-wagon components.")))
722 (define-public maven-wagon-file
724 (inherit maven-wagon-provider-api)
725 (name "maven-wagon-file")
727 `(#:jar-name "maven-wagon-file.jar"
728 #:source-dir "wagon-providers/wagon-file/src/main/java"
729 #:test-dir "wagon-providers/wagon-file/src/test"
732 (modify-phases %standard-phases
733 (add-before 'check 'fix-paths
735 ;; Tests assume they are run by maven, which copies test resources
736 ;; to target. Our ant-build-system does the same, but with the
738 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
739 (("target") "build"))
741 (add-after 'build 'generate-metadata
743 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
744 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
745 "--source" "wagon-providers/wagon-file/src/main/java"
746 "--output" "build/classes/META-INF/plexus/components.xml"
747 "--classes" "build/classes"
748 "--descriptors" "build/classes/META-INF")
750 (add-after 'generate-metadata 'rebuild
755 `(("java-plexus-utils" ,java-plexus-utils)
756 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
758 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
759 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
760 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
761 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
762 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
763 ("java-plexus-classworlds" ,java-plexus-classworlds)
764 ("java-guava" ,java-guava)
765 ("java-guice" ,java-guice)
766 ("java-javax-inject" ,java-javax-inject)
767 ("java-cglib" ,java-cglib)
768 ("java-slf4j-api" ,java-slf4j-api)
769 ("java-plexus-utils" ,java-plexus-utils)
770 ("java-plexus-cli" ,java-plexus-cli)
771 ("maven-plugin-api" ,maven-plugin-api)
772 ("maven-plugin-annotations" ,maven-plugin-annotations)
773 ("maven-core" ,maven-core)
774 ("maven-model" ,maven-model)
775 ("java-commons-cli" ,java-commons-cli)
776 ("java-qdox" ,java-qdox)
777 ("java-jdom2" ,java-jdom2)
778 ("java-asm" ,java-asm)
779 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
780 ,@(package-native-inputs maven-wagon-provider-api)))
781 (synopsis "Wagon provider that gets and puts artifacts using the file system")
782 (description "Maven Wagon is a transport abstraction that is used in Maven's
783 artifact and repository handling code. It uses providers, that are tools to
784 manage artifacts and deployment. This package contains the file provider which
785 gets and puts artifacts using the file system.")))
787 (define-public maven-wagon-tck-http
789 (inherit maven-wagon-provider-api)
790 (name "maven-wagon-tck-http")
792 `(#:jar-name "maven-wagon-tck-http.jar"
793 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
794 #:tests? #f; no tests
797 `(("java-plexus-util" ,java-plexus-utils)
798 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
799 ("java-javaee-servletapi" ,java-javaee-servletapi)
800 ("java-slf4j-api" ,java-slf4j-api)
801 ("java-commons-codec" ,java-commons-codec)
802 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
803 ("java-plexus-classworlds" ,java-plexus-classworlds)
804 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
805 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
806 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
807 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
808 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
809 (synopsis "Wagon HTTP Test Compatibility Kit")
810 (description "Maven Wagon is a transport abstraction that is used in Maven's
811 artifact and repository handling code. This package contains the HTTP
812 Test Compatibility Kit.")))
814 (define-public maven-wagon-http-shared
816 (inherit maven-wagon-provider-api)
817 (name "maven-wagon-http-shared")
819 `(#:jar-name "maven-wagon-http-shared.jar"
820 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
821 #:test-dir "wagon-providers/wagon-http-shared/src/test"
824 (modify-phases %standard-phases
825 (add-after 'build 'generate-metadata
827 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
828 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
829 "--source" "wagon-providers/wagon-http-shared/src/main/java"
830 "--output" "build/classes/META-INF/plexus/components.xml"
831 "--classes" "build/classes"
832 "--descriptors" "build/classes/META-INF")
834 (add-after 'generate-metadata 'rebuild
839 `(("java-plexus-utils" ,java-plexus-utils)
840 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
841 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
842 ("java-commons-io" ,java-commons-io)
843 ("java-jsoup" ,java-jsoup)
844 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
846 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
847 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
848 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
849 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
850 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
851 ("java-plexus-classworlds" ,java-plexus-classworlds)
852 ("java-guava" ,java-guava)
853 ("java-guice" ,java-guice)
854 ("java-javax-inject" ,java-javax-inject)
855 ("java-cglib" ,java-cglib)
856 ("java-slf4j-api" ,java-slf4j-api)
857 ("java-plexus-utils" ,java-plexus-utils)
858 ("java-plexus-cli" ,java-plexus-cli)
859 ("maven-plugin-api" ,maven-plugin-api)
860 ("maven-plugin-annotations" ,maven-plugin-annotations)
861 ("maven-core" ,maven-core)
862 ("maven-model" ,maven-model)
863 ("java-commons-cli" ,java-commons-cli)
864 ("java-qdox" ,java-qdox)
865 ("java-jdom2" ,java-jdom2)
866 ("java-asm" ,java-asm)
867 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
868 ,@(package-native-inputs maven-wagon-provider-api)))
869 (synopsis "Shared Library for wagon providers supporting HTTP.")
870 (description "Maven Wagon is a transport abstraction that is used in Maven's
871 artifact and repository handling code. It uses providers, that are tools to
872 manage artifacts and deployment. This package contains a shared library for
873 wagon providers supporting HTTP.")))
875 (define-public maven-wagon-http
877 (inherit maven-wagon-provider-api)
878 (name "maven-wagon-http")
880 `(#:jar-name "maven-wagon-http.jar"
881 #:source-dir "wagon-providers/wagon-http/src/main/java"
882 #:test-dir "wagon-providers/wagon-http/src/test"
885 ;; FIXME: javax.net.ssl.SSLHandshakeException:
886 ;; sun.security.validator.ValidatorException:
887 ;; PKIX path building failed:
888 ;; sun.security.provider.certpath.SunCertPathBuilderException:
889 ;; unable to find valid certification path to requested target
890 "**/HttpsWagonPreemptiveTest.java"
891 "**/HttpsWagonTest.java"
896 (modify-phases %standard-phases
897 (add-before 'build 'copy-resources
899 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
900 "build/classes/META-INF/plexus")
902 (add-before 'check 'fix-resource-path
904 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
905 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
906 (("src/test") "wagon-providers/wagon-http/src/test"))
909 `(("java-plexus-utils" ,java-plexus-utils)
910 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
911 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
912 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
913 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
914 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
916 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
917 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
918 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
919 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
920 ("java-plexus-container-default" ,java-plexus-container-default)
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-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-asm" ,java-asm)
938 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
939 ("java-javaee-servletapi" ,java-javaee-servletapi)
940 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
941 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
942 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
943 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
944 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
945 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
946 ("java-hamcrest-core" ,java-hamcrest-core)
947 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
948 ("java-commons-codec" ,java-commons-codec)
949 ("java-commons-io" ,java-commons-io)
950 ("java-jsoup" ,java-jsoup)
951 ("java-slf4j-simple" ,java-slf4j-simple)
952 ,@(package-native-inputs maven-wagon-provider-api)))
953 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
954 (description "Maven Wagon is a transport abstraction that is used in Maven's
955 artifact and repository handling code. It uses providers, that are tools to
956 manage artifacts and deployment. This package contains a Wagon provider that
957 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
965 (uri (string-append "mirror://apache/maven/"
966 "maven-3/" version "/source/"
967 "apache-maven-" version "-src.tar.gz"))
968 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
969 (modules '((guix build utils)))
972 (for-each delete-file (find-files "." "\\.jar$"))
975 (search-patches "maven-generate-component-xml.patch"
976 "maven-generate-javax-inject-named.patch"))))
977 (build-system ant-build-system)
981 (modify-phases %standard-phases
984 (add-before 'install 'fix-dependencies
986 (substitute* "pom.xml"
987 (("classWorldsVersion>.*")
989 "classWorldsVersion>"
990 ,(package-version java-plexus-classworlds)
991 "</classWorldsVersion>\n"))
992 (("commonsCliVersion>.*")
995 ,(package-version java-commons-cli)
996 "</commonsCliVersion>\n"))
997 (("commonsLangVersion>.*")
999 "commonsLangVersion>"
1000 ,(package-version java-commons-lang3)
1001 "</commonsLangVersion>\n"))
1002 (("plexusUtilsVersion>.*")
1004 "plexusUtilsVersion>"
1005 ,(package-version java-plexus-utils)
1006 "</plexusUtilsVersion>\n"))
1007 (("plexusInterpolationVersion>.*")
1009 "plexusInterpolationVersion>"
1010 ,(package-version java-plexus-interpolation)
1011 "</plexusInterpolationVersion>\n"))
1012 (("guiceVersion>.*")
1015 ,(package-version java-guice)
1016 "</guiceVersion>\n"))
1017 (("sisuInjectVersion>.*")
1019 "sisuInjectVersion>"
1020 ,(package-version java-eclipse-sisu-inject)
1021 "</sisuInjectVersion>\n"))
1022 (("securityDispatcherVersion>.*")
1024 "securityDispatcherVersion>"
1025 ,(package-version java-plexus-sec-dispatcher)
1026 "</securityDispatcherVersion>\n"))
1027 (("cipherVersion>.*")
1030 ,(package-version java-plexus-cipher)
1031 "</cipherVersion>\n"))
1032 (("slf4jVersion>.*")
1035 ,(package-version java-slf4j-api)
1036 "</slf4jVersion>\n"))
1037 (("<classifier>no_aop</classifier>") ""))
1040 (install-pom-file "pom.xml")))))
1042 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
1043 (home-page "https://maven.apache.org/")
1044 (synopsis "Build system")
1045 (description "Apache Maven is a software project management and comprehension
1046 tool. This package contains the Maven pom file, used by all maven components.")
1047 (license license:asl2.0)))
1049 (define-public maven-artifact
1052 (name "maven-artifact")
1054 `(#:jar-name "maven-artifact.jar"
1055 #:source-dir "maven-artifact/src/main/java"
1056 #:test-dir "maven-artifact/src/test"
1057 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
1059 (modify-phases %standard-phases
1061 (install-from-pom "maven-artifact/pom.xml")))))
1063 `(("java-plexus-utils" ,java-plexus-utils)
1064 ("java-commons-lang3" ,java-commons-lang3)
1065 ("maven-pom" ,maven-pom)))
1067 `(("java-junit" ,java-junit)))
1068 (description "Apache Maven is a software project management and comprehension
1069 tool. This package contains the Maven Artifact classes, providing the
1070 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
1071 jar file is executable and provides a little tool to display how Maven parses
1072 and compares versions:")))
1074 (define-public maven-model
1076 (inherit maven-artifact)
1077 (name "maven-model")
1079 `(#:jar-name "maven-model.jar"
1080 #:source-dir "maven-model/src/main/java"
1081 #:test-dir "maven-model/src/test"
1083 (modify-phases %standard-phases
1084 (add-before 'build 'generate-models
1085 (lambda* (#:key inputs #:allow-other-keys)
1086 (define (modello-single-mode file version mode)
1087 (invoke "java" "org.codehaus.modello.ModelloCli"
1088 file mode "maven-model/src/main/java" version
1090 (let ((file "maven-model/src/main/mdo/maven.mdo"))
1091 (modello-single-mode file "4.0.0" "java")
1092 (modello-single-mode file "4.0.0" "xpp3-reader")
1093 (modello-single-mode file "4.0.0" "xpp3-writer")
1094 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
1096 (replace 'install (install-from-pom "maven-model/pom.xml")))))
1098 `(("java-commons-lang3" ,java-commons-lang3)
1099 ("java-plexus-utils" ,java-plexus-utils)
1100 ("maven-pom" ,maven-pom)))
1102 `(("java-modello-core" ,java-modello-core)
1104 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1105 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1106 ("java-guice" ,java-guice)
1107 ("java-cglib" ,java-cglib)
1108 ("java-asm" ,java-asm)
1109 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1110 ("java-javax-inject" ,java-javax-inject)
1111 ("java-plexus-classworlds" ,java-plexus-classworlds)
1112 ("java-guava" ,java-guava)
1113 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1114 ("java-sisu-build-api" ,java-sisu-build-api)
1116 ("java-modello-plugins-java" ,java-modello-plugins-java)
1117 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1118 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1120 ("java-junit" ,java-junit)))
1121 (description "Apache Maven is a software project management and comprehension
1122 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
1123 so really just plain Java objects.")))
1125 (define-public maven-builder-support
1127 (inherit maven-artifact)
1128 (name "maven-builder-support")
1130 `(#:jar-name "maven-builder-support.jar"
1131 #:source-dir "maven-builder-support/src/main/java"
1133 #:test-dir "maven-builder-support/src/test"
1135 (modify-phases %standard-phases
1136 (add-before 'check 'fix-paths
1138 (with-directory-excursion "maven-builder-support/src/test/java"
1140 '("org/apache/maven/building/FileSourceTest.java"
1141 "org/apache/maven/building/UrlSourceTest.java")
1142 (("target/test-classes") "maven-builder-support/src/test/resources")))
1144 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
1146 `(("maven-pom" ,maven-pom)))
1148 `(("java-junit" ,java-junit)))
1149 (description "Apache Maven is a software project management and comprehension
1150 tool. This package contains a support library for descriptor builders (model,
1151 setting, toolchains)")))
1153 (define-public maven-settings
1155 (inherit maven-artifact)
1156 (name "maven-settings")
1158 `(#:jar-name "maven-settings.jar"
1159 #:source-dir "maven-settings/src/main/java"
1160 #:tests? #f; no tests
1162 (modify-phases %standard-phases
1163 (add-before 'build 'generate-models
1164 (lambda* (#:key inputs #:allow-other-keys)
1165 (define (modello-single-mode file version mode)
1166 (invoke "java" "org.codehaus.modello.ModelloCli"
1167 file mode "maven-settings/src/main/java" version
1169 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
1170 (modello-single-mode file "1.1.0" "java")
1171 (modello-single-mode file "1.1.0" "xpp3-reader")
1172 (modello-single-mode file "1.1.0" "xpp3-writer"))
1174 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
1176 `(("java-plexus-utils" ,java-plexus-utils)
1177 ("maven-pom" ,maven-pom)))
1179 `(("java-modello-core" ,java-modello-core)
1181 ;("container" ,java-plexus-container-default)
1182 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1183 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1184 ("java-guice" ,java-guice)
1185 ("java-cglib" ,java-cglib)
1186 ("java-asm" ,java-asm)
1187 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1188 ("java-javax-inject" ,java-javax-inject)
1189 ("java-plexus-classworlds" ,java-plexus-classworlds)
1190 ("java-plexus-utils" ,java-plexus-utils)
1191 ("java-guava" ,java-guava)
1192 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1193 ("java-sisu-build-api" ,java-sisu-build-api)
1195 ("java-modello-plugins-java" ,java-modello-plugins-java)
1196 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1197 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1198 (description "Apache Maven is a software project management and comprehension
1199 tool. This package contains strictly the model for Maven settings, that is
1200 simply plain java objects.")))
1202 (define-public maven-settings-builder
1204 (inherit maven-artifact)
1205 (name "maven-settings-builder")
1207 `(#:jar-name "maven-settings-builder.jar"
1208 #:source-dir "maven-settings-builder/src/main/java"
1210 #:test-dir "maven-settings-builder/src/test"
1212 (modify-phases %standard-phases
1213 (add-before 'build 'generate-components.xml
1215 (mkdir-p "build/classes/META-INF/plexus")
1216 (chmod "components.sh" #o755)
1217 (invoke "./components.sh" "maven-settings-builder/src/main/java"
1218 "build/classes/META-INF/plexus/components.xml")
1220 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1222 `(("java-plexus-utils" ,java-plexus-utils)
1223 ("java-plexus-interpolation" ,java-plexus-interpolation)
1224 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1225 ("maven-builder-support" ,maven-builder-support)
1226 ("maven-settings" ,maven-settings)
1227 ("maven-pom" ,maven-pom)))
1229 `(("java-junit" ,java-junit)
1230 ("java-plexus-component-annotations" ,java-plexus-component-annotations)))
1231 (description "Apache Maven is a software project management and comprehension
1232 tool. This package contains the effective model builder, with profile activation,
1233 inheritance, interpolation, @dots{}")))
1235 (define-public maven-model-builder
1237 (inherit maven-artifact)
1238 (name "maven-model-builder")
1240 `(#:jar-name "maven-model-builder.jar"
1241 #:source-dir "maven-model-builder/src/main/java"
1243 #:test-dir "maven-model-builder/src/test"
1245 (modify-phases %standard-phases
1246 (add-before 'build 'copy-resources
1248 (copy-recursively "maven-model-builder/src/main/resources"
1251 (add-before 'build 'generate-components.xml
1253 (mkdir-p "build/classes/META-INF/plexus")
1254 (chmod "components.sh" #o755)
1255 (invoke "./components.sh" "maven-model-builder/src/main/java"
1256 "build/classes/META-INF/plexus/components.xml")
1258 (add-before 'check 'fix-paths
1260 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
1261 (("src/test") "maven-model-builder/src/test"))
1264 (install-from-pom "maven-model-builder/pom.xml")))))
1266 `(("java-plexus-interpolation" ,java-plexus-interpolation)
1267 ("java-plexus-utils" ,java-plexus-utils)
1268 ("maven-artifact" ,maven-artifact)
1269 ("maven-builder-support" ,maven-builder-support)
1270 ("maven-model" ,maven-model)
1271 ("maven-pom" ,maven-pom)))
1273 `(("java-junit" ,java-junit)
1274 ("java-guava" ,java-guava)
1275 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1276 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1277 ("guice" ,java-guice)
1278 ("java-cglib" ,java-cglib)
1279 ("java-asm" ,java-asm)
1280 ("sisu-inject" ,java-eclipse-sisu-inject)
1281 ("javax-inject" ,java-javax-inject)
1282 ("java-xmlunit" ,java-xmlunit)
1283 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
1284 ("xbean" ,java-geronimo-xbean-reflect)
1285 ("classworlds" ,java-plexus-classworlds)))
1286 (description "Apache Maven is a software project management and comprehension
1287 tool. This package contains the effective model builder, with profile activation,
1288 inheritance, interpolation, @dots{}")))
1290 (define-public maven-repository-metadata
1292 (inherit maven-artifact)
1293 (name "maven-repository-metadata")
1295 `(#:jar-name "maven-repository-metadata.jar"
1296 #:source-dir "maven-repository-metadata/src/main/java"
1298 #:tests? #f; no tests
1300 (modify-phases %standard-phases
1301 (add-before 'build 'generate-models
1302 (lambda* (#:key inputs #:allow-other-keys)
1303 (define (modello-single-mode file version mode)
1304 (invoke "java" "org.codehaus.modello.ModelloCli"
1305 file mode "maven-repository-metadata/src/main/java" version
1307 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1308 (modello-single-mode file "1.1.0" "java")
1309 (modello-single-mode file "1.1.0" "xpp3-reader")
1310 (modello-single-mode file "1.1.0" "xpp3-writer"))
1313 (install-from-pom "maven-repository-metadata/pom.xml")))))
1315 `(("java-plexus-utils" ,java-plexus-utils)
1316 ("maven-pom" ,maven-pom)))
1318 `(("modello" ,java-modello-core)
1320 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1321 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1322 ("java-guice" ,java-guice)
1323 ("java-cglib" ,java-cglib)
1324 ("java-asm" ,java-asm)
1325 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1326 ("java-javax-inject" ,java-javax-inject)
1327 ("java-plexus-utils" ,java-plexus-utils)
1328 ("java-plexus-classworlds" ,java-plexus-classworlds)
1329 ("java-guava" ,java-guava)
1330 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1331 ("java-sisu-build-api" ,java-sisu-build-api)
1333 ("java-modello-plugins-java" ,java-modello-plugins-java)
1334 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1335 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1336 (description "Apache Maven is a software project management and comprehension
1337 tool. This package contains strictly the model for Maven Repository Metadata,
1338 so really just plain objects.")))
1340 (define-public maven-resolver-provider
1342 (inherit maven-artifact)
1343 (name "maven-resolver-provider")
1345 `(#:jar-name "maven-resolver-provider.jar"
1346 #:source-dir "maven-resolver-provider/src/main/java"
1347 #:test-dir "maven-resolver-provider/src/test"
1349 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1351 (modify-phases %standard-phases
1352 (add-before 'build 'generate-sisu-named
1354 (mkdir-p "build/classes/META-INF/sisu")
1355 (chmod "./sisu.sh" #o755)
1356 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1357 "build/classes/META-INF/sisu/javax.inject.Named")
1360 (install-from-pom "maven-resolver-provider/pom.xml")))))
1362 `(("maven-model" ,maven-model)
1363 ("maven-model-builder" ,maven-model-builder)
1364 ("maven-resolver-spi" ,maven-resolver-spi)
1365 ("maven-resolver-api" ,maven-resolver-api)
1366 ("maven-resolver-impl" ,maven-resolver-impl)
1367 ("maven-resolver-util" ,maven-resolver-util)
1368 ("maven-builder-support" ,maven-builder-support)
1369 ("maven-repository-metadata" ,maven-repository-metadata)
1370 ("java-plexus-utils" ,java-plexus-utils)
1371 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1372 ("java-guice" ,java-guice)
1373 ("java-javax-inject" ,java-javax-inject)))))
1375 (define-public maven-plugin-api
1377 (inherit maven-artifact)
1378 (name "maven-plugin-api")
1380 `(#:jar-name "maven-plugin-api.jar"
1381 #:source-dir "maven-plugin-api/src/main/java"
1383 #:test-dir "maven-plugin-api/src/test"
1385 (modify-phases %standard-phases
1386 (add-before 'build 'generate-models
1387 (lambda* (#:key inputs #:allow-other-keys)
1388 (define (modello-single-mode file version mode)
1389 (invoke "java" "org.codehaus.modello.ModelloCli"
1390 file mode "maven-plugin-api/src/main/java" version
1392 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1393 (modello-single-mode file "1.0.0" "java")
1394 (modello-single-mode file "1.0.0" "xpp3-reader")
1395 (modello-single-mode file "1.0.0" "xpp3-writer"))
1398 (install-from-pom "maven-plugin-api/pom.xml")))))
1400 `(("maven-artifact" ,maven-artifact)
1401 ("maven-model" ,maven-model)
1402 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1403 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1404 ("guice" ,java-guice)
1405 ("java-cglib" ,java-cglib)
1406 ("java-asm" ,java-asm)
1407 ("sisu-inject" ,java-eclipse-sisu-inject)
1408 ("javax-inject" ,java-javax-inject)
1409 ("utils" ,java-plexus-utils)))
1411 `(("modello" ,java-modello-core)
1413 ("classworlds" ,java-plexus-classworlds)
1414 ("guava" ,java-guava)
1415 ("xbean" ,java-geronimo-xbean-reflect)
1416 ("build-api" ,java-sisu-build-api)
1418 ("java" ,java-modello-plugins-java)
1419 ("xml" ,java-modello-plugins-xml)
1420 ("xpp3" ,java-modello-plugins-xpp3)
1422 ("java-junit" ,java-junit)))
1423 (description "Apache Maven is a software project management and comprehension
1424 tool. This package contains strictly the API for plugins -- composed of goals
1425 implemented by Mojos -- development.
1427 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1428 generally generated from plugin sources using maven-plugin-plugin.")))
1430 (define-public maven-core-bootstrap
1433 (inherit maven-artifact)
1436 `(#:jar-name "maven-core.jar"
1437 #:source-dir "src/main/java"
1439 ;; Tests need maven-compat, which requires maven-core
1442 (modify-phases %standard-phases
1443 (add-before 'configure 'chdir
1445 ;; Required for generating components.xml in maven-core
1446 (chdir "maven-core")
1448 (add-before 'build 'copy-resources
1450 (mkdir-p "build/classes/")
1451 (copy-recursively "src/main/resources" "build/classes")
1453 (add-after 'copy-resources 'fill-properties
1455 ;; This file controls the output of some mvn subcommands, such as
1457 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1458 (("\\$\\{buildNumber\\}") "guix_build")
1459 (("\\$\\{timestamp\\}") "0")
1460 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1461 (("\\$\\{distributionId\\}") "apache-maven")
1462 (("\\$\\{distributionShortName\\}") "Maven")
1463 (("\\$\\{distributionName\\}") "Apache Maven"))
1465 (add-before 'build 'generate-sisu-named
1467 (mkdir-p "build/classes/META-INF/sisu")
1468 (chmod "../sisu.sh" #o755)
1469 (invoke "../sisu.sh" "src/main/java"
1470 "build/classes/META-INF/sisu/javax.inject.Named")
1472 (add-before 'build 'generate-models
1473 (lambda* (#:key inputs #:allow-other-keys)
1474 (define (modello-single-mode file version mode)
1475 (invoke "java" "org.codehaus.modello.ModelloCli"
1476 file mode "src/main/java" version
1478 (let ((file "src/main/mdo/toolchains.mdo"))
1479 (modello-single-mode file "1.1.0" "java")
1480 (modello-single-mode file "1.1.0" "xpp3-reader")
1481 (modello-single-mode file "1.1.0" "xpp3-writer"))
1483 (add-before 'install 'fix-pom
1485 (substitute* "pom.xml"
1486 (("<classifier>no_aop</classifier>") ""))
1489 (install-from-pom "pom.xml")))))
1491 `(("maven-artifact" ,maven-artifact)
1492 ("maven-resolver-provider" ,maven-resolver-provider)
1493 ("maven-builder-support" ,maven-builder-support)
1494 ("maven-model" ,maven-model)
1495 ("maven-model-builder" ,maven-model-builder)
1496 ("maven-settings" ,maven-settings)
1497 ("maven-settings-builder" ,maven-settings-builder)
1498 ("maven-plugin-api" ,maven-plugin-api)
1499 ("maven-repository-metadata" ,maven-repository-metadata)
1500 ("maven-shared-utils" ,maven-shared-utils)
1501 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1502 ("java-plexus-utils" ,java-plexus-utils)
1503 ("java-commons-lang3" ,java-commons-lang3)
1504 ("java-guava" ,java-guava)
1505 ("java-guice" ,java-guice)
1506 ("maven-resolver-api" ,maven-resolver-api)
1507 ("maven-resolver-spi" ,maven-resolver-spi)
1508 ("maven-resolver-util" ,maven-resolver-util)
1509 ("maven-resolver-impl" ,maven-resolver-impl)
1510 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1511 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1512 ("java-javax-inject" ,java-javax-inject)
1513 ("java-plexus-classworld" ,java-plexus-classworlds)))
1515 `(("java-modello-core" ,java-modello-core)
1516 ("java-cglib" ,java-cglib)
1517 ("java-asm" ,java-asm)
1518 ("java-plexus-classworlds" ,java-plexus-classworlds)
1519 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1520 ("java-sisu-build-api" ,java-sisu-build-api)
1521 ("java-modello-plugins-java" ,java-modello-plugins-java)
1522 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1523 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1525 ("java-junit" ,java-junit)
1526 ("java-mockito-1" ,java-mockito-1)
1527 ("java-commons-jxpath" ,java-commons-jxpath)))
1528 (description "Apache Maven is a software project management and comprehension
1529 tool. This package contains the maven core classes managing the whole build
1532 (define-public maven-core
1534 (inherit maven-core-bootstrap)
1536 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1538 `(modify-phases ,phases
1539 (add-before 'build 'modify-metainf
1541 (substitute* "build.xml"
1542 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1544 (add-before 'build 'add-maven-files
1546 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1547 (copy-file "pom.xml"
1548 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1549 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1551 (format #t "version=~a~%
1552 groupId=org.apache.maven~%
1553 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1555 (add-after 'build 'generate-metadata
1557 (define (components file)
1558 (let ((sxml (with-input-from-file file
1559 (lambda _ (xml->sxml (current-input-port)
1560 #:trim-whitespace? #t)))))
1561 ;; Select the list of <component>s inside the <component-set>
1562 ;; and <components>.
1563 ((@ (ice-9 match) match) sxml
1567 ('components x ...))) x))))
1568 (use-modules (sxml simple))
1569 (delete-file "build/classes/META-INF/plexus/components.xml")
1570 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1571 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1572 "--source" "build/classes/META-INF/plexus"
1573 "--output" "build/classes/META-INF/plexus/components.t.xml"
1574 "--classes" "build/classes"
1575 "--descriptors" "build/classes")
1576 ;; Now we merge all other components from hand-written xml
1577 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1578 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1579 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1580 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1581 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1583 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1587 ,@(append generated-xml components-xml
1588 default-bindings-xml
1589 artifact-handlers-xml)))))))
1591 (add-after 'generate-metadata 'rebuild
1593 (invoke "ant" "jar")
1596 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1597 ("java-commons-cli" ,java-commons-cli)
1598 ("java-plexus-cli" ,java-plexus-cli)
1599 ("java-jdom2" ,java-jdom2)
1600 ("java-qdox" ,java-qdox)
1601 ("maven-core-boot" ,maven-core-bootstrap)
1602 ,@(package-native-inputs maven-core-bootstrap)))))
1604 (define-public maven-embedder
1606 (inherit maven-artifact)
1607 (name "maven-embedder")
1609 `(#:jar-name "maven-embedder.jar"
1610 #:source-dir "maven-embedder/src/main/java"
1611 #:test-dir "maven-embedder/src/test"
1612 #:test-exclude (list "**/MavenCliTest.java")
1615 (modify-phases %standard-phases
1616 (add-before 'build 'generate-sisu-named
1618 (mkdir-p "build/classes/META-INF/sisu")
1619 (chmod "sisu.sh" #o755)
1620 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1621 "build/classes/META-INF/sisu/javax.inject.Named")
1623 (add-before 'build 'generate-models
1624 (lambda* (#:key inputs #:allow-other-keys)
1625 (define (modello-single-mode file version mode)
1626 (invoke "java" "org.codehaus.modello.ModelloCli"
1627 file mode "maven-embedder/src/main/java" version
1629 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1630 (modello-single-mode file "1.0.0" "java")
1631 (modello-single-mode file "1.0.0" "xpp3-reader")
1632 (modello-single-mode file "1.0.0" "xpp3-writer"))
1634 (add-before 'check 'fix-test-paths
1636 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1637 (("target/test-classes") "build/test-classes"))
1639 (add-before 'check 'fix-test-compilation
1641 ;; Tests are in the java/ subdir. Other subdirectories contain
1642 ;; additional test plugins, with duplicate classes, so we can't
1643 ;; compile them. Also, they are meant to be built with maven, to
1644 ;; test its build process.
1645 (substitute* "build.xml"
1646 (("srcdir=\"maven-embedder/src/test\"")
1647 "srcdir=\"maven-embedder/src/test/java\""))
1650 (install-from-pom "maven-embedder/pom.xml")))))
1652 `(("maven-core" ,maven-core)
1653 ("maven-artifact" ,maven-artifact)
1654 ("maven-plugin-api" ,maven-plugin-api)
1655 ("maven-builder-support" ,maven-builder-support)
1656 ("maven-model" ,maven-model)
1657 ("maven-model-builder" ,maven-model-builder)
1658 ("maven-settings" ,maven-settings)
1659 ("maven-settings-builder" ,maven-settings-builder)
1660 ("maven-shared-utils" ,maven-shared-utils)
1661 ("java-plexus-classworlds" ,java-plexus-classworlds)
1662 ("java-plexus-util" ,java-plexus-utils)
1663 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1664 ("java-plexus-cipher" ,java-plexus-cipher)
1665 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1666 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1667 ("maven-resolevr-util" ,maven-resolver-util)
1668 ("maven-resolevr-api" ,maven-resolver-api)
1669 ("java-logback-core" ,java-logback-core)
1670 ("java-logback-classic" ,java-logback-classic)
1671 ("java-commons-cli" ,java-commons-cli)
1672 ("java-commons-io" ,java-commons-io)
1673 ("java-commons-lang3" ,java-commons-lang3)
1674 ("java-guava" ,java-guava)
1675 ("java-guice" ,java-guice)
1676 ("java-javax-inject" ,java-javax-inject)
1677 ("java-slf4j-api" ,java-slf4j-api)
1678 ("java-slf4j-simple" ,java-slf4j-simple)
1679 ("java-jsr250" ,java-jsr250)))
1681 `(("java-modello-core" ,java-modello-core)
1682 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1683 ("java-sisu-build-api" ,java-sisu-build-api)
1684 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1685 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1686 ("java-cglib" ,java-cglib)
1687 ("java-asm" ,java-asm)
1688 ("java-modello-plugins-java" ,java-modello-plugins-java)
1689 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1690 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1692 ("java-junit" ,java-junit)
1693 ("java-objenesis" ,java-objenesis)
1694 ("java-mockito-1" ,java-mockito-1)
1695 ("java-hamcrest-core" ,java-hamcrest-core)))
1696 (description "Apache Maven is a software project management and comprehension
1697 tool. This package contains a Maven embeddable component, with CLI and
1698 logging support.")))
1700 (define-public maven-compat
1702 (inherit maven-artifact)
1703 (name "maven-compat")
1705 `(#:jar-name "maven-compat.jar"
1706 #:source-dir "src/main/java"
1708 #:test-dir "src/test"
1710 (modify-phases %standard-phases
1711 ;; Tests assume we're in this directory
1712 (add-before 'configure 'chdir
1714 (chdir "maven-compat")
1716 (add-before 'build 'recreate-removed-jar
1718 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1720 (with-directory-excursion "src/test/resources"
1721 (with-output-to-file "artifact-install/artifact-1.0.jar"
1723 (format #t "dummy~%")))
1726 (with-output-to-file file
1728 (format #t "foo~%"))))
1729 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1730 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1731 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1732 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1733 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1734 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1735 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1736 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1737 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1738 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1739 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1740 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1741 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1742 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1743 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1744 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1745 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1746 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1747 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1748 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1749 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1750 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1751 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1752 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1753 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1754 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1755 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1756 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1757 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1758 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1759 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1760 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1761 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1762 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1763 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1764 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1765 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1766 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1767 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1768 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1769 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1770 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1771 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1772 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1773 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1774 (with-directory-excursion "local-repo/snapshot-test/jars"
1777 (with-output-to-file file
1780 (format #t "local"))))
1781 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1782 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1783 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1786 (with-directory-excursion
1787 (string-append "src/test/remote-repo/org/apache/maven/its/"
1789 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1792 (copy-file (string-append letter "-0.1.pom")
1793 (string-append dir "/pom.xml"))
1794 (with-output-to-file (string-append dir "/pom.properties")
1796 (format #t "version=0.1~%")
1797 (format #t "groupId=org.apache.maven.its")
1798 (format #t (string-append "artifactId=" letter))))
1799 (with-output-to-file "META-INF/MANIFEST.MF"
1801 (format #t "Manifest-Version: 1.0~%"))))
1802 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1803 (string-append letter "-0.1.jar") "META-INF")))
1806 (add-before 'build 'generate-models
1807 (lambda* (#:key inputs #:allow-other-keys)
1808 (define (modello-single-mode file version mode)
1809 (invoke "java" "org.codehaus.modello.ModelloCli"
1810 file mode "src/main/java" version
1812 (let ((file "src/main/mdo/profiles.mdo"))
1813 (modello-single-mode file "1.0.0" "java")
1814 (modello-single-mode file "1.0.0" "xpp3-reader")
1815 (modello-single-mode file "1.0.0" "xpp3-writer"))
1816 (let ((file "src/main/mdo/paramdoc.mdo"))
1817 (modello-single-mode file "1.0.0" "java")
1818 (modello-single-mode file "1.0.0" "xpp3-reader")
1819 (modello-single-mode file "1.0.0" "xpp3-writer"))
1821 (add-after 'build 'generate-metadata
1823 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1824 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1825 "--source" "src/main/java"
1826 "--output" "build/classes/META-INF/plexus/components.xml"
1827 "--classes" "build/classes"
1828 "--descriptors" "build/classes/META-INF")
1830 (add-before 'check 'build-tests
1832 (invoke "ant" "compile-tests")
1834 (add-after 'build-tests 'generate-test-metadata
1836 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1838 ":build/test-classes")
1839 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1840 "--source" "src/test/java"
1841 "--output" "build/test-classes/META-INF/plexus/components.xml"
1842 "--classes" "build/test-classes"
1843 "--descriptors" "build/test-classes/META-INF")
1845 (add-after 'generate-metadata 'rebuild
1847 (invoke "ant" "jar")
1850 (install-from-pom "pom.xml")))))
1852 `(("maven-artifact" ,maven-artifact)
1853 ("maven-repository-metadata" ,maven-repository-metadata)
1854 ("maven-builder-support" ,maven-builder-support)
1855 ("maven-model" ,maven-model)
1856 ("maven-model-builder" ,maven-model-builder)
1857 ("maven-settings" ,maven-settings)
1858 ("maven-settings-builder" ,maven-settings-builder)
1859 ("maven-core" ,maven-core)
1860 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1861 ("maven-wagon-file" ,maven-wagon-file)
1862 ("maven-resolver-api" ,maven-resolver-api)
1863 ("maven-resolver-util" ,maven-resolver-util)
1864 ("maven-resolver-spi" ,maven-resolver-spi)
1865 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1867 `(("java-modello-core" ,java-modello-core)
1868 ("java-plexus-utils" ,java-plexus-utils)
1869 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1870 ("java-plexus-classworlds" ,java-plexus-classworlds)
1871 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1872 ("java-sisu-build-api" ,java-sisu-build-api)
1873 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1874 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1875 ("java-javax-inject" ,java-javax-inject)
1876 ("java-guice" ,java-guice)
1877 ("java-guava" ,java-guava)
1878 ("java-cglib" ,java-cglib)
1879 ("java-asm" ,java-asm)
1880 ("java-modello-plugins-java" ,java-modello-plugins-java)
1881 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1882 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1884 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1885 ("java-commons-cli" ,java-commons-cli)
1886 ("java-plexus-cli" ,java-plexus-cli)
1887 ("java-jdom2" ,java-jdom2)
1888 ("maven-plugin-api" ,maven-plugin-api)
1889 ("java-qdox" ,java-qdox)
1891 ("java-plexus-cipher" ,java-plexus-cipher)
1892 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1893 ("java-jsr250" ,java-jsr250)
1894 ("java-cdi-api" ,java-cdi-api)
1895 ("java-junit" ,java-junit)
1896 ("maven-resolver-impl" ,maven-resolver-impl)
1897 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1898 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1899 ("java-commons-lang3" ,java-commons-lang3)
1900 ("java-aop" ,java-aopalliance)
1901 ("maven-resolver-provider" ,maven-resolver-provider)
1902 ("java-slf4j-api" ,java-slf4j-api)
1903 ("java-slf4j-simple" ,java-slf4j-simple)
1904 ,@(package-inputs java-slf4j-api)))
1905 (description "Apache Maven is a software project management and comprehension
1906 tool. This package contains Maven2 classes maintained as compatibility
1907 layer for plugins that need to keep Maven2 compatibility.")))
1909 (define-public maven
1911 (inherit maven-artifact)
1915 (modify-phases %standard-phases
1917 (lambda* (#:key inputs #:allow-other-keys)
1918 ;; Recreate the configuration for the loader
1919 (with-output-to-file "apache-maven/src/bin/m2.conf"
1921 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1923 (format #t "set maven.conf default ${maven.home}/conf~%")
1925 (format #t "[plexus.core]~%")
1926 (format #t "load ${maven.conf}/logging~%")
1927 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1928 ;; Reference every jar so plexus-classworlds can find them.
1930 (lambda (dependency)
1933 (format #t "load ~a~%" file))
1934 (find-files (assoc-ref inputs dependency) ".*.jar$")))
1935 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1936 "maven-builder-support" "maven-model" "maven-model-builder"
1937 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1938 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1939 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1940 "maven-resolver-connector-basic" "maven-resolver-provider"
1941 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1942 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1943 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1944 "maven-wagon-http-shared" "maven-wagon-tck-http"
1945 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1946 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1947 "java-javax-inject" "java-plexus-component-annotations"
1948 "java-plexus-utils" "java-plexus-interpolation"
1949 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1950 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1951 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1952 "java-slf4j-simple"))))
1953 (substitute* "apache-maven/src/bin/mvn"
1958 (assoc-ref inputs "java-plexus-classworlds")
1961 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1965 (lambda* (#:key outputs #:allow-other-keys)
1966 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1967 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1968 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1969 (for-each (lambda (file)
1970 (install-file (string-append "apache-maven/src/bin/" file)
1972 (chmod (string-append bin file) #o755))
1973 '("mvn" "mvnDebug" "mvnyjp"))
1974 (install-file "apache-maven/src/bin/m2.conf" bin)
1975 (copy-recursively "apache-maven/src/conf" conf))
1978 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1979 ("maven-artifact" ,maven-artifact)
1980 ("maven-embedder" ,maven-embedder)
1981 ("maven-core" ,maven-core)
1982 ("maven-compat" ,maven-compat)
1983 ("maven-builder-support" ,maven-builder-support)
1984 ("maven-model" ,maven-model)
1985 ("maven-model-builder" ,maven-model-builder)
1986 ("maven-settings" ,maven-settings)
1987 ("maven-settings-builder" ,maven-settings-builder)
1988 ("maven-plugin-api" ,maven-plugin-api)
1989 ("maven-repository-metadata" ,maven-repository-metadata)
1990 ("maven-shared-utils" ,maven-shared-utils)
1991 ("maven-resolver-api" ,maven-resolver-api)
1992 ("maven-resolver-spi" ,maven-resolver-spi)
1993 ("maven-resolver-util" ,maven-resolver-util)
1994 ("maven-resolver-impl" ,maven-resolver-impl)
1995 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1996 ("maven-resolver-provider" ,maven-resolver-provider)
1997 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1998 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1999 ("maven-wagon-file" ,maven-wagon-file)
2000 ("maven-wagon-http" ,maven-wagon-http)
2001 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
2002 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
2003 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
2004 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
2005 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
2006 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2007 ("java-guice" ,java-guice)
2008 ("java-aopalliance" ,java-aopalliance)
2009 ("java-cglib" ,java-cglib)
2010 ("java-asm" ,java-asm)
2011 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
2012 ("java-javax-inject" ,java-javax-inject)
2013 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2014 ("java-plexus-utils" ,java-plexus-utils)
2015 ("java-plexus-interpolation" ,java-plexus-interpolation)
2016 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2017 ("java-plexus-cipher" ,java-plexus-cipher)
2018 ("java-guava" ,java-guava)
2019 ("java-jansi" ,java-jansi)
2020 ("java-jsr250" ,java-jsr250)
2021 ("java-cdi-api" ,java-cdi-api)
2022 ("java-commons-cli" ,java-commons-cli)
2023 ("java-commons-io" ,java-commons-io)
2024 ("java-commons-lang3" ,java-commons-lang3)
2025 ("java-slf4j-api" ,java-slf4j-api)
2026 ;; TODO: replace with maven-slf4j-provider
2027 ("java-slf4j-simple" ,java-slf4j-simple)))
2029 `(("coreutils" ,coreutils)
2031 (description "Apache Maven is a software project management and comprehension
2032 tool. Based on the concept of a project object model: builds, dependency
2033 management, documentation creation, site publication, and distribution
2034 publication are all controlled from the @file{pom.xml} declarative file. Maven
2035 can be extended by plugins to utilise a number of other development tools for
2036 reporting or the build process.")))
2038 ;; Many plugins require maven 3.0 as a dependency.
2039 (define maven-3.0-pom
2046 (url "https://github.com/apache/maven")
2047 (commit (string-append "maven-" version))))
2048 (file-name (git-file-name "maven" version))
2051 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2052 (modules '((guix build utils)))
2055 (for-each delete-file (find-files "." "\\.jar$"))
2056 (for-each (lambda (file) (chmod file #o644))
2057 (find-files "." "."))
2060 (search-patches "maven-generate-component-xml.patch"
2061 "maven-generate-javax-inject-named.patch"))))
2063 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2065 (define-public maven-3.0-artifact
2067 (inherit maven-artifact)
2068 (version (package-version maven-3.0-pom))
2069 (source (package-source maven-3.0-pom))
2073 (if (equal? (car input) "maven-pom")
2074 `("maven-pom" ,maven-3.0-pom)
2076 (package-propagated-inputs maven-artifact)))))
2078 (define-public maven-3.0-model
2080 (inherit maven-model)
2081 (version (package-version maven-3.0-pom))
2082 (source (package-source maven-3.0-pom))
2086 (if (equal? (car input) "maven-pom")
2087 `("maven-pom" ,maven-3.0-pom)
2089 (package-propagated-inputs maven-artifact)))
2091 `(#:jar-name "maven-model.jar"
2092 #:source-dir "maven-model/src/main/java"
2093 #:test-dir "maven-model/src/test"
2095 ((guix build ant-build-system)
2096 (guix build java-utils)
2097 (guix build syscalls)
2100 (modify-phases %standard-phases
2101 (add-after 'configure 'use-newer-model
2102 (lambda* (#:key inputs #:allow-other-keys)
2103 ;; The model has almost not changed, but the newer version is
2104 ;; needed to prevent an error in the newer modello we have
2105 (let ((source (assoc-ref inputs "maven-source"))
2106 (dir (mkdtemp! "maven-source-XXXXXXXX")))
2107 (with-directory-excursion dir
2108 (invoke "tar" "xf" source)
2109 (copy-file (car (find-files "." "maven.mdo"))
2110 "../maven-model/src/main/mdo/maven.mdo")))
2112 (add-before 'build 'generate-models
2113 (lambda* (#:key inputs #:allow-other-keys)
2114 (define (modello-single-mode file version mode)
2115 (invoke "java" "org.codehaus.modello.ModelloCli"
2116 file mode "maven-model/src/main/java" version
2117 "false" "true" "UTF-8"))
2118 (let ((file "maven-model/src/main/mdo/maven.mdo"))
2119 (modello-single-mode file "4.0.0" "java")
2120 (modello-single-mode file "4.0.0" "xpp3-reader")
2121 (modello-single-mode file "4.0.0" "xpp3-writer")
2122 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
2125 (install-from-pom "maven-model/pom.xml")))))
2127 `(("maven-source" ,(package-source maven-pom))
2128 ,@(package-inputs maven-model)))))
2130 (define-public maven-3.0-settings
2132 (inherit maven-settings)
2133 (version (package-version maven-3.0-pom))
2134 (source (package-source maven-3.0-pom))
2138 (if (equal? (car input) "maven-pom")
2139 `("maven-pom" ,maven-3.0-pom)
2141 (package-propagated-inputs maven-settings)))))
2143 (define-public maven-3.0-settings-builder
2145 (inherit maven-settings-builder)
2146 (version (package-version maven-3.0-pom))
2147 (source (package-source maven-3.0-pom))
2149 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2155 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2156 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2157 ("maven-builder-support" #f)
2159 (package-propagated-inputs maven-settings-builder)))))))
2161 (define-public maven-3.0-model-builder
2163 (inherit maven-model-builder)
2164 (version (package-version maven-3.0-pom))
2165 (source (package-source maven-3.0-pom))
2167 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2173 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2174 ("maven-model" `("maven-model" ,maven-3.0-model))
2175 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2176 ("maven-builder-support" #f)
2178 (package-propagated-inputs maven-model-builder)))))))
2180 (define-public maven-3.0-plugin-api
2182 (inherit maven-plugin-api)
2183 (version (package-version maven-3.0-pom))
2184 (source (package-source maven-3.0-pom))
2186 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2188 `(modify-phases ,phases
2189 (add-before 'install 'fix-pom
2191 (substitute* "maven-plugin-api/pom.xml"
2192 (("org.sonatype.sisu") "org.codehaus.plexus")
2193 (("sisu-inject-plexus") "plexus-container-default"))
2199 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2200 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2201 ("maven-model" `("maven-model" ,maven-3.0-model))
2203 (package-propagated-inputs maven-model-builder)))
2205 `(("java-plexus-container-default" ,java-plexus-container-default)
2206 ,@(package-native-inputs maven-plugin-api)))))
2208 (define-public maven-3.0-repository-metadata
2210 (inherit maven-repository-metadata)
2211 (version (package-version maven-3.0-pom))
2212 (source (package-source maven-3.0-pom))
2216 (if (equal? (car input) "maven-pom")
2217 `("maven-pom" ,maven-3.0-pom)
2219 (package-propagated-inputs maven-repository-metadata)))))
2221 (define-public maven-3.0-aether-provider
2223 (inherit maven-3.0-pom)
2224 (name "maven-aether-provider")
2226 `(#:jar-name "maven-aether-provider.jar"
2227 #:source-dir "maven-aether-provider/src/main/java"
2228 #:tests? #f; no tests in 3.0
2230 (modify-phases %standard-phases
2231 (add-after 'build 'generate-metadata
2233 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2234 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2235 "--source" "src/main/java"
2236 "--output" "build/classes/META-INF/plexus/components.xml"
2237 "--classes" "build/classes"
2238 "--descriptors" "build/classes/META-INF")
2240 (add-after 'generate-metadata 'rebuild
2242 (invoke "ant" "jar")
2245 (install-from-pom "maven-aether-provider/pom.xml")))))
2247 `(("maven-model" ,maven-3.0-model)
2248 ("maven-model-builder" ,maven-3.0-model-builder)
2249 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2250 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2251 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
2252 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2253 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
2254 ("java-plexus-utils" ,java-plexus-utils)
2255 ("maven-pom" ,maven-3.0-pom)))
2257 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))))
2259 (define-public maven-3.0-core
2261 (inherit maven-core)
2262 (version (package-version maven-3.0-pom))
2263 (source (package-source maven-3.0-pom))
2265 `(#:jar-name "maven-core.jar"
2266 #:source-dir "src/main/java"
2269 (modify-phases %standard-phases
2270 (add-before 'configure 'chdir
2272 ;; Required for generating components.xml in maven-core
2273 (chdir "maven-core")
2275 (add-before 'build 'generate-models
2276 (lambda* (#:key inputs #:allow-other-keys)
2277 (define (modello-single-mode file version mode)
2278 (invoke "java" "org.codehaus.modello.ModelloCli"
2279 file mode "src/main/java" version
2280 "false" "true" "UTF-8"))
2281 (let ((file "src/main/mdo/toolchains.mdo"))
2282 (modello-single-mode file "1.0.0" "java")
2283 (modello-single-mode file "1.0.0" "xpp3-reader")
2284 (modello-single-mode file "1.0.0" "xpp3-writer"))
2286 (add-before 'build 'copy-resources
2288 (mkdir-p "build/classes/")
2289 (copy-recursively "src/main/resources" "build/classes")
2291 (add-after 'build 'generate-metadata
2293 (define (components file)
2294 (let ((sxml (with-input-from-file file
2295 (lambda _ (xml->sxml (current-input-port)
2296 #:trim-whitespace? #t)))))
2297 ;; Select the list of <component>s inside the <component-set>
2298 ;; and <components>.
2299 ((@ (ice-9 match) match) sxml
2303 ('components x ...))) x))))
2304 (use-modules (sxml simple))
2305 (delete-file "build/classes/META-INF/plexus/components.xml")
2306 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2307 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2308 "--source" "build/classes/META-INF/plexus"
2309 "--output" "build/classes/META-INF/plexus/components.t.xml"
2310 "--classes" "build/classes"
2311 "--descriptors" "build/classes")
2312 ;; Now we merge all other components from hand-written xml
2313 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
2314 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
2315 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
2316 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
2318 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2322 ,@(append generated-xml components-xml
2323 artifact-handlers-xml)))))))
2325 (add-after 'generate-metadata 'rebuild
2327 (invoke "ant" "jar")
2329 (add-before 'install 'fix-pom
2331 (substitute* "pom.xml"
2332 (("org.sonatype.sisu") "org.codehaus.plexus")
2333 (("sisu-inject-plexus") "plexus-container-default"))
2336 (install-from-pom "pom.xml")))))
2338 `(("maven-model" ,maven-3.0-model)
2339 ("maven-settings" ,maven-3.0-settings)
2340 ("maven-settings-builder" ,maven-3.0-settings-builder)
2341 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2342 ("maven-artifact" ,maven-3.0-artifact)
2343 ("maven-model-builder" ,maven-3.0-model-builder)
2344 ("maven-aether-provider" ,maven-3.0-aether-provider)
2345 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2346 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2347 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2348 ("java-plexus-interpolation" ,java-plexus-interpolation)
2349 ("java-plexus-utils" ,java-plexus-utils)
2350 ("java-plexus-classworlds" ,java-plexus-classworlds)
2351 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2352 ("java-plexus-container-default" ,java-plexus-container-default)
2353 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2354 ("maven-pom" ,maven-3.0-pom)))))
2356 (define-public maven-3.0-compat
2358 (inherit maven-compat)
2359 (version (package-version maven-3.0-pom))
2360 (source (package-source maven-3.0-pom))
2362 `(#:tests? #f ;require an old version of java-easymock
2363 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2365 `(modify-phases ,phases
2366 (add-before 'install 'fix-pom
2368 (substitute* "pom.xml"
2369 (("org.sonatype.sisu") "org.codehaus.plexus")
2370 (("sisu-inject-plexus") "plexus-container-default"))
2372 (delete 'build-tests))))))
2374 `(("maven-model" ,maven-3.0-model)
2375 ("maven-model-builder" ,maven-3.0-model-builder)
2376 ("maven-settings" ,maven-3.0-settings)
2377 ("maven-settings-builder" ,maven-3.0-settings-builder)
2378 ("maven-artifact" ,maven-3.0-artifact)
2379 ("maven-core" ,maven-3.0-core)
2380 ("maven-aether-provider" ,maven-3.0-aether-provider)
2381 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2382 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2383 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2384 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2385 ("java-plexus-utils" ,java-plexus-utils)
2386 ("java-plexus-interpolation" ,java-plexus-interpolation)
2387 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2388 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2389 ("java-plexus-container-default" ,java-plexus-container-default)
2390 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2391 ("maven-pom" ,maven-3.0-pom)))))
2393 (define-public maven-shared-utils-3.0
2395 (inherit maven-shared-utils)
2399 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2400 "maven-shared-utils-" version "-source-release.zip"))
2403 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2405 `(("maven-core" ,maven-3.0-core)
2406 ("maven-components-parent-pom" ,maven-components-parent-pom-21)
2407 ,@(package-propagated-inputs maven-shared-utils)))))
2409 (define-public maven-shared-utils-3.1
2411 (inherit maven-shared-utils)
2415 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2416 "maven-shared-utils-" version "-source-release.zip"))
2419 "0vfaas4g09ch0agrd1dcxcmhdd3w971ssvfr9mx9gi2lp5nv8w66"))))))
2421 (define-public maven-shared-io
2423 (name "maven-shared-io")
2427 (uri (string-append "mirror://apache/maven/shared/"
2428 "maven-shared-io-" version
2429 "-source-release.zip"))
2432 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2433 (build-system ant-build-system)
2435 `(#:jar-name "maven-shared-io.jar"
2436 #:source-dir "src/main/java"
2437 #:test-dir "src/test"
2439 (modify-phases %standard-phases
2440 (add-before 'build 'copy-resources
2442 (copy-recursively "src/main/resources" "build/classes/")
2443 (copy-recursively "src/test/resources" "build/test-classes/")
2446 (install-from-pom "pom.xml")))))
2448 `(("maven-artifact" ,maven-3.0-artifact)
2449 ("maven-compat" ,maven-3.0-compat)
2450 ("maven-plugin-api" ,maven-3.0-plugin-api)
2451 ("maven-shared-utils" ,maven-shared-utils)
2452 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2453 ("java-plexus-utils" ,java-plexus-utils)
2454 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2457 ("java-junit" ,java-junit)
2458 ("java-easymock" ,java-easymock)))
2459 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2460 (synopsis "Tree-based API for resolution of Maven project dependencies")
2461 (description "This package provides a tree-based API for resolution of
2462 Maven project dependencies.")
2463 (license license:asl2.0)))
2465 (define-public maven-file-management
2467 (name "maven-file-management")
2471 (uri (string-append "mirror://apache/maven/shared/"
2472 "file-management-" version
2473 "-source-release.zip"))
2476 "0wisz6sm67axrwvx8a75mb9s03h7kzkzfw8j3aaa4sx4k9ph58da"))))
2477 (build-system ant-build-system)
2479 `(#:jar-name "maven-file-management.jar"
2480 #:source-dir "src/main/java"
2482 (modify-phases %standard-phases
2483 (add-before 'build 'copy-resources
2485 (copy-recursively "src/main/resources" "build/classes/")
2487 (add-before 'build 'generate-models
2488 (lambda* (#:key inputs #:allow-other-keys)
2489 (define (modello-single-mode file version mode)
2491 "org.codehaus.modello.ModelloCli"
2492 file mode "src/main/java" version
2494 (let ((file "src/main/mdo/fileset.mdo"))
2495 (modello-single-mode file "1.1.0" "java")
2496 (modello-single-mode file "1.1.0" "xpp3-reader")
2497 (modello-single-mode file "1.1.0" "xpp3-writer"))
2500 (install-from-pom "pom.xml")))))
2502 `(("maven-plugin-api" ,maven-3.0-plugin-api)
2503 ("maven-shared-io" ,maven-shared-io)
2504 ("maven-shared-utils" ,maven-shared-utils)
2505 ("java-plexus-utils" ,java-plexus-utils)
2506 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2508 `(("java-modello-core" ,java-modello-core)
2510 ("java-modellop-plugins-java" ,java-modello-plugins-java)
2511 ("java-modellop-plugins-xpp3" ,java-modello-plugins-xpp3)
2513 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2514 (synopsis "Tree-based API for resolution of Maven project dependencies")
2515 (description "This package provides a tree-based API for resolution of
2516 Maven project dependencies.")
2517 (license license:asl2.0)))
2519 (define-public maven-archiver
2521 (name "maven-archiver")
2525 (uri (string-append "mirror://apache/maven/shared/"
2526 "maven-archiver-" version
2527 "-source-release.zip"))
2530 "1204xkqj259brpk3yscprml0lbfbyn1vn5nrgqjk44z5vx127lbw"))))
2531 (build-system ant-build-system)
2533 `(#:jar-name "maven-archiver.jar"
2534 #:source-dir "src/main/java"
2536 (modify-phases %standard-phases
2538 (install-from-pom "pom.xml")))))
2540 `(("java-commons-io" ,java-commons-io)
2541 ("maven-artifact" ,maven-3.0-artifact)
2542 ("maven-core" ,maven-3.0-core)
2543 ("maven-model" ,maven-3.0-model)
2544 ("maven-shared-utils" ,maven-shared-utils)
2545 ("java-plexus-archiver" ,java-plexus-archiver)
2546 ("java-plexus-interpolation" ,java-plexus-interpolation)
2547 ("java-plexus-utils" ,java-plexus-utils)
2548 ("maen-parent-pom" ,maven-parent-pom-33)))
2550 `(("java-junit" ,java-junit)
2551 ("java-assertj" ,java-assertj)
2553 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2554 (synopsis "Tree-based API for resolution of Maven project dependencies")
2555 (description "This package provides a tree-based API for resolution of
2556 Maven project dependencies.")
2557 (license license:asl2.0)))
2559 (define-public maven-dependency-tree
2561 (name "maven-dependency-tree")
2565 (uri (string-append "mirror://apache/maven/shared/"
2566 "maven-dependency-tree-" version
2567 "-source-release.zip"))
2570 "0mxfslxvcmjs13jl30zhcg672j970dzn6ihh79w9ajh6sfqmlds2"))))
2571 (build-system ant-build-system)
2573 `(#:jar-name "maven-dependency-tree.jar"
2574 #:source-dir "src/main/java"
2576 (modify-phases %standard-phases
2578 (install-from-pom "pom.xml")))))
2580 `(("maven-core" ,maven-3.0-core)
2581 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2582 ("maven-parent-pom" ,maven-parent-pom-30)))
2584 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
2585 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2586 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2587 ("java-eclipse-aether-util" ,java-eclipse-aether-util)))
2590 ("java-junit" ,java-junit)))
2591 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2592 (synopsis "Tree-based API for resolution of Maven project dependencies")
2593 (description "This package provides a tree-based API for resolution of
2594 Maven project dependencies.")
2595 (license license:asl2.0)))
2597 (define-public maven-common-artifact-filters
2599 (name "maven-common-artifact-filters")
2603 (uri (string-append "mirror://apache/maven/shared/"
2604 "maven-common-artifact-filters-" version
2605 "-source-release.zip"))
2608 "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
2609 (build-system ant-build-system)
2611 `(#:jar-name "maven-common-artifact-filters.jar"
2612 #:source-dir "src/main/java"
2613 #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
2615 (modify-phases %standard-phases
2616 (add-before 'build 'remove-sisu
2618 ;; Replace sisu with an existing dependency, to prevent a failure
2619 ;; when rewritting dependency versions
2620 (substitute* "pom.xml"
2621 (("sisu-inject-plexus") "maven-plugin-api")
2622 (("org.sonatype.sisu") "org.apache.maven"))
2625 (install-from-pom "pom.xml")))))
2627 `(("maven-artifact" ,maven-3.0-artifact)
2628 ("maven-model" ,maven-3.0-model)
2629 ("maven-core" ,maven-3.0-core)
2630 ("maven-plugin-api" ,maven-3.0-plugin-api)
2631 ("maven-shared-utils" ,maven-shared-utils)
2632 ("maven-parent-pom" ,maven-parent-pom-33)
2633 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2634 ("java-sonatype-aether-util" ,java-sonatype-aether-util)))
2636 `(("maven-resolver-api" ,maven-resolver-api)
2637 ("maven-resolver-util" ,maven-resolver-util)))
2639 `(("unzip" ,unzip)))
2640 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2641 (synopsis "Tree-based API for resolution of Maven project dependencies")
2642 (description "This package provides a tree-based API for resolution of
2643 Maven project dependencies.")
2644 (license license:asl2.0)))
2646 (define-public maven-enforcer-api
2648 (name "maven-enforcer-api")
2649 (version "3.0.0-M3")
2652 (uri (string-append "mirror://apache/maven/enforcer/"
2653 "enforcer-" version "-source-release.zip"))
2656 "014cwj0dqa69nnlzcin8pk9wsjmmg71vsbcpb16cibcjpm6h9wjg"))
2658 (search-patches "maven-enforcer-api-fix-old-dependencies.patch"))))
2659 (build-system ant-build-system)
2661 `(#:jar-name "maven-enforcer-api.jar"
2662 #:source-dir "enforcer-api/src/main/java"
2663 #:tests? #f; no tests
2665 (modify-phases %standard-phases
2667 (install-from-pom "enforcer-api/pom.xml")))))
2669 `(("maven-plugin-api" ,maven-plugin-api)
2670 ("java-plexus-container-default" ,java-plexus-container-default)
2671 ("java-jsr305" ,java-jsr305)
2672 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))
2674 `(("unzip" ,unzip)))
2675 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2676 (synopsis "Tree-based API for resolution of Maven project dependencies")
2677 (description "This package provides a tree-based API for resolution of
2678 Maven project dependencies.")
2679 (license license:asl2.0)))
2681 (define maven-enforcer-parent-pom
2683 (inherit maven-enforcer-api)
2684 (name "maven-enforcer-parent-pom")
2688 (modify-phases %standard-phases
2692 (install-pom-file "pom.xml")))))
2694 `(("maven-parent-pom" ,maven-parent-pom-30)))))
2696 (define-public maven-enforcer-rules
2698 (inherit maven-enforcer-api)
2699 (name "maven-enforcer-rules")
2701 `(#:tests? #f; requires maven-plugin-testing-harness
2702 #:jar-name "maven-enforcer-rules.jar"
2703 #:source-dir "enforcer-rules/src/main/java"
2704 #:test-dir "enforcer-rules/src/test"
2706 (modify-phases %standard-phases
2708 (install-from-pom "enforcer-rules/pom.xml")))))
2710 `(("maven-artifact" ,maven-artifact)
2711 ("maven-plugin-api" ,maven-plugin-api)
2712 ("maven-core" ,maven-core)
2713 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
2714 ("java-commons-codec" ,java-commons-codec)
2715 ("java-commons-lang3" ,java-commons-lang3)
2716 ("maven-enforcer-api" ,maven-enforcer-api)
2717 ("maven-resolver-util" ,maven-resolver-util)
2718 ("java-bsh" ,java-bsh)
2719 ("maven-dependency-tree" ,maven-dependency-tree)
2720 ("maven-compat" ,maven-3.0-compat)
2721 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
2723 (define-public maven-enforcer-plugin
2725 (inherit maven-enforcer-api)
2726 (name "maven-enforcer-plugin")
2729 #:jar-name "maven-enforcer-plugin.jar"
2730 #:source-dir "maven-enforcer-plugin/src/main/java"
2732 (modify-phases %standard-phases
2733 (add-before 'build 'generate-plugin.xml
2734 (generate-plugin.xml "maven-enforcer-plugin/pom.xml"
2736 "maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/"
2738 (list "DisplayInfoMojo.java")
2739 (list "EnforceMojo.java"))))
2741 (install-from-pom "maven-enforcer-plugin/pom.xml")))))
2743 `(("maven-artifact" ,maven-artifact)
2744 ("maven-plugin-api" ,maven-plugin-api)
2745 ("maven-core" ,maven-core)
2746 ("java-plexus-utils" ,java-plexus-utils)
2747 ("maven-enforcer-api" ,maven-enforcer-api)
2748 ("maven-enforcer-rules" ,maven-enforcer-rules)
2749 ("maven-plugin-annotations" ,maven-plugin-annotations)
2750 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
2752 (define-public maven-artifact-transfer
2754 (name "maven-artifact-transfer")
2758 (uri (string-append "mirror://apache/maven/shared/"
2759 "maven-artifact-transfer-" version
2760 "-source-release.zip"))
2763 "0mkdjr3wnvaxqaq68sy7h4mqlq3xgwwp5s2anj5vbxfy4bsc1ivj"))))
2764 (build-system ant-build-system)
2766 `(#:tests? #f; require mockito 2
2767 #:jar-name "maven-artifact-transfer.jar"
2768 #:source-dir "src/main/java"
2770 (modify-phases %standard-phases
2771 (add-after 'build 'generate-metadata
2773 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2774 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2775 "--source" "src/main/java"
2776 "--output" "build/classes/META-INF/plexus/components.xml"
2777 "--classes" "build/classes"
2778 "--descriptors" "build/classes/META-INF")
2780 (add-after 'generate-metadata 'rebuild
2782 (invoke "ant" "jar")
2785 (install-from-pom "pom.xml")))))
2787 `(("java-commons-codec" ,java-commons-codec)
2788 ("maven-artifact" ,maven-3.0-artifact)
2789 ("maven-core" ,maven-3.0-core)
2790 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
2791 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2792 ("java-plexus-utils" ,java-plexus-utils)
2793 ("java-slf4j-api" ,java-slf4j-api)
2794 ("java-plexus-classworlds" ,java-plexus-classworlds)
2795 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2796 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2797 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
2798 ("java-eclipse-aether-impl" ,java-eclipse-aether-impl)))
2801 ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
2802 (home-page "https://maven.apache.org/shared/maven-artifact-transfer")
2803 (synopsis "API to install, deploy and resolve artifacts in Maven")
2804 (description "This package contains an API to install, deploy and resolve
2805 artifacts in Maven 3.")
2806 (license license:asl2.0)))
2808 (define-public maven-install-plugin
2810 (name "maven-install-plugin")
2811 (version "3.0.0-M1")
2814 (uri (string-append "mirror://apache/maven/plugins/"
2815 "maven-install-plugin-" version
2816 "-source-release.zip"))
2819 "1l9iydxririrair0i5sk2iypn9wspzbb666lc0ddg20yyr8w39dm"))))
2820 (build-system ant-build-system)
2822 `(#:tests? #f; require maven-plugin-testing-harness
2823 #:jar-name "maven-install-plugin.jar"
2824 #:source-dir "src/main/java"
2826 (modify-phases %standard-phases
2827 (add-before 'build 'fix-pom
2829 (substitute* "pom.xml"
2830 (("maven-project") "maven-core")
2831 (("maven-artifact-manager") "maven-artifact")
2834 (add-before 'build 'generate-plugin.xml
2835 (generate-plugin.xml "pom.xml"
2837 "src/main/java/org/apache/maven/plugins/install"
2839 (list "AbstractInstallMojo.java" "InstallFileMojo.java")
2840 (list "AbstractInstallMojo.java" "InstallMojo.java"))))
2842 (install-from-pom "pom.xml")))))
2844 `(("maven-artifact" ,maven-artifact)
2845 ("maven-plugin-api" ,maven-plugin-api)
2846 ("maven-compat" ,maven-compat)
2847 ("maven-artifact-transfer" ,maven-artifact-transfer)
2848 ("maven-plugins-pom-23" ,maven-plugins-pom-23)
2849 ("java-plexus-digest" ,java-plexus-digest)))
2851 `(("maven-plugin-annotations" ,maven-plugin-annotations)
2852 ("java-slf4j-api" ,java-slf4j-api)))
2854 `(("unzip" ,unzip)))
2855 (home-page "https://maven.apache.org/plugin/maven-install-plugin")
2856 (synopsis "Maven's install plugin")
2857 (description "The Install Plugin is used during the install phase to add
2858 artifact(s) to the local repository. The Install Plugin uses the information
2859 in the POM (groupId, artifactId, version) to determine the proper location for
2860 the artifact within the local repository.
2862 The local repository is the local cache where all artifacts needed for the
2863 build are stored. By default, it is located within the user's home directory
2864 (@file{~/.m2/repository}) but the location can be configured in
2865 @file{~/.m2/settings.xml} using the @code{<localRepository>} element.")
2866 (license license:asl2.0)))
2868 (define-public maven-filtering
2870 (name "maven-filtering")
2874 (uri (string-append "https://archive.apache.org/dist/maven/"
2875 "shared/maven-filtering-" version
2876 "-source-release.zip"))
2879 "09wrdhchnszd2l6h4z30ra0bv1a19qyjgac9z8zf1pn0m4nw05yz"))))
2880 (build-system ant-build-system)
2882 `(#:jar-name "maven-filtering.jar"
2883 #:source-dir "src/main/java"
2884 #:test-dir "src/test"
2885 ;; this test comes from sisu-build-api, not this package
2886 #:test-exclude (list "**/IncrementalResourceFilteringTest.java"
2887 "**/Abstract*.java")
2889 (modify-phases %standard-phases
2890 (add-after 'build 'generate-metadata
2892 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2893 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2894 "--source" "src/main/java"
2895 "--output" "build/classes/META-INF/plexus/components.xml"
2896 "--classes" "build/classes"
2897 "--descriptors" "build/classes/META-INF")
2899 (add-after 'generate-metadata 'rebuild
2901 (invoke "ant" "jar")
2903 (add-before 'check 'decompress-tests
2904 (lambda* (#:key inputs #:allow-other-keys)
2905 (let* ((build-api-source (assoc-ref inputs "java-sisu-build-api-origin"))
2906 (classes (string-append build-api-source "/src/test/java")))
2907 (copy-recursively classes "src/test/"))
2909 (add-before 'check 'fix-directory
2911 (substitute* (find-files "src/test" ".*.java$")
2912 (("target/test-classes/") "build/test-classes/"))))
2913 (add-before 'check 'copy-test-resources
2915 (copy-recursively "src/test/resources" "build/test-classes/")
2918 (install-from-pom "pom.xml")))))
2920 `(("maven-core" ,maven-3.0-core)
2921 ("maven-shared-utils" ,maven-shared-utils)
2922 ("java-plexus-utils" ,java-plexus-utils)
2923 ("java-plexus-interpolation" ,java-plexus-interpolation)
2924 ("java-sisu-build-api" ,java-sisu-build-api)
2925 ("maven-parent-pom" ,maven-parent-pom-30)))
2927 `(("java-jsr305" ,java-jsr305)))
2930 ("java-assertj" ,java-assertj)
2931 ("java-junit" ,java-junit)
2932 ("java-mockito" ,java-mockito-1)
2933 ("java-objenesis" ,java-objenesis)
2934 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
2935 ("java-sisu-build-api-origin" ,(package-source java-sisu-build-api))))
2936 (home-page "https://maven.apache.org/shared/maven-filtering")
2937 (synopsis "Shared component for all plugins that needs to filter resources")
2938 (description "This component provides an API to filter resources in Maven
2940 (license license:asl2.0)))
2942 (define-public maven-resources-plugin
2944 (name "maven-resources-plugin")
2948 (uri (string-append "https://github.com/apache/"
2949 "maven-resources-plugin/archive/"
2950 "maven-resources-plugin-" version ".tar.gz"))
2953 "1f5gnjg2xmqfxml6k0ydyd1sxxwzgnb24qn6avcc4mijwd8a84pl"))))
2954 (build-system ant-build-system)
2956 `(#:jar-name "maven-resources-plugin.jar"
2957 #:source-dir "src/main/java"
2958 #:test-dir "src/test"
2959 #:tests? #f; test depends on maven-plugin-test-harness
2961 (modify-phases %standard-phases
2962 (add-before 'build 'generate-plugin.xml
2963 (generate-plugin.xml "pom.xml" "resources"
2964 "src/main/java/org/apache/maven/plugins/resources"
2966 (list "ResourcesMojo.java" "CopyResourcesMojo.java")
2967 (list "ResourcesMojo.java")
2968 (list "ResourcesMojo.java" "TestResourcesMojo.java"))))
2970 (install-from-pom "pom.xml")))))
2972 `(("maven-plugin-api" ,maven-plugin-api)
2973 ("maven-core" ,maven-core)
2974 ("java-plexus-utils" ,java-plexus-utils)
2975 ("maven-filtering" ,maven-filtering)
2976 ("java-plexus-interpolation" ,java-plexus-interpolation)
2977 ("maven-parent-pom" ,maven-parent-pom-31)))
2979 `(("maven-plugin-annotations" ,maven-plugin-annotations)
2980 ("java-commons-io" ,java-commons-io)))
2982 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))
2983 (home-page "https://maven.apache.org/plugins/maven-resources-plugin")
2984 (synopsis "Maven plugin to collect and install resources")
2985 (description "The Resources Plugin handles the copying of project resources
2986 to the output directory. There are two different kinds of resources: main
2987 resources and test resources. The difference is that the main resources are
2988 the resources associated to the main source code while the test resources are
2989 associated to the test source code.
2991 Thus, this allows the separation of resources for the main source code and its
2993 (license license:asl2.0)))
2995 (define-public maven-shared-incremental
2997 (name "maven-shared-incremental")
3001 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
3002 "maven-shared-incremental-" version
3003 "-source-release.zip"))
3006 "03n4nfswyg9ahkz2zx4skcr3ghs01zh95g9js51hc75mfqx9b976"))))
3007 (build-system ant-build-system)
3009 `(#:jar-name "shared-incremental.java"
3010 #:source-dir "src/main/java"
3011 #:test-dir "src/test"
3013 (modify-phases %standard-phases
3014 (add-before 'build 'change-parent
3016 (substitute* "pom.xml"
3019 (add-before 'build 'fix-pom
3021 (substitute* "pom.xml"
3022 (("plexus-component-api") "plexus-component-annotations"))
3024 (add-after 'build 'generate-metadata
3026 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3027 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3028 "--source" "src/main/java"
3029 "--output" "build/classes/META-INF/plexus/components.xml"
3030 "--classes" "build/classes"
3031 "--descriptors" "build/classes/META-INF")
3034 (install-from-pom "pom.xml")))))
3036 `(("maven-plugin-api" ,maven-plugin-api)
3037 ("maven-core" ,maven-core)
3038 ("maven-shared-utils" ,maven-shared-utils)
3039 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
3040 ("maven-parent-pom" ,maven-parent-pom-30)))
3043 ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
3044 (home-page "https://maven.apache.org/shared/maven-shared-incremental")
3045 (synopsis "Maven Incremental Build support utilities")
3046 (description "This package contains various utility classes and plexus
3047 components for supporting incremental build functionality in maven plugins.")
3048 (license license:asl2.0)))
3050 (define-public maven-compiler-plugin
3052 (name "maven-compiler-plugin")
3056 (uri (string-append "https://github.com/apache/"
3057 "maven-compiler-plugin/archive/"
3058 "maven-compiler-plugin-" version ".tar.gz"))
3061 "018d9qwc4cd6k7a8kvhvxjmzbzd2ifdf7m36wqjfq42010js1mv1"))))
3062 (build-system ant-build-system)
3064 `(#:jar-name "maven-compiler-plugin.jar"
3065 #:source-dir "src/main/java"
3066 #:test-dir "src/test"
3067 #:tests? #f; test depends on maven-plugin-test-harness
3069 (modify-phases %standard-phases
3070 (add-before 'build 'generate-plugin.xml
3071 (generate-plugin.xml "pom.xml"
3073 "src/main/java/org/apache/maven/plugin/compiler"
3075 (list "AbstractCompilerMojo.java" "CompilerMojo.java")
3076 (list "AbstractCompilerMojo.java" "TestCompilerMojo.java"))))
3077 (add-after 'generate-plugin.xml 'fix-plugin.xml
3079 (substitute* "build/classes/META-INF/maven/plugin.xml"
3080 ;; These are defined in AbstractCompilerMojo.java, but not
3081 ;; parsed correctly in the previous phase
3082 (("DEFAULT_TARGET") "1.6")
3083 (("DEFAULT_SOURCE") "1.6"))
3086 (install-from-pom "pom.xml")))))
3088 `(("maven-plugin-api" ,maven-plugin-api)
3089 ("maven-artifact" ,maven-artifact)
3090 ("maven-core" ,maven-core)
3091 ("maven-shared-utils" ,maven-shared-utils)
3092 ("maven-shared-incremental" ,maven-shared-incremental)
3093 ("java-plexus-java" ,java-plexus-java)
3094 ("java-plexus-compiler-api" ,java-plexus-compiler-api)
3095 ("java-plexus-compiler-manager" ,java-plexus-compiler-manager)
3096 ("java-plexus-compiler-javac" ,java-plexus-compiler-javac)
3097 ("maven-parent-pom" ,maven-parent-pom-33)))
3099 `(("maven-plugin-annotations" ,maven-plugin-annotations)
3100 ("java-commons-io" ,java-commons-io)))
3101 (home-page "https://maven.apache.org/plugins/maven-compiler-plugin")
3102 (synopsis "Compiler plugin for Maven")
3103 (description "The Compiler Plugin is used to compile the sources of your
3104 project. Since 3.0, the default compiler is @code{javax.tools.JavaCompiler}
3105 (if you are using java 1.6) and is used to compile Java sources. If you want
3106 to force the plugin using javac, you must configure the plugin option
3107 @code{forceJavacCompilerUse}.
3109 Also note that at present the default source setting is 1.6 and the default
3110 target setting is 1.6, independently of the JDK you run Maven with. You are
3111 highly encouraged to change these defaults by setting source and target as
3112 described in Setting the -source and -target of the Java Compiler.
3114 Other compilers than javac can be used and work has already started on
3115 AspectJ, .NET, and C#.")
3116 (license license:asl2.0)))
3118 (define-public java-surefire-logger-api
3120 (name "java-surefire-logger-api")
3121 (version "3.0.0-M4")
3124 (uri (string-append "mirror://apache/maven/surefire/"
3125 "surefire-" version "-source-release.zip"))
3128 "1s6d4pzk3bjm9l38mj9sfgbgmk145rppdj1dmqwc4d5105mr9q9w"))))
3129 (build-system ant-build-system)
3131 `(#:jar-name "java-surefire-logger-api.jar"
3132 #:source-dir "surefire-logger-api/src/main/java"
3133 #:tests? #f; require mockito 2
3135 (modify-phases %standard-phases
3137 (install-from-pom "surefire-logger-api/pom.xml")))))
3139 `(("java-surefire-parent-pom" ,java-surefire-parent-pom)))
3141 `(("unzip" ,unzip)))
3142 (home-page "https://maven.apache.org/surefire/surefire-logger-api")
3143 (synopsis "Interfaces and Utilities related only to internal SureFire Logger API")
3144 (description "This package contains interfaces and utilities that are
3145 internal to the SureFire Logger API. It is designed to have no dependency.")
3146 (license license:asl2.0)))
3148 (define-public java-surefire-parent-pom
3150 (inherit java-surefire-logger-api)
3151 (name "java-surefire-parent-pom")
3155 (modify-phases %standard-phases
3158 (add-before 'install 'fix-pom-dependency-versions
3160 (substitute* "pom.xml"
3161 (("1.11") ,(package-version java-commons-compress))
3162 (("1.13") ,(package-version java-commons-codec)))
3163 (substitute* "pom.xml"
3164 (("commonsLang3Version>.*")
3166 "commonsLang3Version>"
3167 ,(package-version java-commons-lang3)
3168 "</commonsLang3Version>\n"))
3169 (("commonsCompress>.*")
3172 ,(package-version java-commons-compress)
3173 "</commonsCompress>\n"))
3174 (("commonsIoVersion>.*")
3177 ,(package-version java-commons-io)
3178 "</commonsIoVersion>\n"))
3179 (("0.11.0") ,(package-version maven-artifact-transfer))
3180 (("1.0.3") ,(package-version java-plexus-java)))
3182 (add-after 'install 'install-providers
3183 (install-pom-file "surefire-providers/pom.xml"))
3185 (install-pom-file "pom.xml")))))
3187 `(("maven-parent-pom" ,maven-parent-pom-33)))))