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 java-plexus-component-metadata
40 (inherit java-plexus-container-default)
41 (name "java-plexus-component-metadata")
43 `(#:jar-name "plexus-component-metadata.jar"
44 #:source-dir "src/main/java"
48 (modify-phases %standard-phases
49 (add-before 'configure 'chdir
51 (chdir "plexus-component-metadata")
53 (add-before 'build 'copy-resources
55 (copy-recursively "src/main/resources"
59 `(("java-plexus-container-default" ,java-plexus-container-default)
60 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
61 ("java-plexus-utils" ,java-plexus-utils)
62 ("java-plexus-cli" ,java-plexus-cli)
63 ("java-plexus-classworlds" ,java-plexus-classworlds)
64 ("maven-plugin-api" ,maven-plugin-api)
65 ("maven-plugin-annotations" ,maven-plugin-annotations)
66 ("maven-core-bootstrap" ,maven-core-bootstrap)
67 ("maven-model" ,maven-model)
68 ("java-commons-cli" ,java-commons-cli)
69 ("java-qdox" ,java-qdox)
70 ("java-jdom2" ,java-jdom2)
71 ("java-asm" ,java-asm)))
73 `(("java-junit" ,java-junit)
74 ("java-guava" ,java-guava)
75 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
76 (synopsis "Inversion-of-control container for Maven")
77 (description "The Plexus project provides a full software stack for creating
78 and executing software projects. Based on the Plexus container, the
79 applications can utilise component-oriented programming to build modular,
80 reusable components that can easily be assembled and reused. This package
81 provides the Maven plugin generating the component metadata.")))
83 (define-public maven-resolver-api
85 (name "maven-resolver-api")
90 (url "https://github.com/apache/maven-resolver")
91 (commit (string-append "maven-resolver-" version))))
92 (file-name (git-file-name name version))
95 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
96 (build-system ant-build-system)
98 `(#:jar-name "maven-resolver-api.jar"
99 #:source-dir "maven-resolver-api/src/main/java"
100 #:test-dir "maven-resolver-api/src/test"
102 (modify-phases %standard-phases
104 (install-from-pom "maven-resolver-api/pom.xml")))))
106 `(("java-asm" ,java-asm)
107 ("java-cglib" ,java-cglib)
108 ("java-hamcrest-core" ,java-hamcrest-core)
109 ("java-junit" ,java-junit)
110 ("java-mockito-1" ,java-mockito-1)
111 ("java-objenesis" ,java-objenesis)))
113 `(("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
114 (home-page "https://github.com/apache/maven-resolver")
115 (synopsis "Maven repository system API")
116 (description "This package contains the API for the maven repository system.")
117 (license license:asl2.0)))
119 (define maven-resolver-parent-pom
121 (inherit maven-resolver-api)
122 (name "maven-resolver-parent-pom")
126 (modify-phases %standard-phases
129 (add-before 'install 'fix-pom
131 (substitute* "pom.xml"
132 (("<classifier>no_aop</classifier>") ""))
135 (install-pom-file "pom.xml")))))
136 (propagated-inputs '())))
138 (define-public maven-resolver-spi
140 (inherit maven-resolver-api)
141 (name "maven-resolver-spi")
143 `(#:jar-name "maven-resolver-spi.jar"
144 #:source-dir "maven-resolver-spi/src/main/java"
145 #:test-dir "maven-resolver-spi/src/test"
147 (modify-phases %standard-phases
149 (install-from-pom "maven-resolver-spi/pom.xml")))))
151 `(("maven-resolver-api" ,maven-resolver-api)))
152 (synopsis "Maven repository system SPI")
153 (description "This package contains the service provider interface (SPI)
154 for repository system implementations and repository connectors.")))
156 (define-public maven-resolver-test-util
158 (inherit maven-resolver-api)
159 (name "maven-resolver-test-util")
161 `(#:jar-name "maven-resolver-test-util.jar"
162 #:source-dir "maven-resolver-test-util/src/main/java"
163 #:test-dir "maven-resolver-test-util/src/test"
166 `(("maven-resolver-api" ,maven-resolver-api)
167 ("maven-resolver-spi" ,maven-resolver-spi)))
168 (synopsis "Utility classes for testing the maven repository system")
169 (description "This package contains a collection of utility classes to
170 ease testing of the repository system.")))
172 (define-public maven-resolver-util
174 (inherit maven-resolver-api)
175 (name "maven-resolver-util")
177 `(#:jar-name "maven-resolver-util.jar"
178 #:source-dir "maven-resolver-util/src/main/java"
179 #:test-dir "maven-resolver-util/src/test"
181 (modify-phases %standard-phases
183 (install-from-pom "maven-resolver-util/pom.xml")))))
185 `(("maven-resolver-api" ,maven-resolver-api)))
187 `(("java-junit" ,java-junit)
188 ("java-hamcrest-core" ,java-hamcrest-core)
189 ("maven-resolver-test-util" ,maven-resolver-test-util)))
190 (synopsis "Utility classes for the maven repository system")
191 (description "This package contains a collection of utility classes to
192 ease usage of the repository system.")))
194 (define-public maven-resolver-connector-basic
196 (inherit maven-resolver-api)
197 (name "maven-resolver-connector-basic")
199 `(#:jar-name "maven-resolver-connector-basic.jar"
200 #:source-dir "maven-resolver-connector-basic/src/main/java"
201 #:test-dir "maven-resolver-connector-basic/src/test"
204 (modify-phases %standard-phases
205 (add-before 'build 'generate-sisu
207 (mkdir-p "build/classes/META-INF/sisu")
208 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
210 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
213 (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
215 `(("maven-resolver-api" ,maven-resolver-api)
216 ("maven-resolver-spi" ,maven-resolver-spi)
217 ("maven-resolver-util" ,maven-resolver-util)
218 ("java-slf4j-api" ,java-slf4j-api)))
220 `(("java-javax-inject" ,java-javax-inject)
221 ("java-junit" ,java-junit)
222 ("maven-resolver-test-util" ,maven-resolver-test-util)))
223 (synopsis "Maven repository connector implementation")
224 (description "This package contains a repository connector implementation
225 for repositories using URI-based layouts.")))
227 (define-public maven-resolver-impl
229 (inherit maven-resolver-api)
230 (name "maven-resolver-impl")
232 `(#:jar-name "maven-resolver-impl.jar"
233 #:source-dir "maven-resolver-impl/src/main/java"
234 #:test-dir "maven-resolver-impl/src/test"
236 (modify-phases %standard-phases
237 (add-before 'build 'generate-sisu
239 (mkdir-p "build/classes/META-INF/sisu")
240 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
244 ;; Build this list by looking for files containing "@Named"
245 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
246 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
247 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
248 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
249 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
250 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
251 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
252 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
253 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
254 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
255 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
256 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
257 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
258 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
259 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
260 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
261 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
262 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
263 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
264 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
265 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
266 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
267 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
270 (install-from-pom "maven-resolver-impl/pom.xml")))))
272 `(("maven-resolver-api" ,maven-resolver-api)
273 ("maven-resolver-spi" ,maven-resolver-spi)
274 ("maven-resolver-util" ,maven-resolver-util)
275 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
276 ("java-javax-inject" ,java-javax-inject)
277 ("java-guice" ,java-guice)
278 ("java-slf4j-api" ,java-slf4j-api)
279 ("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
281 `(("java-junit" ,java-junit)
282 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
284 (define-public maven-resolver-transport-wagon
286 (inherit maven-resolver-api)
287 (name "maven-resolver-transport-wagon")
289 `(#:jar-name "maven-resolver-transport-wagon.jar"
290 #:source-dir "maven-resolver-transport-wagon/src/main/java"
291 #:test-dir "maven-resolver-transport-wagon/src/test"
294 (modify-phases %standard-phases
295 (add-before 'build 'generate-sisu
297 (mkdir-p "build/classes/META-INF/sisu")
298 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
300 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
302 (add-before 'build 'generate-components.xml
304 (mkdir-p "build/classes/META-INF/plexus")
305 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
309 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
313 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
314 <role-hint>plexus</role-hint>
315 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
317 <isolated-realm>false</isolated-realm>
320 <role>org.codehaus.plexus.PlexusContainer</role>
322 <field-name>container</field-name>
327 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
328 <role-hint>plexus</role-hint>
329 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
331 <isolated-realm>false</isolated-realm>
334 <role>org.codehaus.plexus.PlexusContainer</role>
336 <field-name>container</field-name>
341 </component-set>\n"))))
344 `(("maven-resolver-api" ,maven-resolver-api)
345 ("maven-resolver-spi" ,maven-resolver-spi)
346 ("maven-resolver-util" ,maven-resolver-util)
347 ("java-javax-inject" ,java-javax-inject)
348 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
349 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
350 ("java-plexus-classworld" ,java-plexus-classworlds)
351 ("java-plexus-plexus-util" ,java-plexus-utils)
352 ("java-slf4j-api" ,java-slf4j-api)
353 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
354 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
356 `(("java-junit" ,java-junit)
357 ("java-hamcrest-core" ,java-hamcrest-core)
358 ("maven-resolver-test-util" ,maven-resolver-test-util)
359 ("java-guava" ,java-guava)
360 ("java-cglib" ,java-cglib)
361 ("java-asm" ,java-asm)
362 ("java-aopalliance" ,java-aopalliance)
363 ("java-guice" ,java-guice)))
364 (synopsis "Transport implementation for Maven")
365 (description "This package contains a transport implementation based on
366 Maven Wagon, for use in Maven.")))
368 ;; aether is the parent project that was forked into maven-resolver. It used
369 ;; to be used with older versions of Maven, and is still required for some
370 ;; plugins and their dependencies. This version is required for the plugins,
371 ;; even though there are newer versions of this project.
372 (define-public java-sonatype-aether-api
374 (name "java-sonatype-aether-api")
379 (url "https://github.com/sonatype/sonatype-aether")
380 (commit (string-append "aether-" version))))
381 (file-name (git-file-name name version))
384 "1wn9fv91n40bvlwbzy0dmh0xqibxl2mpzpnbibhqss3c0zlr1ccq"))))
385 (build-system ant-build-system)
387 `(#:jar-name "aether-api.jar"
388 #:source-dir "aether-api/src/main/java"
389 #:test-dir "aether-api/src/test"
391 (modify-phases %standard-phases
392 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
393 (replace 'install (install-from-pom "aether-api/pom.xml")))))
395 `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-6)))
396 (native-inputs `(("java-junit" ,java-junit)))
397 (home-page "https://github.com/sonatype/sonatype-aether")
398 (synopsis "Maven repository system API")
399 (description "This package contains the API for the maven repository system.")
400 (license license:asl2.0)))
402 (define-public java-sonatype-aether-spi
404 (inherit java-sonatype-aether-api)
405 (name "java-sonatype-aether-spi")
407 `(#:jar-name "aether-spi.jar"
408 #:source-dir "aether-spi/src/main/java"
409 #:tests? #f; no tests
411 (modify-phases %standard-phases
412 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
414 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
415 (synopsis "Maven repository system SPI")
416 (description "This package contains the service provider interface (SPI)
417 for repository system implementations and repository connectors.")))
419 (define-public java-sonatype-aether-test-util
421 (inherit java-sonatype-aether-api)
422 (name "java-sonatype-aether-test-util")
424 `(#:jar-name "java-sonatype-aether-test-util.jar"
425 #:source-dir "aether-test-util/src/main/java"
426 #:test-dir "aether-test-util/src/test"))
428 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
429 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)))
430 (synopsis "Utility classes for testing the maven repository system")
431 (description "This package contains a collection of utility classes to
432 ease testing of the repository system.")))
434 (define-public java-sonatype-aether-util
436 (inherit java-sonatype-aether-api)
437 (name "java-sonatype-aether-util")
439 `(#:jar-name "aether-util.jar"
440 #:source-dir "aether-util/src/main/java"
441 #:test-dir "aether-util/src/test"
443 (modify-phases %standard-phases
444 (replace 'install (install-from-pom "aether-util/pom.xml")))))
446 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
448 `(("java-junit" ,java-junit)
449 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))
450 (synopsis "Utility classes for the maven repository system")
451 (description "This package contains a collection of utility classes to
452 ease usage of the repository system.")))
454 (define-public java-sonatype-aether-impl
456 (inherit java-sonatype-aether-api)
457 (name "java-sonatype-aether-impl")
459 `(#:jar-name "aether-impl.jar"
460 #:source-dir "aether-impl/src/main/java"
461 #:test-dir "aether-impl/src/test"
463 (modify-phases %standard-phases
464 (add-before 'install 'fix-pom
466 (substitute* "aether-impl/pom.xml"
467 (("org.sonatype.sisu") "org.codehaus.plexus")
468 (("sisu-inject-plexus") "plexus-container-default"))
470 (add-after 'build 'generate-metadata
472 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
473 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
474 "--source" "src/main/java"
475 "--output" "build/classes/META-INF/plexus/components.xml"
476 "--classes" "build/classes"
477 "--descriptors" "build/classes/META-INF")
479 (add-after 'generate-metadata 'rebuild
483 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
485 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
486 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
487 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
488 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
489 ("java-plexus-container-default" ,java-plexus-container-default)
490 ("java-slf4j-api" ,java-slf4j-api)))
492 `(("java-junit" ,java-junit)
493 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
494 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))))
496 ;; Again, this old version is required by some maven plugins
497 (define-public java-eclipse-aether-api
499 (name "java-eclipse-aether-api")
504 (url "https://github.com/eclipse/aether-core")
505 (commit "aether-1.0.2.v20150114")))
506 (file-name (git-file-name name version))
509 "14d336nn0kh5ddf23j37va3hd8gaai19llrpxhf4bcc7g7sgdqxs"))))
510 (build-system ant-build-system)
512 `(#:jar-name "aether-api.jar"
513 #:source-dir "aether-api/src/main/java"
514 #:test-dir "aether-api/src/test"
516 (modify-phases %standard-phases
517 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
518 (replace 'install (install-from-pom "aether-api/pom.xml")))))
519 (native-inputs `(("java-junit" ,java-junit)))
520 (home-page "https://github.com/sonatype/sonatype-aether")
521 (synopsis "Maven repository system API")
522 (description "This package contains the API for the maven repository system.")
523 (license license:asl2.0)))
525 (define-public java-eclipse-aether-spi
527 (inherit java-eclipse-aether-api)
528 (name "java-eclipse-aether-spi")
530 `(#:jar-name "aether-spi.jar"
531 #:source-dir "aether-spi/src/main/java"
532 #:test-dir "aether-spi/src/test"
534 (modify-phases %standard-phases
535 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
537 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
538 (synopsis "Maven repository system SPI")
539 (description "This package contains the service provider interface (SPI)
540 for repository system implementations and repository connectors.")))
542 (define-public java-eclipse-aether-test-util
544 (inherit java-eclipse-aether-api)
545 (name "java-eclipse-aether-test-util")
547 `(#:jar-name "aether-test-util.jar"
548 #:source-dir "aether-test-util/src/main/java"
549 #:test-dir "aether-test-util/src/test"
551 (modify-phases %standard-phases
552 (replace 'install (install-from-pom "aether-util/pom.xml")))))
554 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
555 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)))
556 (synopsis "Utility classes for testing the maven repository system")
557 (description "This package contains a collection of utility classes to
558 ease testing of the repository system.")))
560 (define-public java-eclipse-aether-util
562 (inherit java-eclipse-aether-api)
563 (name "java-eclipse-aether-util")
565 `(#:jar-name "aether-util.jar"
566 #:source-dir "aether-util/src/main/java"
567 #:test-dir "aether-util/src/test"
569 (modify-phases %standard-phases
570 (replace 'install (install-from-pom "aether-util/pom.xml")))))
572 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
574 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
575 ("java-junit" ,java-junit)))
576 (synopsis "Utility classes for the maven repository system")
577 (description "This package contains a collection of utility classes to
578 ease usage of the repository system.")))
580 (define-public java-eclipse-aether-impl
582 (inherit java-eclipse-aether-api)
583 (name "java-eclipse-aether-impl")
585 `(#:jar-name "aether-impl.jar"
586 #:source-dir "aether-impl/src/main/java"
587 #:test-dir "aether-impl/src/test"
589 (modify-phases %standard-phases
590 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
592 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
593 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)
594 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
595 ("java-javax-inject" ,java-javax-inject)
596 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
597 ("java-guice" ,java-guice)
598 ("java-slf4j-api" ,java-slf4j-api)))
600 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
601 ("java-junit" ,java-junit)))))
603 (define-public maven-shared-utils
605 (name "maven-shared-utils")
609 (uri (string-append "mirror://apache/maven/shared/"
610 "maven-shared-utils-" version "-source-release.zip"))
613 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
614 (build-system ant-build-system)
616 `(#:jar-name "maven-shared-utils.jar"
617 #:source-dir "src/main/java"
619 (modify-phases %standard-phases
620 (add-before 'build 'fix-/bin/sh-invocation
622 (substitute* (find-files "src" ".*.java$")
623 (("/bin/sh") (which "sh")))
625 (add-before 'check 'remove-cyclic-dep
628 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
631 (install-from-pom "pom.xml")))))
633 `(("java-jansi" ,java-jansi)
634 ("java-commons-io" ,java-commons-io)
635 ("java-jsr305" ,java-jsr305)
636 ("java-plexus-container-default" ,java-plexus-container-default)
637 ("maven-parent-pom-30" ,maven-parent-pom-30)))
640 ("java-junit" ,java-junit)
641 ("java-hamcrest-core" ,java-hamcrest-core)
642 ("java-commons-lang3" ,java-commons-lang3)))
643 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
644 (synopsis "Plexus-util replacement for maven")
645 (description "This project aims to be a functional replacement for
646 plexus-utils in Maven. It is not a 100% API compatible replacement but a
647 replacement with improvements.")
648 (license license:asl2.0)))
650 (define-public maven-plugin-annotations
652 (name "maven-plugin-annotations")
656 (uri (string-append "mirror://apache/maven/"
657 "plugin-tools/maven-plugin-tools-" version
658 "-source-release.zip"))
659 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
660 (build-system ant-build-system)
662 `(#:jar-name "maven-plugin-annotations.jar"
663 #:source-dir "maven-plugin-annotations/src/main/java"
666 (modify-phases %standard-phases
668 (install-from-pom "maven-plugin-annotations/pom.xml")))))
670 `(("maven-artifact" ,maven-artifact)
671 ("maven-plugin-tools-parent-pom" ,maven-plugin-tools-parent-pom)))
674 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
675 (synopsis "Java 5 annotations to use in Mojos")
676 (description "This package contains Java 5 annotations for use in Mojos.")
677 (license license:asl2.0)))
679 (define maven-plugin-tools-parent-pom
681 (inherit maven-plugin-annotations)
682 (name "maven-plugin-tools-parent-pom")
686 (modify-phases %standard-phases
690 (install-pom-file "pom.xml")))))
691 (propagated-inputs '())))
693 (define-public maven-wagon-provider-api
695 (name "maven-wagon-provider-api")
699 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
700 "wagon-" version "-source-release.zip"))
703 "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
704 (build-system ant-build-system)
706 `(#:jar-name "maven-wagon-provider-api.jar"
707 #:source-dir "wagon-provider-api/src/main/java"
708 #:test-dir "wagon-provider-api/src/test"
710 (modify-phases %standard-phases
712 (install-from-pom "wagon-provider-api/pom.xml")))))
714 `(("java-plexus-utils" ,java-plexus-utils)
715 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
718 ("java-junit" ,java-junit)
719 ("java-easymock" ,java-easymock)))
720 (home-page "https://maven.apache.org/wagon")
721 (synopsis "Transport abstraction for Maven")
722 (description "Maven Wagon is a transport abstraction that is used in Maven's
723 artifact and repository handling code.")
724 (license license:asl2.0)))
726 (define maven-wagon-parent-pom
728 (inherit maven-wagon-provider-api)
732 (modify-phases %standard-phases
736 (install-pom-file "pom.xml")))))
738 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
740 `(("unzip" ,unzip)))))
742 (define-public maven-wagon-provider-test
744 (inherit maven-wagon-provider-api)
745 (name "maven-wagon-provider-test")
747 `(#:jar-name "maven-wagon-provider-test.jar"
748 #:source-dir "wagon-provider-test/src/main/java"
749 #:tests? #f; no tests
752 `(("java-plexus-utils" ,java-plexus-utils)
753 ("java-plexus-container-default" ,java-plexus-container-default)
754 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
755 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
756 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
757 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
758 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
759 ("java-slf4j-api" ,java-slf4j-api)
760 ("java-javaee-servletapi" ,java-javaee-servletapi)
761 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
762 (synopsis "Test classes from maven-wagon")
763 (description "Maven Wagon is a transport abstraction that is used in Maven's
764 artifact and repository handling code. This package contains common test
765 classes used in multiple maven-wagon components.")))
767 (define-public maven-wagon-file
769 (inherit maven-wagon-provider-api)
770 (name "maven-wagon-file")
772 `(#:jar-name "maven-wagon-file.jar"
773 #:source-dir "wagon-providers/wagon-file/src/main/java"
774 #:test-dir "wagon-providers/wagon-file/src/test"
777 (modify-phases %standard-phases
778 (add-before 'check 'fix-paths
780 ;; Tests assume they are run by maven, which copies test resources
781 ;; to target. Our ant-build-system does the same, but with the
783 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
784 (("target") "build"))
786 (add-after 'build 'generate-metadata
788 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
789 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
790 "--source" "wagon-providers/wagon-file/src/main/java"
791 "--output" "build/classes/META-INF/plexus/components.xml"
792 "--classes" "build/classes"
793 "--descriptors" "build/classes/META-INF")
795 (add-after 'generate-metadata 'rebuild
800 `(("java-plexus-utils" ,java-plexus-utils)
801 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
803 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
804 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
805 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
806 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
807 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
808 ("java-plexus-classworlds" ,java-plexus-classworlds)
809 ("java-guava" ,java-guava)
810 ("java-guice" ,java-guice)
811 ("java-javax-inject" ,java-javax-inject)
812 ("java-cglib" ,java-cglib)
813 ("java-slf4j-api" ,java-slf4j-api)
814 ("java-plexus-utils" ,java-plexus-utils)
815 ("java-plexus-cli" ,java-plexus-cli)
816 ("maven-plugin-api" ,maven-plugin-api)
817 ("maven-plugin-annotations" ,maven-plugin-annotations)
818 ("maven-core" ,maven-core)
819 ("maven-model" ,maven-model)
820 ("java-commons-cli" ,java-commons-cli)
821 ("java-qdox" ,java-qdox)
822 ("java-jdom2" ,java-jdom2)
823 ("java-asm" ,java-asm)
824 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
825 ,@(package-native-inputs maven-wagon-provider-api)))
826 (synopsis "Wagon provider that gets and puts artifacts using the file system")
827 (description "Maven Wagon is a transport abstraction that is used in Maven's
828 artifact and repository handling code. It uses providers, that are tools to
829 manage artifacts and deployment. This package contains the file provider which
830 gets and puts artifacts using the file system.")))
832 (define-public maven-wagon-tck-http
834 (inherit maven-wagon-provider-api)
835 (name "maven-wagon-tck-http")
837 `(#:jar-name "maven-wagon-tck-http.jar"
838 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
839 #:tests? #f; no tests
842 `(("java-plexus-util" ,java-plexus-utils)
843 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
844 ("java-javaee-servletapi" ,java-javaee-servletapi)
845 ("java-slf4j-api" ,java-slf4j-api)
846 ("java-commons-codec" ,java-commons-codec)
847 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
848 ("java-plexus-classworlds" ,java-plexus-classworlds)
849 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
850 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
851 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
852 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
853 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
854 (synopsis "Wagon HTTP Test Compatibility Kit")
855 (description "Maven Wagon is a transport abstraction that is used in Maven's
856 artifact and repository handling code. This package contains the HTTP
857 Test Compatibility Kit.")))
859 (define-public maven-wagon-http-shared
861 (inherit maven-wagon-provider-api)
862 (name "maven-wagon-http-shared")
864 `(#:jar-name "maven-wagon-http-shared.jar"
865 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
866 #:test-dir "wagon-providers/wagon-http-shared/src/test"
869 (modify-phases %standard-phases
870 (add-after 'build 'generate-metadata
872 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
873 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
874 "--source" "wagon-providers/wagon-http-shared/src/main/java"
875 "--output" "build/classes/META-INF/plexus/components.xml"
876 "--classes" "build/classes"
877 "--descriptors" "build/classes/META-INF")
879 (add-after 'generate-metadata 'rebuild
884 `(("java-plexus-utils" ,java-plexus-utils)
885 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
886 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
887 ("java-commons-io" ,java-commons-io)
888 ("java-jsoup" ,java-jsoup)
889 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
891 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
892 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
893 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
894 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
895 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
896 ("java-plexus-classworlds" ,java-plexus-classworlds)
897 ("java-guava" ,java-guava)
898 ("java-guice" ,java-guice)
899 ("java-javax-inject" ,java-javax-inject)
900 ("java-cglib" ,java-cglib)
901 ("java-slf4j-api" ,java-slf4j-api)
902 ("java-plexus-utils" ,java-plexus-utils)
903 ("java-plexus-cli" ,java-plexus-cli)
904 ("maven-plugin-api" ,maven-plugin-api)
905 ("maven-plugin-annotations" ,maven-plugin-annotations)
906 ("maven-core" ,maven-core)
907 ("maven-model" ,maven-model)
908 ("java-commons-cli" ,java-commons-cli)
909 ("java-qdox" ,java-qdox)
910 ("java-jdom2" ,java-jdom2)
911 ("java-asm" ,java-asm)
912 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
913 ,@(package-native-inputs maven-wagon-provider-api)))
914 (synopsis "Shared Library for wagon providers supporting HTTP.")
915 (description "Maven Wagon is a transport abstraction that is used in Maven's
916 artifact and repository handling code. It uses providers, that are tools to
917 manage artifacts and deployment. This package contains a shared library for
918 wagon providers supporting HTTP.")))
920 (define-public maven-wagon-http
922 (inherit maven-wagon-provider-api)
923 (name "maven-wagon-http")
925 `(#:jar-name "maven-wagon-http.jar"
926 #:source-dir "wagon-providers/wagon-http/src/main/java"
927 #:test-dir "wagon-providers/wagon-http/src/test"
930 ;; FIXME: javax.net.ssl.SSLHandshakeException:
931 ;; sun.security.validator.ValidatorException:
932 ;; PKIX path building failed:
933 ;; sun.security.provider.certpath.SunCertPathBuilderException:
934 ;; unable to find valid certification path to requested target
935 "**/HttpsWagonPreemptiveTest.java"
936 "**/HttpsWagonTest.java"
941 (modify-phases %standard-phases
942 (add-before 'build 'copy-resources
944 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
945 "build/classes/META-INF/plexus")
947 (add-before 'check 'fix-resource-path
949 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
950 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
951 (("src/test") "wagon-providers/wagon-http/src/test"))
954 `(("java-plexus-utils" ,java-plexus-utils)
955 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
956 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
957 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
958 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
959 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
961 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
962 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
963 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
964 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
965 ("java-plexus-container-default" ,java-plexus-container-default)
966 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
967 ("java-plexus-classworlds" ,java-plexus-classworlds)
968 ("java-guava" ,java-guava)
969 ("java-guice" ,java-guice)
970 ("java-inject" ,java-javax-inject)
971 ("java-cglib" ,java-cglib)
972 ("java-slf4j-api" ,java-slf4j-api)
973 ("java-plexus-utils" ,java-plexus-utils)
974 ("java-plexus-cli" ,java-plexus-cli)
975 ("maven-plugin-api" ,maven-plugin-api)
976 ("maven-plugin-annotations" ,maven-plugin-annotations)
977 ("maven-core" ,maven-core)
978 ("maven-model" ,maven-model)
979 ("java-commons-cli" ,java-commons-cli)
980 ("java-qdox" ,java-qdox)
981 ("java-jdom2" ,java-jdom2)
982 ("java-asm" ,java-asm)
983 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
984 ("java-javaee-servletapi" ,java-javaee-servletapi)
985 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
986 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
987 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
988 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
989 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
990 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
991 ("java-hamcrest-core" ,java-hamcrest-core)
992 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
993 ("java-commons-codec" ,java-commons-codec)
994 ("java-commons-io" ,java-commons-io)
995 ("java-jsoup" ,java-jsoup)
996 ("java-slf4j-simple" ,java-slf4j-simple)
997 ,@(package-native-inputs maven-wagon-provider-api)))
998 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
999 (description "Maven Wagon is a transport abstraction that is used in Maven's
1000 artifact and repository handling code. It uses providers, that are tools to
1001 manage artifacts and deployment. This package contains a Wagon provider that
1002 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
1010 (uri (string-append "mirror://apache/maven/"
1011 "maven-3/" version "/source/"
1012 "apache-maven-" version "-src.tar.gz"))
1013 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
1014 (modules '((guix build utils)))
1017 (for-each delete-file (find-files "." "\\.jar$"))
1020 (search-patches "maven-generate-component-xml.patch"
1021 "maven-generate-javax-inject-named.patch"))))
1022 (build-system ant-build-system)
1026 (modify-phases %standard-phases
1029 (add-before 'install 'fix-dependencies
1031 (substitute* "pom.xml"
1032 (("classWorldsVersion>.*")
1034 "classWorldsVersion>"
1035 ,(package-version java-plexus-classworlds)
1036 "</classWorldsVersion>\n"))
1037 (("commonsCliVersion>.*")
1039 "commonsCliVersion>"
1040 ,(package-version java-commons-cli)
1041 "</commonsCliVersion>\n"))
1042 (("commonsLangVersion>.*")
1044 "commonsLangVersion>"
1045 ,(package-version java-commons-lang3)
1046 "</commonsLangVersion>\n"))
1047 (("plexusUtilsVersion>.*")
1049 "plexusUtilsVersion>"
1050 ,(package-version java-plexus-utils)
1051 "</plexusUtilsVersion>\n"))
1052 (("plexusInterpolationVersion>.*")
1054 "plexusInterpolationVersion>"
1055 ,(package-version java-plexus-interpolation)
1056 "</plexusInterpolationVersion>\n"))
1057 (("guiceVersion>.*")
1060 ,(package-version java-guice)
1061 "</guiceVersion>\n"))
1062 (("sisuInjectVersion>.*")
1064 "sisuInjectVersion>"
1065 ,(package-version java-eclipse-sisu-inject)
1066 "</sisuInjectVersion>\n"))
1067 (("securityDispatcherVersion>.*")
1069 "securityDispatcherVersion>"
1070 ,(package-version java-plexus-sec-dispatcher)
1071 "</securityDispatcherVersion>\n"))
1072 (("cipherVersion>.*")
1075 ,(package-version java-plexus-cipher)
1076 "</cipherVersion>\n"))
1077 (("slf4jVersion>.*")
1080 ,(package-version java-slf4j-api)
1081 "</slf4jVersion>\n"))
1082 (("<classifier>no_aop</classifier>") ""))
1085 (install-pom-file "pom.xml")))))
1087 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
1088 (home-page "https://maven.apache.org/")
1089 (synopsis "Build system")
1090 (description "Apache Maven is a software project management and comprehension
1091 tool. This package contains the Maven pom file, used by all maven components.")
1092 (license license:asl2.0)))
1094 (define-public maven-artifact
1097 (name "maven-artifact")
1099 `(#:jar-name "maven-artifact.jar"
1100 #:source-dir "maven-artifact/src/main/java"
1101 #:test-dir "maven-artifact/src/test"
1102 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
1104 (modify-phases %standard-phases
1106 (install-from-pom "maven-artifact/pom.xml")))))
1108 `(("java-plexus-utils" ,java-plexus-utils)
1109 ("java-commons-lang3" ,java-commons-lang3)
1110 ("maven-pom" ,maven-pom)))
1112 `(("java-junit" ,java-junit)))
1113 (description "Apache Maven is a software project management and comprehension
1114 tool. This package contains the Maven Artifact classes, providing the
1115 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
1116 jar file is executable and provides a little tool to display how Maven parses
1117 and compares versions:")))
1119 (define-public maven-model
1121 (inherit maven-artifact)
1122 (name "maven-model")
1124 `(#:jar-name "maven-model.jar"
1125 #:source-dir "maven-model/src/main/java"
1126 #:test-dir "maven-model/src/test"
1128 (modify-phases %standard-phases
1129 (add-before 'build 'generate-models
1130 (lambda* (#:key inputs #:allow-other-keys)
1131 (define (modello-single-mode file version mode)
1132 (invoke "java" "org.codehaus.modello.ModelloCli"
1133 file mode "maven-model/src/main/java" version
1135 (let ((file "maven-model/src/main/mdo/maven.mdo"))
1136 (modello-single-mode file "4.0.0" "java")
1137 (modello-single-mode file "4.0.0" "xpp3-reader")
1138 (modello-single-mode file "4.0.0" "xpp3-writer")
1139 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
1141 (replace 'install (install-from-pom "maven-model/pom.xml")))))
1143 `(("java-commons-lang3" ,java-commons-lang3)
1144 ("java-plexus-utils" ,java-plexus-utils)
1145 ("maven-pom" ,maven-pom)))
1147 `(("java-modello-core" ,java-modello-core)
1149 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1150 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1151 ("java-guice" ,java-guice)
1152 ("java-cglib" ,java-cglib)
1153 ("java-asm" ,java-asm)
1154 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1155 ("java-javax-inject" ,java-javax-inject)
1156 ("java-plexus-classworlds" ,java-plexus-classworlds)
1157 ("java-guava" ,java-guava)
1158 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1159 ("java-sisu-build-api" ,java-sisu-build-api)
1161 ("java-modello-plugins-java" ,java-modello-plugins-java)
1162 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1163 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1165 ("java-junit" ,java-junit)))
1166 (description "Apache Maven is a software project management and comprehension
1167 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
1168 so really just plain Java objects.")))
1170 (define-public maven-builder-support
1172 (inherit maven-artifact)
1173 (name "maven-builder-support")
1175 `(#:jar-name "maven-builder-support.jar"
1176 #:source-dir "maven-builder-support/src/main/java"
1178 #:test-dir "maven-builder-support/src/test"
1180 (modify-phases %standard-phases
1181 (add-before 'check 'fix-paths
1183 (with-directory-excursion "maven-builder-support/src/test/java"
1185 '("org/apache/maven/building/FileSourceTest.java"
1186 "org/apache/maven/building/UrlSourceTest.java")
1187 (("target/test-classes") "maven-builder-support/src/test/resources")))
1189 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
1191 `(("maven-pom" ,maven-pom)))
1193 `(("java-junit" ,java-junit)))
1194 (description "Apache Maven is a software project management and comprehension
1195 tool. This package contains a support library for descriptor builders (model,
1196 setting, toolchains)")))
1198 (define-public maven-settings
1200 (inherit maven-artifact)
1201 (name "maven-settings")
1203 `(#:jar-name "maven-settings.jar"
1204 #:source-dir "maven-settings/src/main/java"
1205 #:tests? #f; no tests
1207 (modify-phases %standard-phases
1208 (add-before 'build 'generate-models
1209 (lambda* (#:key inputs #:allow-other-keys)
1210 (define (modello-single-mode file version mode)
1211 (invoke "java" "org.codehaus.modello.ModelloCli"
1212 file mode "maven-settings/src/main/java" version
1214 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
1215 (modello-single-mode file "1.1.0" "java")
1216 (modello-single-mode file "1.1.0" "xpp3-reader")
1217 (modello-single-mode file "1.1.0" "xpp3-writer"))
1219 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
1221 `(("java-plexus-utils" ,java-plexus-utils)
1222 ("maven-pom" ,maven-pom)))
1224 `(("java-modello-core" ,java-modello-core)
1226 ;("container" ,java-plexus-container-default)
1227 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1228 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1229 ("java-guice" ,java-guice)
1230 ("java-cglib" ,java-cglib)
1231 ("java-asm" ,java-asm)
1232 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1233 ("java-javax-inject" ,java-javax-inject)
1234 ("java-plexus-classworlds" ,java-plexus-classworlds)
1235 ("java-plexus-utils" ,java-plexus-utils)
1236 ("java-guava" ,java-guava)
1237 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1238 ("java-sisu-build-api" ,java-sisu-build-api)
1240 ("java-modello-plugins-java" ,java-modello-plugins-java)
1241 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1242 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1243 (description "Apache Maven is a software project management and comprehension
1244 tool. This package contains strictly the model for Maven settings, that is
1245 simply plain java objects.")))
1247 (define-public maven-settings-builder
1249 (inherit maven-artifact)
1250 (name "maven-settings-builder")
1252 `(#:jar-name "maven-settings-builder.jar"
1253 #:source-dir "maven-settings-builder/src/main/java"
1255 #:test-dir "maven-settings-builder/src/test"
1257 (modify-phases %standard-phases
1258 (add-before 'build 'generate-components.xml
1260 (mkdir-p "build/classes/META-INF/plexus")
1261 (chmod "components.sh" #o755)
1262 (invoke "./components.sh" "maven-settings-builder/src/main/java"
1263 "build/classes/META-INF/plexus/components.xml")
1265 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1267 `(("java-plexus-utils" ,java-plexus-utils)
1268 ("java-plexus-interpolation" ,java-plexus-interpolation)
1269 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1270 ("maven-builder-support" ,maven-builder-support)
1271 ("maven-settings" ,maven-settings)
1272 ("maven-pom" ,maven-pom)))
1274 `(("java-junit" ,java-junit)
1275 ("java-plexus-component-annotations" ,java-plexus-component-annotations)))
1276 (description "Apache Maven is a software project management and comprehension
1277 tool. This package contains the effective model builder, with profile activation,
1278 inheritance, interpolation, @dots{}")))
1280 (define-public maven-model-builder
1282 (inherit maven-artifact)
1283 (name "maven-model-builder")
1285 `(#:jar-name "maven-model-builder.jar"
1286 #:source-dir "maven-model-builder/src/main/java"
1288 #:test-dir "maven-model-builder/src/test"
1290 (modify-phases %standard-phases
1291 (add-before 'build 'copy-resources
1293 (copy-recursively "maven-model-builder/src/main/resources"
1296 (add-before 'build 'generate-components.xml
1298 (mkdir-p "build/classes/META-INF/plexus")
1299 (chmod "components.sh" #o755)
1300 (invoke "./components.sh" "maven-model-builder/src/main/java"
1301 "build/classes/META-INF/plexus/components.xml")
1303 (add-before 'check 'fix-paths
1305 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
1306 (("src/test") "maven-model-builder/src/test"))
1309 (install-from-pom "maven-model-builder/pom.xml")))))
1311 `(("java-plexus-interpolation" ,java-plexus-interpolation)
1312 ("java-plexus-utils" ,java-plexus-utils)
1313 ("maven-artifact" ,maven-artifact)
1314 ("maven-builder-support" ,maven-builder-support)
1315 ("maven-model" ,maven-model)
1316 ("maven-pom" ,maven-pom)))
1318 `(("java-junit" ,java-junit)
1319 ("java-guava" ,java-guava)
1320 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1321 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1322 ("guice" ,java-guice)
1323 ("java-cglib" ,java-cglib)
1324 ("java-asm" ,java-asm)
1325 ("sisu-inject" ,java-eclipse-sisu-inject)
1326 ("javax-inject" ,java-javax-inject)
1327 ("java-xmlunit" ,java-xmlunit)
1328 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
1329 ("xbean" ,java-geronimo-xbean-reflect)
1330 ("classworlds" ,java-plexus-classworlds)))
1331 (description "Apache Maven is a software project management and comprehension
1332 tool. This package contains the effective model builder, with profile activation,
1333 inheritance, interpolation, @dots{}")))
1335 (define-public maven-repository-metadata
1337 (inherit maven-artifact)
1338 (name "maven-repository-metadata")
1340 `(#:jar-name "maven-repository-metadata.jar"
1341 #:source-dir "maven-repository-metadata/src/main/java"
1343 #:tests? #f; no tests
1345 (modify-phases %standard-phases
1346 (add-before 'build 'generate-models
1347 (lambda* (#:key inputs #:allow-other-keys)
1348 (define (modello-single-mode file version mode)
1349 (invoke "java" "org.codehaus.modello.ModelloCli"
1350 file mode "maven-repository-metadata/src/main/java" version
1352 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1353 (modello-single-mode file "1.1.0" "java")
1354 (modello-single-mode file "1.1.0" "xpp3-reader")
1355 (modello-single-mode file "1.1.0" "xpp3-writer"))
1358 (install-from-pom "maven-repository-metadata/pom.xml")))))
1360 `(("java-plexus-utils" ,java-plexus-utils)
1361 ("maven-pom" ,maven-pom)))
1363 `(("modello" ,java-modello-core)
1365 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1366 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1367 ("java-guice" ,java-guice)
1368 ("java-cglib" ,java-cglib)
1369 ("java-asm" ,java-asm)
1370 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1371 ("java-javax-inject" ,java-javax-inject)
1372 ("java-plexus-utils" ,java-plexus-utils)
1373 ("java-plexus-classworlds" ,java-plexus-classworlds)
1374 ("java-guava" ,java-guava)
1375 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1376 ("java-sisu-build-api" ,java-sisu-build-api)
1378 ("java-modello-plugins-java" ,java-modello-plugins-java)
1379 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1380 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1381 (description "Apache Maven is a software project management and comprehension
1382 tool. This package contains strictly the model for Maven Repository Metadata,
1383 so really just plain objects.")))
1385 (define-public maven-resolver-provider
1387 (inherit maven-artifact)
1388 (name "maven-resolver-provider")
1390 `(#:jar-name "maven-resolver-provider.jar"
1391 #:source-dir "maven-resolver-provider/src/main/java"
1392 #:test-dir "maven-resolver-provider/src/test"
1394 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1396 (modify-phases %standard-phases
1397 (add-before 'build 'generate-sisu-named
1399 (mkdir-p "build/classes/META-INF/sisu")
1400 (chmod "./sisu.sh" #o755)
1401 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1402 "build/classes/META-INF/sisu/javax.inject.Named")
1405 (install-from-pom "maven-resolver-provider/pom.xml")))))
1407 `(("maven-model" ,maven-model)
1408 ("maven-model-builder" ,maven-model-builder)
1409 ("maven-resolver-spi" ,maven-resolver-spi)
1410 ("maven-resolver-api" ,maven-resolver-api)
1411 ("maven-resolver-impl" ,maven-resolver-impl)
1412 ("maven-resolver-util" ,maven-resolver-util)
1413 ("maven-builder-support" ,maven-builder-support)
1414 ("maven-repository-metadata" ,maven-repository-metadata)
1415 ("java-plexus-utils" ,java-plexus-utils)
1416 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1417 ("java-guice" ,java-guice)
1418 ("java-javax-inject" ,java-javax-inject)))))
1420 (define-public maven-plugin-api
1422 (inherit maven-artifact)
1423 (name "maven-plugin-api")
1425 `(#:jar-name "maven-plugin-api.jar"
1426 #:source-dir "maven-plugin-api/src/main/java"
1428 #:test-dir "maven-plugin-api/src/test"
1430 (modify-phases %standard-phases
1431 (add-before 'build 'generate-models
1432 (lambda* (#:key inputs #:allow-other-keys)
1433 (define (modello-single-mode file version mode)
1434 (invoke "java" "org.codehaus.modello.ModelloCli"
1435 file mode "maven-plugin-api/src/main/java" version
1437 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1438 (modello-single-mode file "1.0.0" "java")
1439 (modello-single-mode file "1.0.0" "xpp3-reader")
1440 (modello-single-mode file "1.0.0" "xpp3-writer"))
1443 (install-from-pom "maven-plugin-api/pom.xml")))))
1445 `(("maven-artifact" ,maven-artifact)
1446 ("maven-model" ,maven-model)
1447 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1448 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1449 ("guice" ,java-guice)
1450 ("java-cglib" ,java-cglib)
1451 ("java-asm" ,java-asm)
1452 ("sisu-inject" ,java-eclipse-sisu-inject)
1453 ("javax-inject" ,java-javax-inject)
1454 ("utils" ,java-plexus-utils)))
1456 `(("modello" ,java-modello-core)
1458 ("classworlds" ,java-plexus-classworlds)
1459 ("guava" ,java-guava)
1460 ("xbean" ,java-geronimo-xbean-reflect)
1461 ("build-api" ,java-sisu-build-api)
1463 ("java" ,java-modello-plugins-java)
1464 ("xml" ,java-modello-plugins-xml)
1465 ("xpp3" ,java-modello-plugins-xpp3)
1467 ("java-junit" ,java-junit)))
1468 (description "Apache Maven is a software project management and comprehension
1469 tool. This package contains strictly the API for plugins -- composed of goals
1470 implemented by Mojos -- development.
1472 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1473 generally generated from plugin sources using maven-plugin-plugin.")))
1475 (define maven-core-bootstrap
1477 (inherit maven-artifact)
1480 `(#:jar-name "maven-core.jar"
1481 #:source-dir "src/main/java"
1483 ;; Tests need maven-compat, which requires maven-core
1486 (modify-phases %standard-phases
1487 (add-before 'configure 'chdir
1489 ;; Required for generating components.xml in maven-core
1490 (chdir "maven-core")
1492 (add-before 'build 'copy-resources
1494 (mkdir-p "build/classes/")
1495 (copy-recursively "src/main/resources" "build/classes")
1497 (add-after 'copy-resources 'fill-properties
1499 ;; This file controls the output of some mvn subcommands, such as
1501 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1502 (("\\$\\{buildNumber\\}") "guix_build")
1503 (("\\$\\{timestamp\\}") "0")
1504 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1505 (("\\$\\{distributionId\\}") "apache-maven")
1506 (("\\$\\{distributionShortName\\}") "Maven")
1507 (("\\$\\{distributionName\\}") "Apache Maven"))
1509 (add-before 'build 'generate-sisu-named
1511 (mkdir-p "build/classes/META-INF/sisu")
1512 (chmod "../sisu.sh" #o755)
1513 (invoke "../sisu.sh" "src/main/java"
1514 "build/classes/META-INF/sisu/javax.inject.Named")
1516 (add-before 'build 'generate-models
1517 (lambda* (#:key inputs #:allow-other-keys)
1518 (define (modello-single-mode file version mode)
1519 (invoke "java" "org.codehaus.modello.ModelloCli"
1520 file mode "src/main/java" version
1522 (let ((file "src/main/mdo/toolchains.mdo"))
1523 (modello-single-mode file "1.1.0" "java")
1524 (modello-single-mode file "1.1.0" "xpp3-reader")
1525 (modello-single-mode file "1.1.0" "xpp3-writer"))
1527 (add-before 'install 'fix-pom
1529 (substitute* "pom.xml"
1530 (("<classifier>no_aop</classifier>") ""))
1533 (install-from-pom "pom.xml")))))
1535 `(("maven-artifact" ,maven-artifact)
1536 ("maven-resolver-provider" ,maven-resolver-provider)
1537 ("maven-builder-support" ,maven-builder-support)
1538 ("maven-model" ,maven-model)
1539 ("maven-model-builder" ,maven-model-builder)
1540 ("maven-settings" ,maven-settings)
1541 ("maven-settings-builder" ,maven-settings-builder)
1542 ("maven-plugin-api" ,maven-plugin-api)
1543 ("maven-repository-metadata" ,maven-repository-metadata)
1544 ("maven-shared-utils" ,maven-shared-utils)
1545 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1546 ("java-plexus-utils" ,java-plexus-utils)
1547 ("java-commons-lang3" ,java-commons-lang3)
1548 ("java-guava" ,java-guava)
1549 ("java-guice" ,java-guice)
1550 ("maven-resolver-api" ,maven-resolver-api)
1551 ("maven-resolver-spi" ,maven-resolver-spi)
1552 ("maven-resolver-util" ,maven-resolver-util)
1553 ("maven-resolver-impl" ,maven-resolver-impl)
1554 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1555 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1556 ("java-javax-inject" ,java-javax-inject)
1557 ("java-plexus-classworld" ,java-plexus-classworlds)))
1559 `(("java-modello-core" ,java-modello-core)
1560 ("java-cglib" ,java-cglib)
1561 ("java-asm" ,java-asm)
1562 ("java-plexus-classworlds" ,java-plexus-classworlds)
1563 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1564 ("java-sisu-build-api" ,java-sisu-build-api)
1565 ("java-modello-plugins-java" ,java-modello-plugins-java)
1566 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1567 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1569 ("java-junit" ,java-junit)
1570 ("java-mockito-1" ,java-mockito-1)
1571 ("java-commons-jxpath" ,java-commons-jxpath)))
1572 (description "Apache Maven is a software project management and comprehension
1573 tool. This package contains the maven core classes managing the whole build
1576 (define-public maven-core
1578 (inherit maven-core-bootstrap)
1580 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1582 `(modify-phases ,phases
1583 (add-before 'build 'modify-metainf
1585 (substitute* "build.xml"
1586 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1588 (add-before 'build 'add-maven-files
1590 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1591 (copy-file "pom.xml"
1592 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1593 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1595 (format #t "version=~a~%
1596 groupId=org.apache.maven~%
1597 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1599 (add-after 'build 'generate-metadata
1601 (define (components file)
1602 (let ((sxml (with-input-from-file file
1603 (lambda _ (xml->sxml (current-input-port)
1604 #:trim-whitespace? #t)))))
1605 ;; Select the list of <component>s inside the <component-set>
1606 ;; and <components>.
1607 ((@ (ice-9 match) match) sxml
1611 ('components x ...))) x))))
1612 (use-modules (sxml simple))
1613 (delete-file "build/classes/META-INF/plexus/components.xml")
1614 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1615 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1616 "--source" "build/classes/META-INF/plexus"
1617 "--output" "build/classes/META-INF/plexus/components.t.xml"
1618 "--classes" "build/classes"
1619 "--descriptors" "build/classes")
1620 ;; Now we merge all other components from hand-written xml
1621 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1622 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1623 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1624 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1625 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1627 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1631 ,@(append generated-xml components-xml
1632 default-bindings-xml
1633 artifact-handlers-xml)))))))
1635 (add-after 'generate-metadata 'rebuild
1637 (invoke "ant" "jar")
1640 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1641 ("java-commons-cli" ,java-commons-cli)
1642 ("java-plexus-cli" ,java-plexus-cli)
1643 ("java-jdom2" ,java-jdom2)
1644 ("java-qdox" ,java-qdox)
1645 ("maven-core-boot" ,maven-core-bootstrap)
1646 ,@(package-native-inputs maven-core-bootstrap)))))
1648 (define-public maven-embedder
1650 (inherit maven-artifact)
1651 (name "maven-embedder")
1653 `(#:jar-name "maven-embedder.jar"
1654 #:source-dir "maven-embedder/src/main/java"
1655 #:test-dir "maven-embedder/src/test"
1656 #:test-exclude (list "**/MavenCliTest.java")
1659 (modify-phases %standard-phases
1660 (add-before 'build 'generate-sisu-named
1662 (mkdir-p "build/classes/META-INF/sisu")
1663 (chmod "sisu.sh" #o755)
1664 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1665 "build/classes/META-INF/sisu/javax.inject.Named")
1667 (add-before 'build 'generate-models
1668 (lambda* (#:key inputs #:allow-other-keys)
1669 (define (modello-single-mode file version mode)
1670 (invoke "java" "org.codehaus.modello.ModelloCli"
1671 file mode "maven-embedder/src/main/java" version
1673 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1674 (modello-single-mode file "1.0.0" "java")
1675 (modello-single-mode file "1.0.0" "xpp3-reader")
1676 (modello-single-mode file "1.0.0" "xpp3-writer"))
1678 (add-before 'check 'fix-test-paths
1680 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1681 (("target/test-classes") "build/test-classes"))
1683 (add-before 'check 'fix-test-compilation
1685 ;; Tests are in the java/ subdir. Other subdirectories contain
1686 ;; additional test plugins, with duplicate classes, so we can't
1687 ;; compile them. Also, they are meant to be built with maven, to
1688 ;; test its build process.
1689 (substitute* "build.xml"
1690 (("srcdir=\"maven-embedder/src/test\"")
1691 "srcdir=\"maven-embedder/src/test/java\""))
1694 (install-from-pom "maven-embedder/pom.xml")))))
1696 `(("maven-core" ,maven-core)
1697 ("maven-artifact" ,maven-artifact)
1698 ("maven-plugin-api" ,maven-plugin-api)
1699 ("maven-builder-support" ,maven-builder-support)
1700 ("maven-model" ,maven-model)
1701 ("maven-model-builder" ,maven-model-builder)
1702 ("maven-settings" ,maven-settings)
1703 ("maven-settings-builder" ,maven-settings-builder)
1704 ("maven-shared-utils" ,maven-shared-utils)
1705 ("java-plexus-classworlds" ,java-plexus-classworlds)
1706 ("java-plexus-util" ,java-plexus-utils)
1707 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1708 ("java-plexus-cipher" ,java-plexus-cipher)
1709 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1710 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1711 ("maven-resolevr-util" ,maven-resolver-util)
1712 ("maven-resolevr-api" ,maven-resolver-api)
1713 ("java-logback-core" ,java-logback-core)
1714 ("java-logback-classic" ,java-logback-classic)
1715 ("java-commons-cli" ,java-commons-cli)
1716 ("java-commons-io" ,java-commons-io)
1717 ("java-commons-lang3" ,java-commons-lang3)
1718 ("java-guava" ,java-guava)
1719 ("java-guice" ,java-guice)
1720 ("java-javax-inject" ,java-javax-inject)
1721 ("java-slf4j-api" ,java-slf4j-api)
1722 ("java-slf4j-simple" ,java-slf4j-simple)
1723 ("java-jsr250" ,java-jsr250)))
1725 `(("java-modello-core" ,java-modello-core)
1726 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1727 ("java-sisu-build-api" ,java-sisu-build-api)
1728 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1729 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1730 ("java-cglib" ,java-cglib)
1731 ("java-asm" ,java-asm)
1732 ("java-modello-plugins-java" ,java-modello-plugins-java)
1733 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1734 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1736 ("java-junit" ,java-junit)
1737 ("java-objenesis" ,java-objenesis)
1738 ("java-mockito-1" ,java-mockito-1)
1739 ("java-hamcrest-core" ,java-hamcrest-core)))
1740 (description "Apache Maven is a software project management and comprehension
1741 tool. This package contains a Maven embeddable component, with CLI and
1742 logging support.")))
1744 (define-public maven-compat
1746 (inherit maven-artifact)
1747 (name "maven-compat")
1749 `(#:jar-name "maven-compat.jar"
1750 #:source-dir "src/main/java"
1752 #:test-dir "src/test"
1754 (modify-phases %standard-phases
1755 ;; Tests assume we're in this directory
1756 (add-before 'configure 'chdir
1758 (chdir "maven-compat")
1760 (add-before 'build 'recreate-removed-jar
1762 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1764 (with-directory-excursion "src/test/resources"
1765 (with-output-to-file "artifact-install/artifact-1.0.jar"
1767 (format #t "dummy~%")))
1770 (with-output-to-file file
1772 (format #t "foo~%"))))
1773 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1774 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1775 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1776 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1777 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1778 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1779 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1780 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1781 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1782 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1783 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1784 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1785 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1786 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1787 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1788 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1789 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1790 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1791 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1792 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1793 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1794 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1795 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1796 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1797 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1798 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1799 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1800 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1801 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1802 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1803 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1804 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1805 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1806 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1807 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1808 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1809 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1810 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1811 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1812 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1813 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1814 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1815 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1816 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1817 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1818 (with-directory-excursion "local-repo/snapshot-test/jars"
1821 (with-output-to-file file
1824 (format #t "local"))))
1825 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1826 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1827 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1830 (with-directory-excursion
1831 (string-append "src/test/remote-repo/org/apache/maven/its/"
1833 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1836 (copy-file (string-append letter "-0.1.pom")
1837 (string-append dir "/pom.xml"))
1838 (with-output-to-file (string-append dir "/pom.properties")
1840 (format #t "version=0.1~%")
1841 (format #t "groupId=org.apache.maven.its")
1842 (format #t (string-append "artifactId=" letter))))
1843 (with-output-to-file "META-INF/MANIFEST.MF"
1845 (format #t "Manifest-Version: 1.0~%"))))
1846 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1847 (string-append letter "-0.1.jar") "META-INF")))
1850 (add-before 'build 'generate-models
1851 (lambda* (#:key inputs #:allow-other-keys)
1852 (define (modello-single-mode file version mode)
1853 (invoke "java" "org.codehaus.modello.ModelloCli"
1854 file mode "src/main/java" version
1856 (let ((file "src/main/mdo/profiles.mdo"))
1857 (modello-single-mode file "1.0.0" "java")
1858 (modello-single-mode file "1.0.0" "xpp3-reader")
1859 (modello-single-mode file "1.0.0" "xpp3-writer"))
1860 (let ((file "src/main/mdo/paramdoc.mdo"))
1861 (modello-single-mode file "1.0.0" "java")
1862 (modello-single-mode file "1.0.0" "xpp3-reader")
1863 (modello-single-mode file "1.0.0" "xpp3-writer"))
1865 (add-after 'build 'generate-metadata
1867 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1868 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1869 "--source" "src/main/java"
1870 "--output" "build/classes/META-INF/plexus/components.xml"
1871 "--classes" "build/classes"
1872 "--descriptors" "build/classes/META-INF")
1874 (add-before 'check 'build-tests
1876 (invoke "ant" "compile-tests")
1878 (add-after 'build-tests 'generate-test-metadata
1880 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1882 ":build/test-classes")
1883 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1884 "--source" "src/test/java"
1885 "--output" "build/test-classes/META-INF/plexus/components.xml"
1886 "--classes" "build/test-classes"
1887 "--descriptors" "build/test-classes/META-INF")
1889 (add-after 'generate-metadata 'rebuild
1891 (invoke "ant" "jar")
1894 (install-from-pom "pom.xml")))))
1896 `(("maven-artifact" ,maven-artifact)
1897 ("maven-repository-metadata" ,maven-repository-metadata)
1898 ("maven-builder-support" ,maven-builder-support)
1899 ("maven-model" ,maven-model)
1900 ("maven-model-builder" ,maven-model-builder)
1901 ("maven-settings" ,maven-settings)
1902 ("maven-settings-builder" ,maven-settings-builder)
1903 ("maven-core" ,maven-core)
1904 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1905 ("maven-wagon-file" ,maven-wagon-file)
1906 ("maven-resolver-api" ,maven-resolver-api)
1907 ("maven-resolver-util" ,maven-resolver-util)
1908 ("maven-resolver-spi" ,maven-resolver-spi)
1909 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1911 `(("java-modello-core" ,java-modello-core)
1912 ("java-plexus-utils" ,java-plexus-utils)
1913 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1914 ("java-plexus-classworlds" ,java-plexus-classworlds)
1915 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1916 ("java-sisu-build-api" ,java-sisu-build-api)
1917 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1918 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1919 ("java-javax-inject" ,java-javax-inject)
1920 ("java-guice" ,java-guice)
1921 ("java-guava" ,java-guava)
1922 ("java-cglib" ,java-cglib)
1923 ("java-asm" ,java-asm)
1924 ("java-modello-plugins-java" ,java-modello-plugins-java)
1925 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1926 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1928 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1929 ("java-commons-cli" ,java-commons-cli)
1930 ("java-plexus-cli" ,java-plexus-cli)
1931 ("java-jdom2" ,java-jdom2)
1932 ("maven-plugin-api" ,maven-plugin-api)
1933 ("java-qdox" ,java-qdox)
1935 ("java-plexus-cipher" ,java-plexus-cipher)
1936 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1937 ("java-jsr250" ,java-jsr250)
1938 ("java-cdi-api" ,java-cdi-api)
1939 ("java-junit" ,java-junit)
1940 ("maven-resolver-impl" ,maven-resolver-impl)
1941 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1942 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1943 ("java-commons-lang3" ,java-commons-lang3)
1944 ("java-aop" ,java-aopalliance)
1945 ("maven-resolver-provider" ,maven-resolver-provider)
1946 ("java-slf4j-api" ,java-slf4j-api)
1947 ("java-slf4j-simple" ,java-slf4j-simple)
1948 ,@(package-inputs java-slf4j-api)))
1949 (description "Apache Maven is a software project management and comprehension
1950 tool. This package contains Maven2 classes maintained as compatibility
1951 layer for plugins that need to keep Maven2 compatibility.")))
1953 (define-public maven
1955 (inherit maven-artifact)
1959 (modify-phases %standard-phases
1961 (lambda* (#:key inputs #:allow-other-keys)
1962 ;; Recreate the configuration for the loader
1963 (with-output-to-file "apache-maven/src/bin/m2.conf"
1965 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1967 (format #t "set maven.conf default ${maven.home}/conf~%")
1969 (format #t "[plexus.core]~%")
1970 (format #t "load ${maven.conf}/logging~%")
1971 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1972 ;; Reference every jar so plexus-classworlds can find them.
1974 (lambda (dependency)
1977 (format #t "load ~a~%" file))
1978 (find-files (assoc-ref inputs dependency) ".*.jar$")))
1979 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1980 "maven-builder-support" "maven-model" "maven-model-builder"
1981 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1982 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1983 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1984 "maven-resolver-connector-basic" "maven-resolver-provider"
1985 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1986 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1987 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1988 "maven-wagon-http-shared" "maven-wagon-tck-http"
1989 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1990 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1991 "java-javax-inject" "java-plexus-component-annotations"
1992 "java-plexus-utils" "java-plexus-interpolation"
1993 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1994 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1995 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1996 "java-slf4j-simple"))))
1997 (substitute* "apache-maven/src/bin/mvn"
2002 (assoc-ref inputs "java-plexus-classworlds")
2005 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
2009 (lambda* (#:key outputs #:allow-other-keys)
2010 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
2011 (conf (string-append (assoc-ref outputs "out") "/conf/")))
2012 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
2013 (for-each (lambda (file)
2014 (install-file (string-append "apache-maven/src/bin/" file)
2016 (chmod (string-append bin file) #o755))
2017 '("mvn" "mvnDebug" "mvnyjp"))
2018 (install-file "apache-maven/src/bin/m2.conf" bin)
2019 (copy-recursively "apache-maven/src/conf" conf))
2022 `(("java-plexus-classworlds" ,java-plexus-classworlds)
2023 ("maven-artifact" ,maven-artifact)
2024 ("maven-embedder" ,maven-embedder)
2025 ("maven-core" ,maven-core)
2026 ("maven-compat" ,maven-compat)
2027 ("maven-builder-support" ,maven-builder-support)
2028 ("maven-model" ,maven-model)
2029 ("maven-model-builder" ,maven-model-builder)
2030 ("maven-settings" ,maven-settings)
2031 ("maven-settings-builder" ,maven-settings-builder)
2032 ("maven-plugin-api" ,maven-plugin-api)
2033 ("maven-repository-metadata" ,maven-repository-metadata)
2034 ("maven-shared-utils" ,maven-shared-utils)
2035 ("maven-resolver-api" ,maven-resolver-api)
2036 ("maven-resolver-spi" ,maven-resolver-spi)
2037 ("maven-resolver-util" ,maven-resolver-util)
2038 ("maven-resolver-impl" ,maven-resolver-impl)
2039 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
2040 ("maven-resolver-provider" ,maven-resolver-provider)
2041 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
2042 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2043 ("maven-wagon-file" ,maven-wagon-file)
2044 ("maven-wagon-http" ,maven-wagon-http)
2045 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
2046 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
2047 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
2048 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
2049 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
2050 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2051 ("java-guice" ,java-guice)
2052 ("java-aopalliance" ,java-aopalliance)
2053 ("java-cglib" ,java-cglib)
2054 ("java-asm" ,java-asm)
2055 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
2056 ("java-javax-inject" ,java-javax-inject)
2057 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2058 ("java-plexus-utils" ,java-plexus-utils)
2059 ("java-plexus-interpolation" ,java-plexus-interpolation)
2060 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2061 ("java-plexus-cipher" ,java-plexus-cipher)
2062 ("java-guava" ,java-guava)
2063 ("java-jansi" ,java-jansi)
2064 ("java-jsr250" ,java-jsr250)
2065 ("java-cdi-api" ,java-cdi-api)
2066 ("java-commons-cli" ,java-commons-cli)
2067 ("java-commons-io" ,java-commons-io)
2068 ("java-commons-lang3" ,java-commons-lang3)
2069 ("java-slf4j-api" ,java-slf4j-api)
2070 ;; TODO: replace with maven-slf4j-provider
2071 ("java-slf4j-simple" ,java-slf4j-simple)))
2073 `(("coreutils" ,coreutils)
2075 (description "Apache Maven is a software project management and comprehension
2076 tool. Based on the concept of a project object model: builds, dependency
2077 management, documentation creation, site publication, and distribution
2078 publication are all controlled from the @file{pom.xml} declarative file. Maven
2079 can be extended by plugins to utilise a number of other development tools for
2080 reporting or the build process.")))
2082 ;; Many plugins require maven 3.0 as a dependency.
2083 (define maven-3.0-pom
2090 (url "https://github.com/apache/maven")
2091 (commit (string-append "maven-" version))))
2092 (file-name (git-file-name "maven" version))
2095 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2096 (modules '((guix build utils)))
2099 (for-each delete-file (find-files "." "\\.jar$"))
2100 (for-each (lambda (file) (chmod file #o644))
2101 (find-files "." "."))
2104 (search-patches "maven-generate-component-xml.patch"
2105 "maven-generate-javax-inject-named.patch"))))
2107 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2109 (define-public maven-3.0-artifact
2111 (inherit maven-artifact)
2112 (version (package-version maven-3.0-pom))
2113 (source (package-source maven-3.0-pom))
2117 (if (equal? (car input) "maven-pom")
2118 `("maven-pom" ,maven-3.0-pom)
2120 (package-propagated-inputs maven-artifact)))))
2122 (define-public maven-3.0-model
2124 (inherit maven-model)
2125 (version (package-version maven-3.0-pom))
2126 (source (package-source maven-3.0-pom))
2130 (if (equal? (car input) "maven-pom")
2131 `("maven-pom" ,maven-3.0-pom)
2133 (package-propagated-inputs maven-artifact)))
2135 `(#:jar-name "maven-model.jar"
2136 #:source-dir "maven-model/src/main/java"
2137 #:test-dir "maven-model/src/test"
2139 ((guix build ant-build-system)
2140 (guix build java-utils)
2141 (guix build syscalls)
2144 (modify-phases %standard-phases
2145 (add-after 'configure 'use-newer-model
2146 (lambda* (#:key inputs #:allow-other-keys)
2147 ;; The model has almost not changed, but the newer version is
2148 ;; needed to prevent an error in the newer modello we have
2149 (let ((source (assoc-ref inputs "maven-source"))
2150 (dir (mkdtemp! "maven-source-XXXXXXXX")))
2151 (with-directory-excursion dir
2152 (invoke "tar" "xf" source)
2153 (copy-file (car (find-files "." "maven.mdo"))
2154 "../maven-model/src/main/mdo/maven.mdo")))
2156 (add-before 'build 'generate-models
2157 (lambda* (#:key inputs #:allow-other-keys)
2158 (define (modello-single-mode file version mode)
2159 (invoke "java" "org.codehaus.modello.ModelloCli"
2160 file mode "maven-model/src/main/java" version
2161 "false" "true" "UTF-8"))
2162 (let ((file "maven-model/src/main/mdo/maven.mdo"))
2163 (modello-single-mode file "4.0.0" "java")
2164 (modello-single-mode file "4.0.0" "xpp3-reader")
2165 (modello-single-mode file "4.0.0" "xpp3-writer")
2166 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
2169 (install-from-pom "maven-model/pom.xml")))))
2171 `(("maven-source" ,(package-source maven-pom))
2172 ,@(package-inputs maven-model)))))
2174 (define-public maven-3.0-settings
2176 (inherit maven-settings)
2177 (version (package-version maven-3.0-pom))
2178 (source (package-source maven-3.0-pom))
2182 (if (equal? (car input) "maven-pom")
2183 `("maven-pom" ,maven-3.0-pom)
2185 (package-propagated-inputs maven-settings)))))
2187 (define-public maven-3.0-settings-builder
2189 (inherit maven-settings-builder)
2190 (version (package-version maven-3.0-pom))
2191 (source (package-source maven-3.0-pom))
2193 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2199 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2200 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2201 ("maven-builder-support" #f)
2203 (package-propagated-inputs maven-settings-builder)))))))
2205 (define-public maven-3.0-model-builder
2207 (inherit maven-model-builder)
2208 (version (package-version maven-3.0-pom))
2209 (source (package-source maven-3.0-pom))
2211 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2217 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2218 ("maven-model" `("maven-model" ,maven-3.0-model))
2219 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2220 ("maven-builder-support" #f)
2222 (package-propagated-inputs maven-model-builder)))))))
2224 (define-public maven-3.0-plugin-api
2226 (inherit maven-plugin-api)
2227 (version (package-version maven-3.0-pom))
2228 (source (package-source maven-3.0-pom))
2230 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2232 `(modify-phases ,phases
2233 (add-before 'install 'fix-pom
2235 (substitute* "maven-plugin-api/pom.xml"
2236 (("org.sonatype.sisu") "org.codehaus.plexus")
2237 (("sisu-inject-plexus") "plexus-container-default"))
2243 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2244 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2245 ("maven-model" `("maven-model" ,maven-3.0-model))
2247 (package-propagated-inputs maven-model-builder)))
2249 `(("java-plexus-container-default" ,java-plexus-container-default)
2250 ,@(package-native-inputs maven-plugin-api)))))
2252 (define-public maven-3.0-repository-metadata
2254 (inherit maven-repository-metadata)
2255 (version (package-version maven-3.0-pom))
2256 (source (package-source maven-3.0-pom))
2260 (if (equal? (car input) "maven-pom")
2261 `("maven-pom" ,maven-3.0-pom)
2263 (package-propagated-inputs maven-repository-metadata)))))
2265 (define-public maven-3.0-aether-provider
2267 (inherit maven-3.0-pom)
2268 (name "maven-aether-provider")
2270 `(#:jar-name "maven-aether-provider.jar"
2271 #:source-dir "maven-aether-provider/src/main/java"
2272 #:tests? #f; no tests in 3.0
2274 (modify-phases %standard-phases
2275 (add-after 'build 'generate-metadata
2277 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2278 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2279 "--source" "src/main/java"
2280 "--output" "build/classes/META-INF/plexus/components.xml"
2281 "--classes" "build/classes"
2282 "--descriptors" "build/classes/META-INF")
2284 (add-after 'generate-metadata 'rebuild
2286 (invoke "ant" "jar")
2289 (install-from-pom "maven-aether-provider/pom.xml")))))
2291 `(("maven-model" ,maven-3.0-model)
2292 ("maven-model-builder" ,maven-3.0-model-builder)
2293 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2294 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2295 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
2296 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2297 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
2298 ("java-plexus-utils" ,java-plexus-utils)
2299 ("maven-pom" ,maven-3.0-pom)))
2301 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))))
2303 (define-public maven-3.0-core
2305 (inherit maven-core)
2306 (version (package-version maven-3.0-pom))
2307 (source (package-source maven-3.0-pom))
2309 `(#:jar-name "maven-core.jar"
2310 #:source-dir "src/main/java"
2313 (modify-phases %standard-phases
2314 (add-before 'configure 'chdir
2316 ;; Required for generating components.xml in maven-core
2317 (chdir "maven-core")
2319 (add-before 'build 'generate-models
2320 (lambda* (#:key inputs #:allow-other-keys)
2321 (define (modello-single-mode file version mode)
2322 (invoke "java" "org.codehaus.modello.ModelloCli"
2323 file mode "src/main/java" version
2324 "false" "true" "UTF-8"))
2325 (let ((file "src/main/mdo/toolchains.mdo"))
2326 (modello-single-mode file "1.0.0" "java")
2327 (modello-single-mode file "1.0.0" "xpp3-reader")
2328 (modello-single-mode file "1.0.0" "xpp3-writer"))
2330 (add-before 'build 'copy-resources
2332 (mkdir-p "build/classes/")
2333 (copy-recursively "src/main/resources" "build/classes")
2335 (add-after 'build 'generate-metadata
2337 (define (components file)
2338 (let ((sxml (with-input-from-file file
2339 (lambda _ (xml->sxml (current-input-port)
2340 #:trim-whitespace? #t)))))
2341 ;; Select the list of <component>s inside the <component-set>
2342 ;; and <components>.
2343 ((@ (ice-9 match) match) sxml
2347 ('components x ...))) x))))
2348 (use-modules (sxml simple))
2349 (delete-file "build/classes/META-INF/plexus/components.xml")
2350 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2351 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2352 "--source" "build/classes/META-INF/plexus"
2353 "--output" "build/classes/META-INF/plexus/components.t.xml"
2354 "--classes" "build/classes"
2355 "--descriptors" "build/classes")
2356 ;; Now we merge all other components from hand-written xml
2357 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
2358 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
2359 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
2360 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
2362 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2366 ,@(append generated-xml components-xml
2367 artifact-handlers-xml)))))))
2369 (add-after 'generate-metadata 'rebuild
2371 (invoke "ant" "jar")
2373 (add-before 'install 'fix-pom
2375 (substitute* "pom.xml"
2376 (("org.sonatype.sisu") "org.codehaus.plexus")
2377 (("sisu-inject-plexus") "plexus-container-default"))
2380 (install-from-pom "pom.xml")))))
2382 `(("maven-model" ,maven-3.0-model)
2383 ("maven-settings" ,maven-3.0-settings)
2384 ("maven-settings-builder" ,maven-3.0-settings-builder)
2385 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2386 ("maven-artifact" ,maven-3.0-artifact)
2387 ("maven-model-builder" ,maven-3.0-model-builder)
2388 ("maven-aether-provider" ,maven-3.0-aether-provider)
2389 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2390 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2391 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2392 ("java-plexus-interpolation" ,java-plexus-interpolation)
2393 ("java-plexus-utils" ,java-plexus-utils)
2394 ("java-plexus-classworlds" ,java-plexus-classworlds)
2395 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2396 ("java-plexus-container-default" ,java-plexus-container-default)
2397 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2398 ("maven-pom" ,maven-3.0-pom)))))
2400 (define-public maven-3.0-compat
2402 (inherit maven-compat)
2403 (version (package-version maven-3.0-pom))
2404 (source (package-source maven-3.0-pom))
2406 `(#:tests? #f ;require an old version of java-easymock
2407 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2409 `(modify-phases ,phases
2410 (add-before 'install 'fix-pom
2412 (substitute* "pom.xml"
2413 (("org.sonatype.sisu") "org.codehaus.plexus")
2414 (("sisu-inject-plexus") "plexus-container-default"))
2416 (delete 'build-tests))))))
2418 `(("maven-model" ,maven-3.0-model)
2419 ("maven-model-builder" ,maven-3.0-model-builder)
2420 ("maven-settings" ,maven-3.0-settings)
2421 ("maven-settings-builder" ,maven-3.0-settings-builder)
2422 ("maven-artifact" ,maven-3.0-artifact)
2423 ("maven-core" ,maven-3.0-core)
2424 ("maven-aether-provider" ,maven-3.0-aether-provider)
2425 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2426 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2427 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2428 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2429 ("java-plexus-utils" ,java-plexus-utils)
2430 ("java-plexus-interpolation" ,java-plexus-interpolation)
2431 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2432 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2433 ("java-plexus-container-default" ,java-plexus-container-default)
2434 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2435 ("maven-pom" ,maven-3.0-pom)))))
2437 (define-public maven-shared-utils-3.0
2439 (inherit maven-shared-utils)
2443 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2444 "maven-shared-utils-" version "-source-release.zip"))
2447 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2449 `(("maven-core" ,maven-3.0-core)
2450 ("maven-components-parent-pom" ,maven-components-parent-pom-21)
2451 ,@(package-propagated-inputs maven-shared-utils)))))
2453 (define-public maven-shared-io
2455 (name "maven-shared-io")
2459 (uri (string-append "mirror://apache/maven/shared/"
2460 "maven-shared-io-" version
2461 "-source-release.zip"))
2464 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2465 (build-system ant-build-system)
2467 `(#:jar-name "maven-shared-io.jar"
2468 #:source-dir "src/main/java"
2469 #:test-dir "src/test"
2471 (modify-phases %standard-phases
2472 (add-before 'build 'copy-resources
2474 (copy-recursively "src/main/resources" "build/classes/")
2475 (copy-recursively "src/test/resources" "build/test-classes/")
2478 (install-from-pom "pom.xml")))))
2480 `(("maven-artifact" ,maven-3.0-artifact)
2481 ("maven-compat" ,maven-3.0-compat)
2482 ("maven-plugin-api" ,maven-3.0-plugin-api)
2483 ("maven-shared-utils" ,maven-shared-utils)
2484 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2485 ("java-plexus-utils" ,java-plexus-utils)
2486 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2489 ("java-junit" ,java-junit)
2490 ("java-easymock" ,java-easymock)))
2491 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2492 (synopsis "Tree-based API for resolution of Maven project dependencies")
2493 (description "This package provides a tree-based API for resolution of
2494 Maven project dependencies.")
2495 (license license:asl2.0)))
2497 (define-public maven-file-management
2499 (name "maven-file-management")
2503 (uri (string-append "mirror://apache/maven/shared/"
2504 "file-management-" version
2505 "-source-release.zip"))
2508 "0wisz6sm67axrwvx8a75mb9s03h7kzkzfw8j3aaa4sx4k9ph58da"))))
2509 (build-system ant-build-system)
2511 `(#:jar-name "maven-file-management.jar"
2512 #:source-dir "src/main/java"
2514 (modify-phases %standard-phases
2515 (add-before 'build 'copy-resources
2517 (copy-recursively "src/main/resources" "build/classes/")
2519 (add-before 'build 'generate-models
2520 (lambda* (#:key inputs #:allow-other-keys)
2521 (define (modello-single-mode file version mode)
2523 "org.codehaus.modello.ModelloCli"
2524 file mode "src/main/java" version
2526 (let ((file "src/main/mdo/fileset.mdo"))
2527 (modello-single-mode file "1.1.0" "java")
2528 (modello-single-mode file "1.1.0" "xpp3-reader")
2529 (modello-single-mode file "1.1.0" "xpp3-writer"))
2532 (install-from-pom "pom.xml")))))
2534 `(("maven-plugin-api" ,maven-3.0-plugin-api)
2535 ("maven-shared-io" ,maven-shared-io)
2536 ("maven-shared-utils" ,maven-shared-utils)
2537 ("java-plexus-utils" ,java-plexus-utils)
2538 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2540 `(("java-modello-core" ,java-modello-core)
2542 ("java-modellop-plugins-java" ,java-modello-plugins-java)
2543 ("java-modellop-plugins-xpp3" ,java-modello-plugins-xpp3)
2545 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2546 (synopsis "Tree-based API for resolution of Maven project dependencies")
2547 (description "This package provides a tree-based API for resolution of
2548 Maven project dependencies.")
2549 (license license:asl2.0)))
2551 (define-public maven-archiver
2553 (name "maven-archiver")
2557 (uri (string-append "mirror://apache/maven/shared/"
2558 "maven-archiver-" version
2559 "-source-release.zip"))
2562 "1204xkqj259brpk3yscprml0lbfbyn1vn5nrgqjk44z5vx127lbw"))))
2563 (build-system ant-build-system)
2565 `(#:jar-name "maven-archiver.jar"
2566 #:source-dir "src/main/java"
2568 (modify-phases %standard-phases
2570 (install-from-pom "pom.xml")))))
2572 `(("java-commons-io" ,java-commons-io)
2573 ("maven-artifact" ,maven-3.0-artifact)
2574 ("maven-core" ,maven-3.0-core)
2575 ("maven-model" ,maven-3.0-model)
2576 ("maven-shared-utils" ,maven-shared-utils)
2577 ("java-plexus-archiver" ,java-plexus-archiver)
2578 ("java-plexus-interpolation" ,java-plexus-interpolation)
2579 ("java-plexus-utils" ,java-plexus-utils)
2580 ("maen-parent-pom" ,maven-parent-pom-33)))
2582 `(("java-junit" ,java-junit)
2583 ("java-assertj" ,java-assertj)
2585 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2586 (synopsis "Tree-based API for resolution of Maven project dependencies")
2587 (description "This package provides a tree-based API for resolution of
2588 Maven project dependencies.")
2589 (license license:asl2.0)))
2591 (define-public maven-dependency-tree
2593 (name "maven-dependency-tree")
2597 (uri (string-append "mirror://apache/maven/shared/"
2598 "maven-dependency-tree-" version
2599 "-source-release.zip"))
2602 "0mxfslxvcmjs13jl30zhcg672j970dzn6ihh79w9ajh6sfqmlds2"))))
2603 (build-system ant-build-system)
2605 `(#:jar-name "maven-dependency-tree.jar"
2606 #:source-dir "src/main/java"
2608 (modify-phases %standard-phases
2610 (install-from-pom "pom.xml")))))
2612 `(("maven-core" ,maven-3.0-core)
2613 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2614 ("maven-parent-pom" ,maven-parent-pom-30)))
2616 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
2617 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2618 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2619 ("java-eclipse-aether-util" ,java-eclipse-aether-util)))
2622 ("java-junit" ,java-junit)))
2623 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2624 (synopsis "Tree-based API for resolution of Maven project dependencies")
2625 (description "This package provides a tree-based API for resolution of
2626 Maven project dependencies.")
2627 (license license:asl2.0)))
2629 (define-public maven-common-artifact-filters
2631 (name "maven-common-artifact-filters")
2635 (uri (string-append "mirror://apache/maven/shared/"
2636 "maven-common-artifact-filters-" version
2637 "-source-release.zip"))
2640 "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
2641 (build-system ant-build-system)
2643 `(#:jar-name "maven-common-artifact-filters.jar"
2644 #:source-dir "src/main/java"
2645 #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
2647 (modify-phases %standard-phases
2648 (add-before 'build 'remove-sisu
2650 ;; Replace sisu with an existing dependency, to prevent a failure
2651 ;; when rewritting dependency versions
2652 (substitute* "pom.xml"
2653 (("sisu-inject-plexus") "maven-plugin-api")
2654 (("org.sonatype.sisu") "org.apache.maven"))
2657 (install-from-pom "pom.xml")))))
2659 `(("maven-artifact" ,maven-3.0-artifact)
2660 ("maven-model" ,maven-3.0-model)
2661 ("maven-core" ,maven-3.0-core)
2662 ("maven-plugin-api" ,maven-3.0-plugin-api)
2663 ("maven-shared-utils" ,maven-shared-utils)
2664 ("maven-parent-pom" ,maven-parent-pom-33)
2665 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2666 ("java-sonatype-aether-util" ,java-sonatype-aether-util)))
2668 `(("maven-resolver-api" ,maven-resolver-api)
2669 ("maven-resolver-util" ,maven-resolver-util)))
2671 `(("unzip" ,unzip)))
2672 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2673 (synopsis "Tree-based API for resolution of Maven project dependencies")
2674 (description "This package provides a tree-based API for resolution of
2675 Maven project dependencies.")
2676 (license license:asl2.0)))
2678 (define-public maven-enforcer-api
2680 (name "maven-enforcer-api")
2681 (version "3.0.0-M3")
2684 (uri (string-append "mirror://apache/maven/enforcer/"
2685 "enforcer-" version "-source-release.zip"))
2688 "014cwj0dqa69nnlzcin8pk9wsjmmg71vsbcpb16cibcjpm6h9wjg"))
2690 (search-patches "maven-enforcer-api-fix-old-dependencies.patch"))))
2691 (build-system ant-build-system)
2693 `(#:jar-name "maven-enforcer-api.jar"
2694 #:source-dir "enforcer-api/src/main/java"
2695 #:tests? #f; no tests
2697 (modify-phases %standard-phases
2699 (install-from-pom "enforcer-api/pom.xml")))))
2701 `(("maven-plugin-api" ,maven-plugin-api)
2702 ("java-plexus-container-default" ,java-plexus-container-default)
2703 ("java-jsr305" ,java-jsr305)
2704 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))
2706 `(("unzip" ,unzip)))
2707 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2708 (synopsis "Tree-based API for resolution of Maven project dependencies")
2709 (description "This package provides a tree-based API for resolution of
2710 Maven project dependencies.")
2711 (license license:asl2.0)))
2713 (define maven-enforcer-parent-pom
2715 (inherit maven-enforcer-api)
2716 (name "maven-enforcer-parent-pom")
2720 (modify-phases %standard-phases
2724 (install-pom-file "pom.xml")))))
2726 `(("maven-parent-pom" ,maven-parent-pom-30)))))
2728 (define-public maven-enforcer-rules
2730 (inherit maven-enforcer-api)
2731 (name "maven-enforcer-rules")
2733 `(#:tests? #f; requires maven-plugin-testing-harness
2734 #:jar-name "maven-enforcer-rules.jar"
2735 #:source-dir "enforcer-rules/src/main/java"
2736 #:test-dir "enforcer-rules/src/test"
2738 (modify-phases %standard-phases
2740 (install-from-pom "enforcer-rules/pom.xml")))))
2742 `(("maven-artifact" ,maven-artifact)
2743 ("maven-plugin-api" ,maven-plugin-api)
2744 ("maven-core" ,maven-core)
2745 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
2746 ("java-commons-codec" ,java-commons-codec)
2747 ("java-commons-lang3" ,java-commons-lang3)
2748 ("maven-enforcer-api" ,maven-enforcer-api)
2749 ("maven-resolver-util" ,maven-resolver-util)
2750 ("java-bsh" ,java-bsh)
2751 ("maven-dependency-tree" ,maven-dependency-tree)
2752 ("maven-compat" ,maven-3.0-compat)
2753 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
2755 (define-public maven-enforcer-plugin
2757 (inherit maven-enforcer-api)
2758 (name "maven-enforcer-plugin")
2761 #:jar-name "maven-enforcer-plugin.jar"
2762 #:source-dir "maven-enforcer-plugin/src/main/java"
2764 (modify-phases %standard-phases
2765 (add-before 'build 'generate-plugin.xml
2766 (generate-plugin.xml "maven-enforcer-plugin/pom.xml"
2768 "maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/"
2770 (list "DisplayInfoMojo.java")
2771 (list "EnforceMojo.java"))))
2773 (install-from-pom "maven-enforcer-plugin/pom.xml")))))
2775 `(("maven-artifact" ,maven-artifact)
2776 ("maven-plugin-api" ,maven-plugin-api)
2777 ("maven-core" ,maven-core)
2778 ("java-plexus-utils" ,java-plexus-utils)
2779 ("maven-enforcer-api" ,maven-enforcer-api)
2780 ("maven-enforcer-rules" ,maven-enforcer-rules)
2781 ("maven-plugin-annotations" ,maven-plugin-annotations)
2782 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
2784 (define-public maven-artifact-transfer
2786 (name "maven-artifact-transfer")
2790 (uri (string-append "mirror://apache/maven/shared/"
2791 "maven-artifact-transfer-" version
2792 "-source-release.zip"))
2795 "0mkdjr3wnvaxqaq68sy7h4mqlq3xgwwp5s2anj5vbxfy4bsc1ivj"))))
2796 (build-system ant-build-system)
2798 `(#:tests? #f; require mockito 2
2799 #:jar-name "maven-artifact-transfer.jar"
2800 #:source-dir "src/main/java"
2802 (modify-phases %standard-phases
2803 (add-after 'build 'generate-metadata
2805 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2806 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2807 "--source" "src/main/java"
2808 "--output" "build/classes/META-INF/plexus/components.xml"
2809 "--classes" "build/classes"
2810 "--descriptors" "build/classes/META-INF")
2812 (add-after 'generate-metadata 'rebuild
2814 (invoke "ant" "jar")
2817 (install-from-pom "pom.xml")))))
2819 `(("java-commons-codec" ,java-commons-codec)
2820 ("maven-artifact" ,maven-3.0-artifact)
2821 ("maven-core" ,maven-3.0-core)
2822 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
2823 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2824 ("java-plexus-utils" ,java-plexus-utils)
2825 ("java-slf4j-api" ,java-slf4j-api)
2826 ("java-plexus-classworlds" ,java-plexus-classworlds)
2827 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2828 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2829 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
2830 ("java-eclipse-aether-impl" ,java-eclipse-aether-impl)))
2833 ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
2834 (home-page "https://maven.apache.org/shared/maven-artifact-transfer")
2835 (synopsis "API to install, deploy and resolve artifacts in Maven")
2836 (description "This package contains an API to install, deploy and resolve
2837 artifacts in Maven 3.")
2838 (license license:asl2.0)))
2840 (define-public maven-install-plugin
2842 (name "maven-install-plugin")
2843 (version "3.0.0-M1")
2846 (uri (string-append "mirror://apache/maven/plugins/"
2847 "maven-install-plugin-" version
2848 "-source-release.zip"))
2851 "1l9iydxririrair0i5sk2iypn9wspzbb666lc0ddg20yyr8w39dm"))))
2852 (build-system ant-build-system)
2854 `(#:tests? #f; require maven-plugin-testing-harness
2855 #:jar-name "maven-install-plugin.jar"
2856 #:source-dir "src/main/java"
2858 (modify-phases %standard-phases
2859 (add-before 'build 'fix-pom
2861 (substitute* "pom.xml"
2862 (("maven-project") "maven-core")
2863 (("maven-artifact-manager") "maven-artifact")
2866 (add-before 'build 'generate-plugin.xml
2867 (generate-plugin.xml "pom.xml"
2869 "src/main/java/org/apache/maven/plugins/install"
2871 (list "AbstractInstallMojo.java" "InstallFileMojo.java")
2872 (list "AbstractInstallMojo.java" "InstallMojo.java"))))
2874 (install-from-pom "pom.xml")))))
2876 `(("maven-artifact" ,maven-artifact)
2877 ("maven-plugin-api" ,maven-plugin-api)
2878 ("maven-compat" ,maven-compat)
2879 ("maven-artifact-transfer" ,maven-artifact-transfer)
2880 ("maven-plugins-pom-23" ,maven-plugins-pom-23)
2881 ("java-plexus-digest" ,java-plexus-digest)))
2883 `(("maven-plugin-annotations" ,maven-plugin-annotations)
2884 ("java-slf4j-api" ,java-slf4j-api)))
2886 `(("unzip" ,unzip)))
2887 (home-page "https://maven.apache.org/plugin/maven-install-plugin")
2888 (synopsis "Maven's install plugin")
2889 (description "The Install Plugin is used during the install phase to add
2890 artifact(s) to the local repository. The Install Plugin uses the information
2891 in the POM (groupId, artifactId, version) to determine the proper location for
2892 the artifact within the local repository.
2894 The local repository is the local cache where all artifacts needed for the
2895 build are stored. By default, it is located within the user's home directory
2896 (@file{~/.m2/repository}) but the location can be configured in
2897 @file{~/.m2/settings.xml} using the @code{<localRepository>} element.")
2898 (license license:asl2.0)))
2900 (define-public maven-filtering
2902 (name "maven-filtering")
2906 (uri (string-append "https://archive.apache.org/dist/maven/"
2907 "shared/maven-filtering-" version
2908 "-source-release.zip"))
2911 "09wrdhchnszd2l6h4z30ra0bv1a19qyjgac9z8zf1pn0m4nw05yz"))))
2912 (build-system ant-build-system)
2914 `(#:jar-name "maven-filtering.jar"
2915 #:source-dir "src/main/java"
2916 #:test-dir "src/test"
2917 ;; this test comes from sisu-build-api, not this package
2918 #:test-exclude (list "**/IncrementalResourceFilteringTest.java"
2919 "**/Abstract*.java")
2921 (modify-phases %standard-phases
2922 (add-after 'build 'generate-metadata
2924 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2925 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2926 "--source" "src/main/java"
2927 "--output" "build/classes/META-INF/plexus/components.xml"
2928 "--classes" "build/classes"
2929 "--descriptors" "build/classes/META-INF")
2931 (add-after 'generate-metadata 'rebuild
2933 (invoke "ant" "jar")
2935 (add-before 'check 'decompress-tests
2936 (lambda* (#:key inputs #:allow-other-keys)
2937 (let* ((build-api-source (assoc-ref inputs "java-sisu-build-api-origin"))
2938 (classes (string-append build-api-source "/src/test/java")))
2939 (copy-recursively classes "src/test/"))
2941 (add-before 'check 'fix-directory
2943 (substitute* (find-files "src/test" ".*.java$")
2944 (("target/test-classes/") "build/test-classes/"))))
2945 (add-before 'check 'copy-test-resources
2947 (copy-recursively "src/test/resources" "build/test-classes/")
2950 (install-from-pom "pom.xml")))))
2952 `(("maven-core" ,maven-3.0-core)
2953 ("maven-shared-utils" ,maven-shared-utils)
2954 ("java-plexus-utils" ,java-plexus-utils)
2955 ("java-plexus-interpolation" ,java-plexus-interpolation)
2956 ("java-sisu-build-api" ,java-sisu-build-api)
2957 ("maven-parent-pom" ,maven-parent-pom-30)))
2959 `(("java-jsr305" ,java-jsr305)))
2962 ("java-assertj" ,java-assertj)
2963 ("java-junit" ,java-junit)
2964 ("java-mockito" ,java-mockito-1)
2965 ("java-objenesis" ,java-objenesis)
2966 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
2967 ("java-sisu-build-api-origin" ,(package-source java-sisu-build-api))))
2968 (home-page "https://maven.apache.org/shared/maven-filtering")
2969 (synopsis "Shared component for all plugins that needs to filter resources")
2970 (description "This component provides an API to filter resources in Maven
2972 (license license:asl2.0)))
2974 (define-public maven-resources-plugin
2976 (name "maven-resources-plugin")
2980 (uri (string-append "https://github.com/apache/"
2981 "maven-resources-plugin/archive/"
2982 "maven-resources-plugin-" version ".tar.gz"))
2985 "1f5gnjg2xmqfxml6k0ydyd1sxxwzgnb24qn6avcc4mijwd8a84pl"))))
2986 (build-system ant-build-system)
2988 `(#:jar-name "maven-resources-plugin.jar"
2989 #:source-dir "src/main/java"
2990 #:test-dir "src/test"
2991 #:tests? #f; test depends on maven-plugin-test-harness
2993 (modify-phases %standard-phases
2994 (add-before 'build 'generate-plugin.xml
2995 (generate-plugin.xml "pom.xml" "resources"
2996 "src/main/java/org/apache/maven/plugins/resources"
2998 (list "ResourcesMojo.java" "CopyResourcesMojo.java")
2999 (list "ResourcesMojo.java")
3000 (list "ResourcesMojo.java" "TestResourcesMojo.java"))))
3002 (install-from-pom "pom.xml")))))
3004 `(("maven-plugin-api" ,maven-plugin-api)
3005 ("maven-core" ,maven-core)
3006 ("java-plexus-utils" ,java-plexus-utils)
3007 ("maven-filtering" ,maven-filtering)
3008 ("java-plexus-interpolation" ,java-plexus-interpolation)
3009 ("maven-parent-pom" ,maven-parent-pom-31)))
3011 `(("maven-plugin-annotations" ,maven-plugin-annotations)
3012 ("java-commons-io" ,java-commons-io)))
3014 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))
3015 (home-page "https://maven.apache.org/plugins/maven-resources-plugin")
3016 (synopsis "Maven plugin to collect and install resources")
3017 (description "The Resources Plugin handles the copying of project resources
3018 to the output directory. There are two different kinds of resources: main
3019 resources and test resources. The difference is that the main resources are
3020 the resources associated to the main source code while the test resources are
3021 associated to the test source code.
3023 Thus, this allows the separation of resources for the main source code and its
3025 (license license:asl2.0)))