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))
37 (define-public java-plexus-component-metadata
39 (inherit java-plexus-container-default)
40 (name "java-plexus-component-metadata")
42 `(#:jar-name "plexus-component-metadata.jar"
43 #:source-dir "src/main/java"
47 (modify-phases %standard-phases
48 (add-before 'configure 'chdir
50 (chdir "plexus-component-metadata")
52 (add-before 'build 'copy-resources
54 (copy-recursively "src/main/resources"
58 `(("java-plexus-container-default" ,java-plexus-container-default)
59 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
60 ("java-plexus-utils" ,java-plexus-utils)
61 ("java-plexus-cli" ,java-plexus-cli)
62 ("java-plexus-classworlds" ,java-plexus-classworlds)
63 ("maven-plugin-api" ,maven-plugin-api)
64 ("maven-plugin-annotations" ,maven-plugin-annotations)
65 ("maven-core-bootstrap" ,maven-core-bootstrap)
66 ("maven-model" ,maven-model)
67 ("java-commons-cli" ,java-commons-cli)
68 ("java-qdox" ,java-qdox)
69 ("java-jdom2" ,java-jdom2)
70 ("java-asm" ,java-asm)))
72 `(("java-junit" ,java-junit)
73 ("java-guava" ,java-guava)
74 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
75 (synopsis "Inversion-of-control container for Maven")
76 (description "The Plexus project provides a full software stack for creating
77 and executing software projects. Based on the Plexus container, the
78 applications can utilise component-oriented programming to build modular,
79 reusable components that can easily be assembled and reused. This package
80 provides the Maven plugin generating the component metadata.")))
82 (define-public maven-resolver-api
84 (name "maven-resolver-api")
89 (url "https://github.com/apache/maven-resolver")
90 (commit (string-append "maven-resolver-" version))))
91 (file-name (git-file-name name version))
94 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
95 (build-system ant-build-system)
97 `(#:jar-name "maven-resolver-api.jar"
98 #:source-dir "maven-resolver-api/src/main/java"
99 #:test-dir "maven-resolver-api/src/test"))
101 `(("java-asm" ,java-asm)
102 ("java-cglib" ,java-cglib)
103 ("java-hamcrest-core" ,java-hamcrest-core)
104 ("java-junit" ,java-junit)
105 ("java-mockito-1" ,java-mockito-1)
106 ("java-objenesis" ,java-objenesis)))
107 (home-page "https://github.com/apache/maven-resolver")
108 (synopsis "Maven repository system API")
109 (description "This package contains the API for the maven repository system.")
110 (license license:asl2.0)))
112 (define-public maven-resolver-spi
114 (inherit maven-resolver-api)
115 (name "maven-resolver-spi")
117 `(#:jar-name "maven-resolver-spi.jar"
118 #:source-dir "maven-resolver-spi/src/main/java"
119 #:test-dir "maven-resolver-spi/src/test"
122 `(("maven-resolver-api" ,maven-resolver-api)))
123 (synopsis "Maven repository system SPI")
124 (description "This package contains the service provider interface (SPI)
125 for repository system implementations and repository connectors.")))
127 (define-public maven-resolver-test-util
129 (inherit maven-resolver-api)
130 (name "maven-resolver-test-util")
132 `(#:jar-name "maven-resolver-test-util.jar"
133 #:source-dir "maven-resolver-test-util/src/main/java"
134 #:test-dir "maven-resolver-test-util/src/test"
137 `(("maven-resolver-api" ,maven-resolver-api)
138 ("maven-resolver-spi" ,maven-resolver-spi)))
139 (synopsis "Utility classes for testing the maven repository system")
140 (description "This package contains a collection of utility classes to
141 ease testing of the repository system.")))
143 (define-public maven-resolver-util
145 (inherit maven-resolver-api)
146 (name "maven-resolver-util")
148 `(#:jar-name "maven-resolver-util.jar"
149 #:source-dir "maven-resolver-util/src/main/java"
150 #:test-dir "maven-resolver-util/src/test"
153 `(("maven-resolver-api" ,maven-resolver-api)))
155 `(("java-junit" ,java-junit)
156 ("java-hamcrest-core" ,java-hamcrest-core)
157 ("maven-resolver-test-util" ,maven-resolver-test-util)))
158 (synopsis "Utility classes for the maven repository system")
159 (description "This package contains a collection of utility classes to
160 ease usage of the repository system.")))
162 (define-public maven-resolver-connector-basic
164 (inherit maven-resolver-api)
165 (name "maven-resolver-connector-basic")
167 `(#:jar-name "maven-resolver-connector-basic.jar"
168 #:source-dir "maven-resolver-connector-basic/src/main/java"
169 #:test-dir "maven-resolver-connector-basic/src/test"
172 (modify-phases %standard-phases
173 (add-before 'build 'generate-sisu
175 (mkdir-p "build/classes/META-INF/sisu")
176 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
178 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
181 `(("maven-resolver-api" ,maven-resolver-api)
182 ("maven-resolver-spi" ,maven-resolver-spi)
183 ("maven-resolver-util" ,maven-resolver-util)
184 ("java-javax-inject" ,java-javax-inject)
185 ("java-slf4j-api" ,java-slf4j-api)))
187 `(("java-junit" ,java-junit)
188 ("java-hamcrest-core" ,java-hamcrest-core)
189 ("maven-resolver-test-util" ,maven-resolver-test-util)))
190 (synopsis "Maven repository connector implementation")
191 (description "This package contains a repository connector implementation
192 for repositories using URI-based layouts.")))
194 (define-public maven-resolver-impl
196 (inherit maven-resolver-api)
197 (name "maven-resolver-impl")
199 `(#:jar-name "maven-resolver-impl.jar"
200 #:source-dir "maven-resolver-impl/src/main/java"
201 #:test-dir "maven-resolver-impl/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"
212 ;; Build this list by looking for files containing "@Named"
213 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
214 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
215 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
216 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
217 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
218 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
219 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
220 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
221 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
222 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
223 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
224 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
225 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
226 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
227 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
228 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
229 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
230 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
231 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
232 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
233 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
234 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
235 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
238 `(("maven-resolver-api" ,maven-resolver-api)
239 ("maven-resolver-spi" ,maven-resolver-spi)
240 ("maven-resolver-util" ,maven-resolver-util)
241 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
242 ("java-javax-inject" ,java-javax-inject)
243 ("java-guice" ,java-guice)
244 ("java-guava" ,java-guava)
245 ("java-cglib" ,java-cglib)
246 ("java-asm" ,java-asm)
247 ("jajva-aopalliance" ,java-aopalliance)
248 ("java-slf4j-api" ,java-slf4j-api)))
250 `(("java-junit" ,java-junit)
251 ("java-hamcrest-core" ,java-hamcrest-core)
252 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
254 (define-public maven-resolver-transport-wagon
256 (inherit maven-resolver-api)
257 (name "maven-resolver-transport-wagon")
259 `(#:jar-name "maven-resolver-transport-wagon.jar"
260 #:source-dir "maven-resolver-transport-wagon/src/main/java"
261 #:test-dir "maven-resolver-transport-wagon/src/test"
264 (modify-phases %standard-phases
265 (add-before 'build 'generate-sisu
267 (mkdir-p "build/classes/META-INF/sisu")
268 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
270 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
272 (add-before 'build 'generate-components.xml
274 (mkdir-p "build/classes/META-INF/plexus")
275 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
279 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
283 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
284 <role-hint>plexus</role-hint>
285 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
287 <isolated-realm>false</isolated-realm>
290 <role>org.codehaus.plexus.PlexusContainer</role>
292 <field-name>container</field-name>
297 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
298 <role-hint>plexus</role-hint>
299 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
301 <isolated-realm>false</isolated-realm>
304 <role>org.codehaus.plexus.PlexusContainer</role>
306 <field-name>container</field-name>
311 </component-set>\n"))))
314 `(("maven-resolver-api" ,maven-resolver-api)
315 ("maven-resolver-spi" ,maven-resolver-spi)
316 ("maven-resolver-util" ,maven-resolver-util)
317 ("java-javax-inject" ,java-javax-inject)
318 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
319 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
320 ("java-plexus-classworld" ,java-plexus-classworlds)
321 ("java-plexus-plexus-util" ,java-plexus-utils)
322 ("java-slf4j-api" ,java-slf4j-api)
323 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
324 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
326 `(("java-junit" ,java-junit)
327 ("java-hamcrest-core" ,java-hamcrest-core)
328 ("maven-resolver-test-util" ,maven-resolver-test-util)
329 ("java-guava" ,java-guava)
330 ("java-cglib" ,java-cglib)
331 ("java-asm" ,java-asm)
332 ("java-aopalliance" ,java-aopalliance)
333 ("java-guice" ,java-guice)))
334 (synopsis "Transport implementation for Maven")
335 (description "This package contains a transport implementation based on
336 Maven Wagon, for use in Maven.")))
338 (define-public maven-shared-utils
340 (name "maven-shared-utils")
344 (uri (string-append "mirror://apache/maven/shared/"
345 "maven-shared-utils-" version "-source-release.zip"))
348 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
349 (build-system ant-build-system)
351 `(#:jar-name "maven-shared-utils.jar"
352 #:source-dir "src/main/java"
355 (modify-phases %standard-phases
356 (add-before 'check 'remove-cyclic-dep
359 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
362 `(("java-jansi" ,java-jansi)
363 ("java-commons-io" ,java-commons-io)
364 ("java-jsr305" ,java-jsr305)
365 ("java-plexus-container-default" ,java-plexus-container-default)))
368 ("java-junit" ,java-junit)
369 ("java-hamcrest-core" ,java-hamcrest-core)
370 ("java-commons-lang3" ,java-commons-lang3)))
371 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
372 (synopsis "Plexus-util replacement for maven")
373 (description "This project aims to be a functional replacement for
374 plexus-utils in Maven. It is not a 100% API compatible replacement but a
375 replacement with improvements.")
376 (license license:asl2.0)))
378 (define-public maven-plugin-annotations
380 (name "maven-plugin-annotations")
384 (uri (string-append "mirror://apache/maven/"
385 "plugin-tools/maven-plugin-tools-" version
386 "-source-release.zip"))
387 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
388 (build-system ant-build-system)
390 `(#:jar-name "maven-plugin-annotations.jar"
391 #:source-dir "maven-plugin-annotations/src/main/java"
394 `(("maven-artifact" ,maven-artifact)))
397 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
398 (synopsis "Java 5 annotations to use in Mojos")
399 (description "This package contains Java 5 annotations for use in Mojos.")
400 (license license:asl2.0)))
402 (define-public maven-wagon-provider-api
404 (name "maven-wagon-provider-api")
408 (uri (string-append "mirror://apache/maven/wagon/"
409 "wagon-" version "-source-release.zip"))
412 "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
413 (build-system ant-build-system)
415 `(#:jar-name "maven-wagon-provider-api.jar"
416 #:source-dir "wagon-provider-api/src/main/java"
417 #:test-dir "wagon-provider-api/src/test"
419 (modify-phases %standard-phases
421 (install-from-pom "wagon-provider-api/pom.xml")))))
423 `(("java-plexus-utils" ,java-plexus-utils)
424 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
427 ("java-junit" ,java-junit)
428 ("java-easymock" ,java-easymock)))
429 (home-page "https://maven.apache.org/wagon")
430 (synopsis "Transport abstraction for Maven")
431 (description "Maven Wagon is a transport abstraction that is used in Maven's
432 artifact and repository handling code.")
433 (license license:asl2.0)))
435 (define maven-wagon-parent-pom
437 (inherit maven-wagon-provider-api)
441 (modify-phases %standard-phases
445 (install-pom-file "pom.xml")))))
447 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
449 `(("unzip" ,unzip)))))
451 (define-public maven-wagon-provider-test
453 (inherit maven-wagon-provider-api)
454 (name "maven-wagon-provider-test")
456 `(#:jar-name "maven-wagon-provider-test.jar"
457 #:source-dir "wagon-provider-test/src/main/java"
458 #:tests? #f; no tests
461 `(("java-plexus-utils" ,java-plexus-utils)
462 ("java-plexus-container-default" ,java-plexus-container-default)
463 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
464 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
465 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
466 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
467 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
468 ("java-slf4j-api" ,java-slf4j-api)
469 ("java-javaee-servletapi" ,java-javaee-servletapi)
470 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
471 (synopsis "Test classes from maven-wagon")
472 (description "Maven Wagon is a transport abstraction that is used in Maven's
473 artifact and repository handling code. This package contains common test
474 classes used in multiple maven-wagon components.")))
476 (define-public maven-wagon-file
478 (inherit maven-wagon-provider-api)
479 (name "maven-wagon-file")
481 `(#:jar-name "maven-wagon-file.jar"
482 #:source-dir "wagon-providers/wagon-file/src/main/java"
483 #:test-dir "wagon-providers/wagon-file/src/test"
486 (modify-phases %standard-phases
487 (add-before 'check 'fix-paths
489 ;; Tests assume they are run by maven, which copies test resources
490 ;; to target. Our ant-build-system does the same, but with the
492 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
493 (("target") "build"))
495 (add-after 'build 'generate-metadata
497 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
498 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
499 "--source" "wagon-providers/wagon-file/src/main/java"
500 "--output" "build/classes/META-INF/plexus/components.xml"
501 "--classes" "build/classes"
502 "--descriptors" "build/classes/META-INF")
504 (add-after 'generate-metadata 'rebuild
509 `(("java-plexus-utils" ,java-plexus-utils)
510 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
512 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
513 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
514 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
515 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
516 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
517 ("java-plexus-classworlds" ,java-plexus-classworlds)
518 ("java-guava" ,java-guava)
519 ("java-guice" ,java-guice)
520 ("java-javax-inject" ,java-javax-inject)
521 ("java-cglib" ,java-cglib)
522 ("java-slf4j-api" ,java-slf4j-api)
523 ("java-plexus-utils" ,java-plexus-utils)
524 ("java-plexus-cli" ,java-plexus-cli)
525 ("maven-plugin-api" ,maven-plugin-api)
526 ("maven-plugin-annotations" ,maven-plugin-annotations)
527 ("maven-core" ,maven-core)
528 ("maven-model" ,maven-model)
529 ("java-commons-cli" ,java-commons-cli)
530 ("java-qdox" ,java-qdox)
531 ("java-jdom2" ,java-jdom2)
532 ("java-asm" ,java-asm)
533 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
534 ,@(package-native-inputs maven-wagon-provider-api)))
535 (synopsis "Wagon provider that gets and puts artifacts using the file system")
536 (description "Maven Wagon is a transport abstraction that is used in Maven's
537 artifact and repository handling code. It uses providers, that are tools to
538 manage artifacts and deployment. This package contains the file provider which
539 gets and puts artifacts using the file system.")))
541 (define-public maven-wagon-tck-http
543 (inherit maven-wagon-provider-api)
544 (name "maven-wagon-tck-http")
546 `(#:jar-name "maven-wagon-tck-http.jar"
547 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
548 #:tests? #f; no tests
551 `(("java-plexus-util" ,java-plexus-utils)
552 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
553 ("java-javaee-servletapi" ,java-javaee-servletapi)
554 ("java-slf4j-api" ,java-slf4j-api)
555 ("java-commons-codec" ,java-commons-codec)
556 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
557 ("java-plexus-classworlds" ,java-plexus-classworlds)
558 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
559 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
560 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
561 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
562 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
563 (synopsis "Wagon HTTP Test Compatibility Kit")
564 (description "Maven Wagon is a transport abstraction that is used in Maven's
565 artifact and repository handling code. This package contains the HTTP
566 Test Compatibility Kit.")))
568 (define-public maven-wagon-http-shared
570 (inherit maven-wagon-provider-api)
571 (name "maven-wagon-http-shared")
573 `(#:jar-name "maven-wagon-http-shared.jar"
574 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
575 #:test-dir "wagon-providers/wagon-http-shared/src/test"
578 (modify-phases %standard-phases
579 (add-after 'build 'generate-metadata
581 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
582 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
583 "--source" "wagon-providers/wagon-http-shared/src/main/java"
584 "--output" "build/classes/META-INF/plexus/components.xml"
585 "--classes" "build/classes"
586 "--descriptors" "build/classes/META-INF")
588 (add-after 'generate-metadata 'rebuild
593 `(("java-plexus-utils" ,java-plexus-utils)
594 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
595 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
596 ("java-commons-io" ,java-commons-io)
597 ("java-jsoup" ,java-jsoup)
598 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
600 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
601 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
602 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
603 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
604 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
605 ("java-plexus-classworlds" ,java-plexus-classworlds)
606 ("java-guava" ,java-guava)
607 ("java-guice" ,java-guice)
608 ("java-javax-inject" ,java-javax-inject)
609 ("java-cglib" ,java-cglib)
610 ("java-slf4j-api" ,java-slf4j-api)
611 ("java-plexus-utils" ,java-plexus-utils)
612 ("java-plexus-cli" ,java-plexus-cli)
613 ("maven-plugin-api" ,maven-plugin-api)
614 ("maven-plugin-annotations" ,maven-plugin-annotations)
615 ("maven-core" ,maven-core)
616 ("maven-model" ,maven-model)
617 ("java-commons-cli" ,java-commons-cli)
618 ("java-qdox" ,java-qdox)
619 ("java-jdom2" ,java-jdom2)
620 ("java-asm" ,java-asm)
621 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
622 ,@(package-native-inputs maven-wagon-provider-api)))
623 (synopsis "Shared Library for wagon providers supporting HTTP.")
624 (description "Maven Wagon is a transport abstraction that is used in Maven's
625 artifact and repository handling code. It uses providers, that are tools to
626 manage artifacts and deployment. This package contains a shared library for
627 wagon providers supporting HTTP.")))
629 (define-public maven-wagon-http
631 (inherit maven-wagon-provider-api)
632 (name "maven-wagon-http")
634 `(#:jar-name "maven-wagon-http.jar"
635 #:source-dir "wagon-providers/wagon-http/src/main/java"
636 #:test-dir "wagon-providers/wagon-http/src/test"
639 ;; FIXME: javax.net.ssl.SSLHandshakeException:
640 ;; sun.security.validator.ValidatorException:
641 ;; PKIX path building failed:
642 ;; sun.security.provider.certpath.SunCertPathBuilderException:
643 ;; unable to find valid certification path to requested target
644 "**/HttpsWagonPreemptiveTest.java"
645 "**/HttpsWagonTest.java"
650 (modify-phases %standard-phases
651 (add-before 'build 'copy-resources
653 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
654 "build/classes/META-INF/plexus")
656 (add-before 'check 'fix-resource-path
658 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
659 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
660 (("src/test") "wagon-providers/wagon-http/src/test"))
663 `(("java-plexus-utils" ,java-plexus-utils)
664 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
665 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
666 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
667 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
668 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
670 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
671 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
672 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
673 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
674 ("java-plexus-container-default" ,java-plexus-container-default)
675 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
676 ("java-plexus-classworlds" ,java-plexus-classworlds)
677 ("java-guava" ,java-guava)
678 ("java-guice" ,java-guice)
679 ("java-inject" ,java-javax-inject)
680 ("java-cglib" ,java-cglib)
681 ("java-slf4j-api" ,java-slf4j-api)
682 ("java-plexus-utils" ,java-plexus-utils)
683 ("java-plexus-cli" ,java-plexus-cli)
684 ("maven-plugin-api" ,maven-plugin-api)
685 ("maven-plugin-annotations" ,maven-plugin-annotations)
686 ("maven-core" ,maven-core)
687 ("maven-model" ,maven-model)
688 ("java-commons-cli" ,java-commons-cli)
689 ("java-qdox" ,java-qdox)
690 ("java-jdom2" ,java-jdom2)
691 ("java-asm" ,java-asm)
692 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
693 ("java-javaee-servletapi" ,java-javaee-servletapi)
694 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
695 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
696 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
697 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
698 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
699 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
700 ("java-hamcrest-core" ,java-hamcrest-core)
701 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
702 ("java-commons-codec" ,java-commons-codec)
703 ("java-commons-io" ,java-commons-io)
704 ("java-jsoup" ,java-jsoup)
705 ("java-slf4j-simple" ,java-slf4j-simple)
706 ,@(package-native-inputs maven-wagon-provider-api)))
707 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
708 (description "Maven Wagon is a transport abstraction that is used in Maven's
709 artifact and repository handling code. It uses providers, that are tools to
710 manage artifacts and deployment. This package contains a Wagon provider that
711 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
713 (define-public maven-artifact
715 (name "maven-artifact")
719 (uri (string-append "mirror://apache/maven/"
720 "maven-3/" version "/source/"
721 "apache-maven-" version "-src.tar.gz"))
722 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
723 (modules '((guix build utils)))
726 (for-each delete-file (find-files "." "\\.jar$"))
729 (search-patches "maven-generate-component-xml.patch"
730 "maven-generate-javax-inject-named.patch"))))
731 (build-system ant-build-system)
733 `(#:jar-name "maven-artifact.jar"
734 #:source-dir "maven-artifact/src/main/java"
735 #:test-dir "maven-artifact/src/test"
736 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"))
738 `(("java-plexus-utils" ,java-plexus-utils)
739 ("java-commons-lang3" ,java-commons-lang3)))
741 `(("java-junit" ,java-junit)))
742 (home-page "https://maven.apache.org/")
743 (synopsis "Build system")
744 (description "Apache Maven is a software project management and comprehension
745 tool. This package contains the Maven Artifact classes, providing the
746 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
747 jar file is executable and provides a little tool to display how Maven parses
748 and compares versions:")
749 (license license:asl2.0)))
751 (define-public maven-model
753 (inherit maven-artifact)
756 `(#:jar-name "maven-model.jar"
757 #:source-dir "maven-model/src/main/java"
758 #:test-dir "maven-model/src/test"
761 (modify-phases %standard-phases
762 (add-before 'build 'generate-models
763 (lambda* (#:key inputs #:allow-other-keys)
764 (define (modello-single-mode file version mode)
765 (invoke "java" "org.codehaus.modello.ModelloCli"
766 file mode "maven-model/src/main/java" version
768 (let ((file "maven-model/src/main/mdo/maven.mdo"))
769 (modello-single-mode file "4.0.0" "java")
770 (modello-single-mode file "4.0.0" "xpp3-reader")
771 (modello-single-mode file "4.0.0" "xpp3-writer")
772 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
775 `(("java-commons-lang3" ,java-commons-lang3)
776 ("java-plexus-utils" ,java-plexus-utils)))
778 `(("java-modello-core" ,java-modello-core)
780 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
781 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
782 ("java-guice" ,java-guice)
783 ("java-cglib" ,java-cglib)
784 ("java-asm" ,java-asm)
785 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
786 ("java-javax-inject" ,java-javax-inject)
787 ("java-plexus-classworlds" ,java-plexus-classworlds)
788 ("java-guava" ,java-guava)
789 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
790 ("java-sisu-build-api" ,java-sisu-build-api)
792 ("java-modello-plugins-java" ,java-modello-plugins-java)
793 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
794 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
796 ("java-junit" ,java-junit)))
797 (description "Apache Maven is a software project management and comprehension
798 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
799 so really just plain Java objects.")))
801 (define-public maven-builder-support
803 (inherit maven-artifact)
804 (name "maven-builder-support")
806 `(#:jar-name "maven-builder-support.jar"
807 #:source-dir "maven-builder-support/src/main/java"
809 #:test-dir "maven-builder-support/src/test"
811 (modify-phases %standard-phases
812 (add-before 'check 'fix-paths
814 (with-directory-excursion "maven-builder-support/src/test/java"
816 '("org/apache/maven/building/FileSourceTest.java"
817 "org/apache/maven/building/UrlSourceTest.java")
818 (("target/test-classes") "maven-builder-support/src/test/resources")))
821 `(("java-plexus-utils" ,java-plexus-utils)
822 ("java-commons-lang3" ,java-commons-lang3)))
824 `(("java-junit" ,java-junit)
825 ("java-hamcrest-core" ,java-hamcrest-core)))
826 (description "Apache Maven is a software project management and comprehension
827 tool. This package contains a support library for descriptor builders (model,
828 setting, toolchains)")))
830 (define-public maven-settings
832 (inherit maven-artifact)
833 (name "maven-settings")
835 `(#:jar-name "maven-settings.jar"
836 #:source-dir "maven-settings/src/main/java"
838 #:tests? #f; no tests
840 (modify-phases %standard-phases
841 (add-before 'build 'generate-models
842 (lambda* (#:key inputs #:allow-other-keys)
843 (define (modello-single-mode file version mode)
844 (invoke "java" "org.codehaus.modello.ModelloCli"
845 file mode "maven-settings/src/main/java" version
847 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
848 (modello-single-mode file "1.1.0" "java")
849 (modello-single-mode file "1.1.0" "xpp3-reader")
850 (modello-single-mode file "1.1.0" "xpp3-writer"))
854 `(("java-modello-core" ,java-modello-core)
856 ;("container" ,java-plexus-container-default)
857 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
858 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
859 ("java-guice" ,java-guice)
860 ("java-cglib" ,java-cglib)
861 ("java-asm" ,java-asm)
862 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
863 ("java-javax-inject" ,java-javax-inject)
864 ("java-plexus-classworlds" ,java-plexus-classworlds)
865 ("java-plexus-utils" ,java-plexus-utils)
866 ("java-guava" ,java-guava)
867 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
868 ("java-sisu-build-api" ,java-sisu-build-api)
870 ("java-modello-plugins-java" ,java-modello-plugins-java)
871 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
872 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
873 (description "Apache Maven is a software project management and comprehension
874 tool. This package contains strictly the model for Maven settings, that is
875 simply plain java objects.")))
877 (define-public maven-settings-builder
879 (inherit maven-artifact)
880 (name "maven-settings-builder")
882 `(#:jar-name "maven-settings-builder.jar"
883 #:source-dir "maven-settings-builder/src/main/java"
885 #:test-dir "maven-settings-builder/src/test"
887 (modify-phases %standard-phases
888 (add-before 'build 'generate-components.xml
890 (mkdir-p "build/classes/META-INF/plexus")
891 (chmod "components.sh" #o755)
892 (invoke "./components.sh" "maven-settings-builder/src/main/java"
893 "build/classes/META-INF/plexus/components.xml")
896 `(("java-plexus-utils" ,java-plexus-utils)
897 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
898 ("java-plexus-interpolation" ,java-plexus-interpolation)
899 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
900 ("maven-builder-support" ,maven-builder-support)
901 ("maven-settings" ,maven-settings)
902 ("java-commons-lang3" ,java-commons-lang3)))
904 `(("java-junit" ,java-junit)))
905 (description "Apache Maven is a software project management and comprehension
906 tool. This package contains the effective model builder, with profile activation,
907 inheritance, interpolation, @dots{}")))
909 (define-public maven-model-builder
911 (inherit maven-artifact)
912 (name "maven-model-builder")
914 `(#:jar-name "maven-model-builder.jar"
915 #:source-dir "maven-model-builder/src/main/java"
917 #:test-dir "maven-model-builder/src/test"
919 (modify-phases %standard-phases
920 (add-before 'build 'copy-resources
922 (copy-recursively "maven-model-builder/src/main/resources"
925 (add-before 'build 'generate-components.xml
927 (mkdir-p "build/classes/META-INF/plexus")
928 (chmod "components.sh" #o755)
929 (invoke "./components.sh" "maven-model-builder/src/main/java"
930 "build/classes/META-INF/plexus/components.xml")
932 (add-before 'check 'fix-paths
934 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
935 (("src/test") "maven-model-builder/src/test"))
938 `(("model" ,maven-model)
939 ("artifact" ,maven-artifact)
940 ("support" ,maven-builder-support)
941 ("annotations" ,java-plexus-component-annotations)
942 ("utils" ,java-plexus-utils)
943 ("interpolation" ,java-plexus-interpolation)
944 ("lang3" ,java-commons-lang3)
945 ("guava" ,java-guava)))
947 `(("java-junit" ,java-junit)
948 ("java-hamcrest-core" ,java-hamcrest-core)
949 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
950 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
951 ("guice" ,java-guice)
952 ("java-cglib" ,java-cglib)
953 ("java-asm" ,java-asm)
954 ("sisu-inject" ,java-eclipse-sisu-inject)
955 ("javax-inject" ,java-javax-inject)
956 ("java-xmlunit" ,java-xmlunit)
957 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
958 ("xbean" ,java-geronimo-xbean-reflect)
959 ("classworlds" ,java-plexus-classworlds)))
960 (description "Apache Maven is a software project management and comprehension
961 tool. This package contains the effective model builder, with profile activation,
962 inheritance, interpolation, @dots{}")))
964 (define-public maven-repository-metadata
966 (inherit maven-artifact)
967 (name "maven-repository-metadata")
969 `(#:jar-name "maven-repository-metadata.jar"
970 #:source-dir "maven-repository-metadata/src/main/java"
972 #:tests? #f; no tests
974 (modify-phases %standard-phases
975 (add-before 'build 'generate-models
976 (lambda* (#:key inputs #:allow-other-keys)
977 (define (modello-single-mode file version mode)
978 (invoke "java" "org.codehaus.modello.ModelloCli"
979 file mode "maven-repository-metadata/src/main/java" version
981 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
982 (modello-single-mode file "1.1.0" "java")
983 (modello-single-mode file "1.1.0" "xpp3-reader")
984 (modello-single-mode file "1.1.0" "xpp3-writer"))
988 `(("modello" ,java-modello-core)
990 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
991 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
992 ("java-guice" ,java-guice)
993 ("java-cglib" ,java-cglib)
994 ("java-asm" ,java-asm)
995 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
996 ("java-javax-inject" ,java-javax-inject)
997 ("java-plexus-utils" ,java-plexus-utils)
998 ("java-plexus-classworlds" ,java-plexus-classworlds)
999 ("java-guava" ,java-guava)
1000 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1001 ("java-sisu-build-api" ,java-sisu-build-api)
1003 ("java-modello-plugins-java" ,java-modello-plugins-java)
1004 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1005 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1006 (description "Apache Maven is a software project management and comprehension
1007 tool. This package contains strictly the model for Maven Repository Metadata,
1008 so really just plain objects.")))
1010 (define-public maven-resolver-provider
1012 (inherit maven-artifact)
1013 (name "maven-resolver-provider")
1015 `(#:jar-name "maven-resolver-provider.jar"
1016 #:source-dir "maven-resolver-provider/src/main/java"
1017 #:test-dir "maven-resolver-provider/src/test"
1019 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1021 (modify-phases %standard-phases
1022 (add-before 'build 'generate-sisu-named
1024 (mkdir-p "build/classes/META-INF/sisu")
1025 (chmod "./sisu.sh" #o755)
1026 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1027 "build/classes/META-INF/sisu/javax.inject.Named")
1030 `(("maven-resolver-spi" ,maven-resolver-spi)
1031 ("maven-resolver-api" ,maven-resolver-api)
1032 ("maven-resolver-impl" ,maven-resolver-impl)
1033 ("maven-resolver-util" ,maven-resolver-util)
1034 ("maven-model" ,maven-model)
1035 ("maven-model-builder" ,maven-model-builder)
1036 ("maven-builder-support" ,maven-builder-support)
1037 ("maven-repository-metadata" ,maven-repository-metadata)
1038 ("java-plexus-utils" ,java-plexus-utils)
1039 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1040 ("java-commons-lang3" ,java-commons-lang3)
1041 ("java-guice" ,java-guice)
1042 ("java-guava" ,java-guava)
1043 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1044 ("java-javax-inject" ,java-javax-inject)))))
1046 (define-public maven-plugin-api
1048 (inherit maven-artifact)
1049 (name "maven-plugin-api")
1051 `(#:jar-name "maven-plugin-api.jar"
1052 #:source-dir "maven-plugin-api/src/main/java"
1054 #:test-dir "maven-plugin-api/src/test"
1056 (modify-phases %standard-phases
1057 (add-before 'build 'generate-models
1058 (lambda* (#:key inputs #:allow-other-keys)
1059 (define (modello-single-mode file version mode)
1060 (invoke "java" "org.codehaus.modello.ModelloCli"
1061 file mode "maven-plugin-api/src/main/java" version
1063 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1064 (modello-single-mode file "1.0.0" "java")
1065 (modello-single-mode file "1.0.0" "xpp3-reader")
1066 (modello-single-mode file "1.0.0" "xpp3-writer"))
1069 `(("maven-artifact" ,maven-artifact)
1070 ("maven-model" ,maven-model)
1071 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1072 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1073 ("guice" ,java-guice)
1074 ("java-cglib" ,java-cglib)
1075 ("java-asm" ,java-asm)
1076 ("sisu-inject" ,java-eclipse-sisu-inject)
1077 ("javax-inject" ,java-javax-inject)
1078 ("utils" ,java-plexus-utils)))
1080 `(("modello" ,java-modello-core)
1082 ("classworlds" ,java-plexus-classworlds)
1083 ("guava" ,java-guava)
1084 ("xbean" ,java-geronimo-xbean-reflect)
1085 ("build-api" ,java-sisu-build-api)
1087 ("java" ,java-modello-plugins-java)
1088 ("xml" ,java-modello-plugins-xml)
1089 ("xpp3" ,java-modello-plugins-xpp3)
1091 ("java-junit" ,java-junit)))
1092 (description "Apache Maven is a software project management and comprehension
1093 tool. This package contains strictly the API for plugins -- composed of goals
1094 implemented by Mojos -- development.
1096 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1097 generally generated from plugin sources using maven-plugin-plugin.")))
1099 (define maven-core-bootstrap
1101 (inherit maven-artifact)
1104 `(#:jar-name "maven-core.jar"
1105 #:source-dir "src/main/java"
1107 ;; Tests need maven-compat, which requires maven-core
1110 (modify-phases %standard-phases
1111 (add-before 'configure 'chdir
1113 ;; Required for generating components.xml in maven-core
1114 (chdir "maven-core")
1116 (add-before 'build 'copy-resources
1118 (mkdir-p "build/classes/")
1119 (copy-recursively "src/main/resources" "build/classes")
1121 (add-after 'copy-resources 'fill-properties
1123 ;; This file controls the output of some mvn subcommands, such as
1125 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1126 (("\\$\\{buildNumber\\}") "guix_build")
1127 (("\\$\\{timestamp\\}") "0")
1128 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1129 (("\\$\\{distributionId\\}") "apache-maven")
1130 (("\\$\\{distributionShortName\\}") "Maven")
1131 (("\\$\\{distributionName\\}") "Apache Maven"))
1133 (add-before 'build 'generate-sisu-named
1135 (mkdir-p "build/classes/META-INF/sisu")
1136 (chmod "../sisu.sh" #o755)
1137 (invoke "../sisu.sh" "src/main/java"
1138 "build/classes/META-INF/sisu/javax.inject.Named")
1140 (add-before 'build 'generate-models
1141 (lambda* (#:key inputs #:allow-other-keys)
1142 (define (modello-single-mode file version mode)
1143 (invoke "java" "org.codehaus.modello.ModelloCli"
1144 file mode "src/main/java" version
1146 (let ((file "src/main/mdo/toolchains.mdo"))
1147 (modello-single-mode file "1.1.0" "java")
1148 (modello-single-mode file "1.1.0" "xpp3-reader")
1149 (modello-single-mode file "1.1.0" "xpp3-writer"))
1152 `(("maven-artifact" ,maven-artifact)
1153 ("maven-resolver-provider" ,maven-resolver-provider)
1154 ("maven-builder-support" ,maven-builder-support)
1155 ("maven-model" ,maven-model)
1156 ("maven-model-builder" ,maven-model-builder)
1157 ("maven-settings" ,maven-settings)
1158 ("maven-settings-builder" ,maven-settings-builder)
1159 ("maven-plugin-api" ,maven-plugin-api)
1160 ("maven-repository-metadata" ,maven-repository-metadata)
1161 ("maven-shared-utils" ,maven-shared-utils)
1162 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1163 ("java-plexus-utils" ,java-plexus-utils)
1164 ("java-commons-lang3" ,java-commons-lang3)
1165 ("java-guava" ,java-guava)
1166 ("java-guice" ,java-guice)
1167 ("maven-resolver-api" ,maven-resolver-api)
1168 ("maven-resolver-spi" ,maven-resolver-spi)
1169 ("maven-resolver-util" ,maven-resolver-util)
1170 ("maven-resolver-impl" ,maven-resolver-impl)
1171 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1172 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1173 ("java-javax-inject" ,java-javax-inject)
1174 ("java-plexus-classworld" ,java-plexus-classworlds)))
1176 `(("java-modello-core" ,java-modello-core)
1177 ("java-cglib" ,java-cglib)
1178 ("java-asm" ,java-asm)
1179 ("java-plexus-classworlds" ,java-plexus-classworlds)
1180 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1181 ("java-sisu-build-api" ,java-sisu-build-api)
1182 ("java-modello-plugins-java" ,java-modello-plugins-java)
1183 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1184 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1186 ("java-junit" ,java-junit)
1187 ("java-mockito-1" ,java-mockito-1)
1188 ("java-commons-jxpath" ,java-commons-jxpath)))
1189 (description "Apache Maven is a software project management and comprehension
1190 tool. This package contains the maven core classes managing the whole build
1193 (define-public maven-core
1195 (inherit maven-core-bootstrap)
1197 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1199 `(modify-phases ,phases
1200 (add-before 'build 'modify-metainf
1202 (substitute* "build.xml"
1203 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1205 (add-before 'build 'add-maven-files
1207 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1208 (copy-file "pom.xml"
1209 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1210 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1212 (format #t "version=~a~%
1213 groupId=org.apache.maven~%
1214 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1216 (add-after 'build 'generate-metadata
1218 (define (components file)
1219 (let ((sxml (with-input-from-file file
1220 (lambda _ (xml->sxml (current-input-port)
1221 #:trim-whitespace? #t)))))
1222 ;; Select the list of <component>s inside the <component-set>
1223 ;; and <components>.
1224 ((@ (ice-9 match) match) sxml
1228 ('components x ...))) x))))
1229 (use-modules (sxml simple))
1230 (delete-file "build/classes/META-INF/plexus/components.xml")
1231 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1232 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1233 "--source" "build/classes/META-INF/plexus"
1234 "--output" "build/classes/META-INF/plexus/components.t.xml"
1235 "--classes" "build/classes"
1236 "--descriptors" "build/classes")
1237 ;; Now we merge all other components from hand-written xml
1238 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1239 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1240 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1241 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1242 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1244 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1248 ,@(append generated-xml components-xml
1249 default-bindings-xml
1250 artifact-handlers-xml)))))))
1252 (add-after 'generate-metadata 'rebuild
1254 (invoke "ant" "jar")
1257 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1258 ("java-commons-cli" ,java-commons-cli)
1259 ("java-plexus-cli" ,java-plexus-cli)
1260 ("java-jdom2" ,java-jdom2)
1261 ("java-qdox" ,java-qdox)
1262 ("maven-core-boot" ,maven-core-bootstrap)
1263 ,@(package-native-inputs maven-core-bootstrap)))))
1265 (define-public maven-embedder
1267 (inherit maven-artifact)
1268 (name "maven-embedder")
1270 `(#:jar-name "maven-embedder.jar"
1271 #:source-dir "maven-embedder/src/main/java"
1272 #:test-dir "maven-embedder/src/test"
1273 #:test-exclude (list "**/MavenCliTest.java")
1276 (modify-phases %standard-phases
1277 (add-before 'build 'generate-sisu-named
1279 (mkdir-p "build/classes/META-INF/sisu")
1280 (chmod "sisu.sh" #o755)
1281 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1282 "build/classes/META-INF/sisu/javax.inject.Named")
1284 (add-before 'build 'generate-models
1285 (lambda* (#:key inputs #:allow-other-keys)
1286 (define (modello-single-mode file version mode)
1287 (invoke "java" "org.codehaus.modello.ModelloCli"
1288 file mode "maven-embedder/src/main/java" version
1290 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1291 (modello-single-mode file "1.0.0" "java")
1292 (modello-single-mode file "1.0.0" "xpp3-reader")
1293 (modello-single-mode file "1.0.0" "xpp3-writer"))
1295 (add-before 'check 'fix-test-paths
1297 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1298 (("target/test-classes") "build/test-classes"))
1300 (add-before 'check 'fix-test-compilation
1302 ;; Tests are in the java/ subdir. Other subdirectories contain
1303 ;; additional test plugins, with duplicate classes, so we can't
1304 ;; compile them. Also, they are meant to be built with maven, to
1305 ;; test its build process.
1306 (substitute* "build.xml"
1307 (("srcdir=\"maven-embedder/src/test\"")
1308 "srcdir=\"maven-embedder/src/test/java\""))
1311 `(("maven-core" ,maven-core)
1312 ("maven-artifact" ,maven-artifact)
1313 ("maven-plugin-api" ,maven-plugin-api)
1314 ("maven-builder-support" ,maven-builder-support)
1315 ("maven-model" ,maven-model)
1316 ("maven-model-builder" ,maven-model-builder)
1317 ("maven-settings" ,maven-settings)
1318 ("maven-settings-builder" ,maven-settings-builder)
1319 ("maven-shared-utils" ,maven-shared-utils)
1320 ("java-plexus-classworlds" ,java-plexus-classworlds)
1321 ("java-plexus-util" ,java-plexus-utils)
1322 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1323 ("java-plexus-cipher" ,java-plexus-cipher)
1324 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1325 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1326 ("maven-resolevr-util" ,maven-resolver-util)
1327 ("maven-resolevr-api" ,maven-resolver-api)
1328 ("java-logback-core" ,java-logback-core)
1329 ("java-logback-classic" ,java-logback-classic)
1330 ("java-commons-cli" ,java-commons-cli)
1331 ("java-commons-io" ,java-commons-io)
1332 ("java-commons-lang3" ,java-commons-lang3)
1333 ("java-guava" ,java-guava)
1334 ("java-guice" ,java-guice)
1335 ("java-javax-inject" ,java-javax-inject)
1336 ("java-slf4j-api" ,java-slf4j-api)
1337 ("java-slf4j-simple" ,java-slf4j-simple)))
1339 `(("java-modello-core" ,java-modello-core)
1340 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1341 ("java-sisu-build-api" ,java-sisu-build-api)
1342 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1343 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1344 ("java-cglib" ,java-cglib)
1345 ("java-asm" ,java-asm)
1346 ("java-modello-plugins-java" ,java-modello-plugins-java)
1347 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1348 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1350 ("java-junit" ,java-junit)
1351 ("java-objenesis" ,java-objenesis)
1352 ("java-mockito-1" ,java-mockito-1)
1353 ("java-hamcrest-core" ,java-hamcrest-core)))
1354 (description "Apache Maven is a software project management and comprehension
1355 tool. This package contains a Maven embeddable component, with CLI and
1356 logging support.")))
1358 (define-public maven-compat
1360 (inherit maven-artifact)
1361 (name "maven-compat")
1363 `(#:jar-name "maven-compat.jar"
1364 #:source-dir "src/main/java"
1366 #:test-dir "src/test"
1368 (modify-phases %standard-phases
1369 ;; Tests assume we're in this directory
1370 (add-before 'configure 'chdir
1372 (chdir "maven-compat")
1374 (add-before 'build 'recreate-removed-jar
1376 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1378 (with-directory-excursion "src/test/resources"
1379 (with-output-to-file "artifact-install/artifact-1.0.jar"
1381 (format #t "dummy~%")))
1384 (with-output-to-file file
1386 (format #t "foo~%"))))
1387 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1388 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1389 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1390 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1391 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1392 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1393 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1394 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1395 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1396 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1397 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1398 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1399 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1400 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1401 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1402 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1403 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1404 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1405 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1406 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1407 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1408 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1409 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1410 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1411 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1412 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1413 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1414 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1415 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1416 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1417 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1418 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1419 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1420 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1421 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1422 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1423 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1424 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1425 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1426 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1427 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1428 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1429 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1430 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1431 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1432 (with-directory-excursion "local-repo/snapshot-test/jars"
1435 (with-output-to-file file
1438 (format #t "local"))))
1439 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1440 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1441 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1444 (with-directory-excursion
1445 (string-append "src/test/remote-repo/org/apache/maven/its/"
1447 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1450 (copy-file (string-append letter "-0.1.pom")
1451 (string-append dir "/pom.xml"))
1452 (with-output-to-file (string-append dir "/pom.properties")
1454 (format #t "version=0.1~%")
1455 (format #t "groupId=org.apache.maven.its")
1456 (format #t (string-append "artifactId=" letter))))
1457 (with-output-to-file "META-INF/MANIFEST.MF"
1459 (format #t "Manifest-Version: 1.0~%"))))
1460 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1461 (string-append letter "-0.1.jar") "META-INF")))
1464 (add-before 'build 'generate-models
1465 (lambda* (#:key inputs #:allow-other-keys)
1466 (define (modello-single-mode file version mode)
1467 (invoke "java" "org.codehaus.modello.ModelloCli"
1468 file mode "src/main/java" version
1470 (let ((file "src/main/mdo/profiles.mdo"))
1471 (modello-single-mode file "1.0.0" "java")
1472 (modello-single-mode file "1.0.0" "xpp3-reader")
1473 (modello-single-mode file "1.0.0" "xpp3-writer"))
1474 (let ((file "src/main/mdo/paramdoc.mdo"))
1475 (modello-single-mode file "1.0.0" "java")
1476 (modello-single-mode file "1.0.0" "xpp3-reader")
1477 (modello-single-mode file "1.0.0" "xpp3-writer"))
1479 (add-after 'build 'generate-metadata
1481 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1482 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1483 "--source" "src/main/java"
1484 "--output" "build/classes/META-INF/plexus/components.xml"
1485 "--classes" "build/classes"
1486 "--descriptors" "build/classes/META-INF")
1488 (add-before 'check 'build-tests
1490 (invoke "ant" "compile-tests")
1492 (add-after 'build-tests 'generate-test-metadata
1494 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1496 ":build/test-classes")
1497 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1498 "--source" "src/test/java"
1499 "--output" "build/test-classes/META-INF/plexus/components.xml"
1500 "--classes" "build/test-classes"
1501 "--descriptors" "build/test-classes/META-INF")
1503 (add-after 'generate-metadata 'rebuild
1505 (invoke "ant" "jar")
1508 `(("maven-artifact" ,maven-artifact)
1509 ("maven-repository-metadata" ,maven-repository-metadata)
1510 ("maven-builder-support" ,maven-builder-support)
1511 ("maven-model" ,maven-model)
1512 ("maven-model-builder" ,maven-model-builder)
1513 ("maven-settings" ,maven-settings)
1514 ("maven-settings-builder" ,maven-settings-builder)
1515 ("maven-core" ,maven-core)
1516 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1517 ("maven-wagon-file" ,maven-wagon-file)
1518 ("maven-resolver-api" ,maven-resolver-api)
1519 ("maven-resolver-util" ,maven-resolver-util)
1520 ("maven-resolver-spi" ,maven-resolver-spi)
1521 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1523 `(("java-modello-core" ,java-modello-core)
1524 ("java-plexus-utils" ,java-plexus-utils)
1525 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1526 ("java-plexus-classworlds" ,java-plexus-classworlds)
1527 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1528 ("java-sisu-build-api" ,java-sisu-build-api)
1529 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1530 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1531 ("java-javax-inject" ,java-javax-inject)
1532 ("java-guice" ,java-guice)
1533 ("java-guava" ,java-guava)
1534 ("java-cglib" ,java-cglib)
1535 ("java-asm" ,java-asm)
1536 ("java-modello-plugins-java" ,java-modello-plugins-java)
1537 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1538 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1540 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1541 ("java-commons-cli" ,java-commons-cli)
1542 ("java-plexus-cli" ,java-plexus-cli)
1543 ("java-jdom2" ,java-jdom2)
1544 ("maven-plugin-api" ,maven-plugin-api)
1545 ("java-qdox" ,java-qdox)
1547 ("java-plexus-cipher" ,java-plexus-cipher)
1548 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1549 ("java-jsr250" ,java-jsr250)
1550 ("java-cdi-api" ,java-cdi-api)
1551 ("java-junit" ,java-junit)
1552 ("maven-resolver-impl" ,maven-resolver-impl)
1553 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1554 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1555 ("java-commons-lang3" ,java-commons-lang3)
1556 ("java-aop" ,java-aopalliance)
1557 ("maven-resolver-provider" ,maven-resolver-provider)
1558 ("java-slf4j-api" ,java-slf4j-api)
1559 ("java-slf4j-simple" ,java-slf4j-simple)
1560 ,@(package-inputs java-slf4j-api)))
1561 (description "Apache Maven is a software project management and comprehension
1562 tool. This package contains Maven2 classes maintained as compatibility
1563 layer for plugins that need to keep Maven2 compatibility.")))
1565 (define-public maven
1567 (inherit maven-artifact)
1571 (modify-phases %standard-phases
1573 (lambda* (#:key inputs #:allow-other-keys)
1574 ;; Recreate the configuration for the loader
1575 (with-output-to-file "apache-maven/src/bin/m2.conf"
1577 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1579 (format #t "set maven.conf default ${maven.home}/conf~%")
1581 (format #t "[plexus.core]~%")
1582 (format #t "load ${maven.conf}/logging~%")
1583 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1584 ;; Reference every jar so plexus-classworlds can find them.
1586 (lambda (dependency)
1587 (format #t "load ~a/share/java/*.jar~%"
1588 (assoc-ref inputs dependency)))
1589 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1590 "maven-builder-support" "maven-model" "maven-model-builder"
1591 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1592 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1593 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1594 "maven-resolver-connector-basic" "maven-resolver-provider"
1595 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1596 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1597 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1598 "maven-wagon-http-shared" "maven-wagon-tck-http"
1599 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1600 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1601 "java-javax-inject" "java-plexus-component-annotations"
1602 "java-plexus-utils" "java-plexus-interpolation"
1603 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1604 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1605 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1606 "java-slf4j-simple"))))
1607 (substitute* "apache-maven/src/bin/mvn"
1612 (assoc-ref inputs "java-plexus-classworlds")
1615 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1619 (lambda* (#:key outputs #:allow-other-keys)
1620 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1621 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1622 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1623 (for-each (lambda (file)
1624 (install-file (string-append "apache-maven/src/bin/" file)
1626 (chmod (string-append bin file) #o755))
1627 '("mvn" "mvnDebug" "mvnyjp"))
1628 (install-file "apache-maven/src/bin/m2.conf" bin)
1629 (copy-recursively "apache-maven/src/conf" conf))
1632 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1633 ("maven-artifact" ,maven-artifact)
1634 ("maven-embedder" ,maven-embedder)
1635 ("maven-core" ,maven-core)
1636 ("maven-compat" ,maven-compat)
1637 ("maven-builder-support" ,maven-builder-support)
1638 ("maven-model" ,maven-model)
1639 ("maven-model-builder" ,maven-model-builder)
1640 ("maven-settings" ,maven-settings)
1641 ("maven-settings-builder" ,maven-settings-builder)
1642 ("maven-plugin-api" ,maven-plugin-api)
1643 ("maven-repository-metadata" ,maven-repository-metadata)
1644 ("maven-shared-utils" ,maven-shared-utils)
1645 ("maven-resolver-api" ,maven-resolver-api)
1646 ("maven-resolver-spi" ,maven-resolver-spi)
1647 ("maven-resolver-util" ,maven-resolver-util)
1648 ("maven-resolver-impl" ,maven-resolver-impl)
1649 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1650 ("maven-resolver-provider" ,maven-resolver-provider)
1651 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1652 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1653 ("maven-wagon-file" ,maven-wagon-file)
1654 ("maven-wagon-http" ,maven-wagon-http)
1655 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1656 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
1657 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
1658 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
1659 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
1660 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1661 ("java-guice" ,java-guice)
1662 ("java-aopalliance" ,java-aopalliance)
1663 ("java-cglib" ,java-cglib)
1664 ("java-asm" ,java-asm)
1665 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1666 ("java-javax-inject" ,java-javax-inject)
1667 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1668 ("java-plexus-utils" ,java-plexus-utils)
1669 ("java-plexus-interpolation" ,java-plexus-interpolation)
1670 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1671 ("java-plexus-cipher" ,java-plexus-cipher)
1672 ("java-guava" ,java-guava)
1673 ("java-jansi" ,java-jansi)
1674 ("java-jsr250" ,java-jsr250)
1675 ("java-cdi-api" ,java-cdi-api)
1676 ("java-commons-cli" ,java-commons-cli)
1677 ("java-commons-io" ,java-commons-io)
1678 ("java-commons-lang3" ,java-commons-lang3)
1679 ("java-slf4j-api" ,java-slf4j-api)
1680 ;; TODO: replace with maven-slf4j-provider
1681 ("java-slf4j-simple" ,java-slf4j-simple)))
1683 `(("coreutils" ,coreutils)
1685 (description "Apache Maven is a software project management and comprehension
1686 tool. Based on the concept of a project object model: builds, dependency
1687 management, documentation creation, site publication, and distribution
1688 publication are all controlled from the @file{pom.xml} declarative file. Maven
1689 can be extended by plugins to utilise a number of other development tools for
1690 reporting or the build process.")))