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 web)
34 #:use-module (gnu packages xml))
36 (define-public java-plexus-component-metadata
38 (inherit java-plexus-container-default)
39 (name "java-plexus-component-metadata")
41 `(#:jar-name "plexus-component-metadata.jar"
42 #:source-dir "src/main/java"
46 (modify-phases %standard-phases
47 (add-before 'configure 'chdir
49 (chdir "plexus-component-metadata")
51 (add-before 'build 'copy-resources
53 (copy-recursively "src/main/resources"
57 `(("java-plexus-container-default" ,java-plexus-container-default)
58 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
59 ("java-plexus-utils" ,java-plexus-utils)
60 ("java-plexus-cli" ,java-plexus-cli)
61 ("java-plexus-classworlds" ,java-plexus-classworlds)
62 ("maven-plugin-api" ,maven-plugin-api)
63 ("maven-plugin-annotations" ,maven-plugin-annotations)
64 ("maven-core-bootstrap" ,maven-core-bootstrap)
65 ("maven-model" ,maven-model)
66 ("java-commons-cli" ,java-commons-cli)
67 ("java-qdox" ,java-qdox)
68 ("java-jdom2" ,java-jdom2)
69 ("java-asm" ,java-asm)))
71 `(("java-junit" ,java-junit)
72 ("java-guava" ,java-guava)
73 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
74 (synopsis "Inversion-of-control container for Maven")
75 (description "The Plexus project provides a full software stack for creating
76 and executing software projects. Based on the Plexus container, the
77 applications can utilise component-oriented programming to build modular,
78 reusable components that can easily be assembled and reused. This package
79 provides the Maven plugin generating the component metadata.")))
81 (define-public maven-resolver-api
83 (name "maven-resolver-api")
88 (url "https://github.com/apache/maven-resolver.git")
89 (commit (string-append "maven-resolver-" version))))
90 (file-name (git-file-name name version))
93 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
94 (build-system ant-build-system)
96 `(#:jar-name "maven-resolver-api.jar"
97 #:source-dir "maven-resolver-api/src/main/java"
98 #:test-dir "maven-resolver-api/src/test"))
100 `(("java-asm" ,java-asm)
101 ("java-cglib" ,java-cglib)
102 ("java-hamcrest-core" ,java-hamcrest-core)
103 ("java-junit" ,java-junit)
104 ("java-mockito-1" ,java-mockito-1)
105 ("java-objenesis" ,java-objenesis)))
106 (home-page "https://github.com/apache/maven-resolver")
107 (synopsis "Maven repository system API")
108 (description "This package contains the API for the maven repository system.")
109 (license license:asl2.0)))
111 (define-public maven-resolver-spi
113 (inherit maven-resolver-api)
114 (name "maven-resolver-spi")
116 `(#:jar-name "maven-resolver-spi.jar"
117 #:source-dir "maven-resolver-spi/src/main/java"
118 #:test-dir "maven-resolver-spi/src/test"
121 `(("maven-resolver-api" ,maven-resolver-api)))
122 (synopsis "Maven repository system SPI")
123 (description "This package contains the service provider interface (SPI)
124 for repository system implementations and repository connectors.")))
126 (define-public maven-resolver-test-util
128 (inherit maven-resolver-api)
129 (name "maven-resolver-test-util")
131 `(#:jar-name "maven-resolver-test-util.jar"
132 #:source-dir "maven-resolver-test-util/src/main/java"
133 #:test-dir "maven-resolver-test-util/src/test"
136 `(("maven-resolver-api" ,maven-resolver-api)
137 ("maven-resolver-spi" ,maven-resolver-spi)))
138 (synopsis "Utility classes for testing the maven repository system")
139 (description "This package contains a collection of utility classes to
140 ease testing of the repository system.")))
142 (define-public maven-resolver-util
144 (inherit maven-resolver-api)
145 (name "maven-resolver-util")
147 `(#:jar-name "maven-resolver-util.jar"
148 #:source-dir "maven-resolver-util/src/main/java"
149 #:test-dir "maven-resolver-util/src/test"
152 `(("maven-resolver-api" ,maven-resolver-api)))
154 `(("java-junit" ,java-junit)
155 ("java-hamcrest-core" ,java-hamcrest-core)
156 ("maven-resolver-test-util" ,maven-resolver-test-util)))
157 (synopsis "Utility classes for the maven repository system")
158 (description "This package contains a collection of utility classes to
159 ease usage of the repository system.")))
161 (define-public maven-resolver-connector-basic
163 (inherit maven-resolver-api)
164 (name "maven-resolver-connector-basic")
166 `(#:jar-name "maven-resolver-connector-basic.jar"
167 #:source-dir "maven-resolver-connector-basic/src/main/java"
168 #:test-dir "maven-resolver-connector-basic/src/test"
171 (modify-phases %standard-phases
172 (add-before 'build 'generate-sisu
174 (mkdir-p "build/classes/META-INF/sisu")
175 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
177 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
180 `(("maven-resolver-api" ,maven-resolver-api)
181 ("maven-resolver-spi" ,maven-resolver-spi)
182 ("maven-resolver-util" ,maven-resolver-util)
183 ("java-javax-inject" ,java-javax-inject)
184 ("java-slf4j-api" ,java-slf4j-api)))
186 `(("java-junit" ,java-junit)
187 ("java-hamcrest-core" ,java-hamcrest-core)
188 ("maven-resolver-test-util" ,maven-resolver-test-util)))
189 (synopsis "Maven repository connector implementation")
190 (description "This package contains a repository connector implementation
191 for repositories using URI-based layouts.")))
193 (define-public maven-resolver-impl
195 (inherit maven-resolver-api)
196 (name "maven-resolver-impl")
198 `(#:jar-name "maven-resolver-impl.jar"
199 #:source-dir "maven-resolver-impl/src/main/java"
200 #:test-dir "maven-resolver-impl/src/test"
203 (modify-phases %standard-phases
204 (add-before 'build 'generate-sisu
206 (mkdir-p "build/classes/META-INF/sisu")
207 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
211 ;; Build this list by looking for files containing "@Named"
212 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
213 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
214 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
215 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
216 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
217 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
218 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
219 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
220 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
221 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
222 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
223 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
224 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
225 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
226 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
227 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
228 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
229 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
230 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
231 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
232 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
233 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
234 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
237 `(("maven-resolver-api" ,maven-resolver-api)
238 ("maven-resolver-spi" ,maven-resolver-spi)
239 ("maven-resolver-util" ,maven-resolver-util)
240 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
241 ("java-javax-inject" ,java-javax-inject)
242 ("java-guice" ,java-guice)
243 ("java-guava" ,java-guava)
244 ("java-cglib" ,java-cglib)
245 ("java-asm" ,java-asm)
246 ("jajva-aopalliance" ,java-aopalliance)
247 ("java-slf4j-api" ,java-slf4j-api)))
249 `(("java-junit" ,java-junit)
250 ("java-hamcrest-core" ,java-hamcrest-core)
251 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
253 (define-public maven-resolver-transport-wagon
255 (inherit maven-resolver-api)
256 (name "maven-resolver-transport-wagon")
258 `(#:jar-name "maven-resolver-transport-wagon.jar"
259 #:source-dir "maven-resolver-transport-wagon/src/main/java"
260 #:test-dir "maven-resolver-transport-wagon/src/test"
263 (modify-phases %standard-phases
264 (add-before 'build 'generate-sisu
266 (mkdir-p "build/classes/META-INF/sisu")
267 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
269 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
271 (add-before 'build 'generate-components.xml
273 (mkdir-p "build/classes/META-INF/plexus")
274 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
278 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
282 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
283 <role-hint>plexus</role-hint>
284 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
286 <isolated-realm>false</isolated-realm>
289 <role>org.codehaus.plexus.PlexusContainer</role>
291 <field-name>container</field-name>
296 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
297 <role-hint>plexus</role-hint>
298 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
300 <isolated-realm>false</isolated-realm>
303 <role>org.codehaus.plexus.PlexusContainer</role>
305 <field-name>container</field-name>
310 </component-set>\n"))))
313 `(("maven-resolver-api" ,maven-resolver-api)
314 ("maven-resolver-spi" ,maven-resolver-spi)
315 ("maven-resolver-util" ,maven-resolver-util)
316 ("java-javax-inject" ,java-javax-inject)
317 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
318 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
319 ("java-plexus-classworld" ,java-plexus-classworlds)
320 ("java-plexus-plexus-util" ,java-plexus-utils)
321 ("java-slf4j-api" ,java-slf4j-api)
322 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
323 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
325 `(("java-junit" ,java-junit)
326 ("java-hamcrest-core" ,java-hamcrest-core)
327 ("maven-resolver-test-util" ,maven-resolver-test-util)
328 ("java-guava" ,java-guava)
329 ("java-cglib" ,java-cglib)
330 ("java-asm" ,java-asm)
331 ("java-aopalliance" ,java-aopalliance)
332 ("java-guice" ,java-guice)))
333 (synopsis "Transport implementation for Maven")
334 (description "This package contains a transport implementation based on
335 Maven Wagon, for use in Maven.")))
337 (define-public maven-shared-utils
339 (name "maven-shared-utils")
343 (uri (string-append "mirror://apache/dist/maven/shared/"
344 "maven-shared-utils-" version "-source-release.zip"))
347 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
348 (build-system ant-build-system)
350 `(#:jar-name "maven-shared-utils.jar"
351 #:source-dir "src/main/java"
354 (modify-phases %standard-phases
355 (add-before 'check 'remove-cyclic-dep
358 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
361 `(("java-jansi" ,java-jansi)
362 ("java-commons-io" ,java-commons-io)
363 ("java-jsr305" ,java-jsr305)
364 ("java-plexus-container-default" ,java-plexus-container-default)))
367 ("java-junit" ,java-junit)
368 ("java-hamcrest-core" ,java-hamcrest-core)
369 ("java-commons-lang3" ,java-commons-lang3)))
370 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
371 (synopsis "Plexus-util replacement for maven")
372 (description "This project aims to be a functional replacement for
373 plexus-utils in Maven. It is not a 100% API compatible replacement but a
374 replacement with improvements.")
375 (license license:asl2.0)))
377 (define-public maven-plugin-annotations
379 (name "maven-plugin-annotations")
383 (uri (string-append "mirror://apache/dist/maven/"
384 "plugin-tools/maven-plugin-tools-" version
385 "-source-release.zip"))
386 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
387 (build-system ant-build-system)
389 `(#:jar-name "maven-plugin-annotations.jar"
390 #:source-dir "maven-plugin-annotations/src/main/java"
393 `(("maven-artifact" ,maven-artifact)))
396 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
397 (synopsis "Java 5 annotations to use in Mojos")
398 (description "This package contains Java 5 annotations for use in Mojos.")
399 (license license:asl2.0)))
401 (define-public maven-wagon-provider-api
403 (name "maven-wagon-provider-api")
407 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
408 "wagon-" version "-source-release.zip"))
409 (sha256 (base32 "0r07j6xdzdnrvqnv8ida7dx1m05pznh5qgmcfcfpyvg9nxbj3l1n"))))
410 (build-system ant-build-system)
412 `(#:jar-name "maven-wagon-provider-api.jar"
413 #:source-dir "wagon-provider-api/src/main/java"
414 #:test-dir "wagon-provider-api/src/test"))
416 `(("java-plexus-utils" ,java-plexus-utils)))
419 ("java-junit" ,java-junit)
420 ("java-easymock" ,java-easymock)))
421 (home-page "https://maven.apache.org/wagon")
422 (synopsis "Transport abstraction for Maven")
423 (description "Maven Wagon is a transport abstraction that is used in Maven's
424 artifact and repository handling code.")
425 (license license:asl2.0)))
427 (define-public maven-wagon-provider-test
429 (inherit maven-wagon-provider-api)
430 (name "maven-wagon-provider-test")
432 `(#:jar-name "maven-wagon-provider-test.jar"
433 #:source-dir "wagon-provider-test/src/main/java"
434 #:tests? #f; no tests
437 `(("java-plexus-utils" ,java-plexus-utils)
438 ("java-plexus-container-default" ,java-plexus-container-default)
439 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
440 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
441 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
442 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
443 ("java-slf4j-api" ,java-slf4j-api)
444 ("java-javaee-servletapi" ,java-javaee-servletapi)
445 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
446 (synopsis "Test classes from maven-wagon")
447 (description "Maven Wagon is a transport abstraction that is used in Maven's
448 artifact and repository handling code. This package contains common test
449 classes used in multiple maven-wagon components.")))
451 (define-public maven-wagon-file
453 (inherit maven-wagon-provider-api)
454 (name "maven-wagon-file")
456 `(#:jar-name "maven-wagon-file.jar"
457 #:source-dir "wagon-providers/wagon-file/src/main/java"
458 #:test-dir "wagon-providers/wagon-file/src/test"
461 (modify-phases %standard-phases
462 (add-before 'check 'fix-paths
464 ;; Tests assume they are run by maven, which copies test resources
465 ;; to target. Our ant-build-system does the same, but with the
467 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
468 (("target") "build"))
470 (add-after 'build 'generate-metadata
472 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
473 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
474 "--source" "wagon-providers/wagon-file/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
484 `(("java-plexus-utils" ,java-plexus-utils)
485 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
487 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
488 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
489 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
490 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
491 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
492 ("java-plexus-classworlds" ,java-plexus-classworlds)
493 ("java-guava" ,java-guava)
494 ("java-guice" ,java-guice)
495 ("java-javax-inject" ,java-javax-inject)
496 ("java-cglib" ,java-cglib)
497 ("java-slf4j-api" ,java-slf4j-api)
498 ("java-plexus-utils" ,java-plexus-utils)
499 ("java-plexus-cli" ,java-plexus-cli)
500 ("maven-plugin-api" ,maven-plugin-api)
501 ("maven-plugin-annotations" ,maven-plugin-annotations)
502 ("maven-core" ,maven-core)
503 ("maven-model" ,maven-model)
504 ("java-commons-cli" ,java-commons-cli)
505 ("java-qdox" ,java-qdox)
506 ("java-jdom2" ,java-jdom2)
507 ("java-asm" ,java-asm)
508 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
509 ,@(package-native-inputs maven-wagon-provider-api)))
510 (synopsis "Wagon provider that gets and puts artifacts using the file system")
511 (description "Maven Wagon is a transport abstraction that is used in Maven's
512 artifact and repository handling code. It uses providers, that are tools to
513 manage artifacts and deployment. This package contains the file provider which
514 gets and puts artifacts using the file system.")))
516 (define-public maven-wagon-tck-http
518 (inherit maven-wagon-provider-api)
519 (name "maven-wagon-tck-http")
521 `(#:jar-name "maven-wagon-tck-http.jar"
522 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
523 #:tests? #f; no tests
526 `(("java-plexus-util" ,java-plexus-utils)
527 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
528 ("java-javaee-servletapi" ,java-javaee-servletapi)
529 ("java-slf4j-api" ,java-slf4j-api)
530 ("java-commons-codec" ,java-commons-codec)
531 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
532 ("java-plexus-classworlds" ,java-plexus-classworlds)
533 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
534 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
535 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
536 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
537 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
538 (synopsis "Wagon HTTP Test Compatibility Kit")
539 (description "Maven Wagon is a transport abstraction that is used in Maven's
540 artifact and repository handling code. This package contains the HTTP
541 Test Compatibility Kit.")))
543 (define-public maven-wagon-http-shared
545 (inherit maven-wagon-provider-api)
546 (name "maven-wagon-http-shared")
548 `(#:jar-name "maven-wagon-http-shared.jar"
549 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
550 #:test-dir "wagon-providers/wagon-http-shared/src/test"
553 (modify-phases %standard-phases
554 (add-after 'build 'generate-metadata
556 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
557 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
558 "--source" "wagon-providers/wagon-http-shared/src/main/java"
559 "--output" "build/classes/META-INF/plexus/components.xml"
560 "--classes" "build/classes"
561 "--descriptors" "build/classes/META-INF")
563 (add-after 'generate-metadata 'rebuild
568 `(("java-plexus-utils" ,java-plexus-utils)
569 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
570 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
571 ("java-commons-io" ,java-commons-io)
572 ("java-jsoup" ,java-jsoup)
573 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
575 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
576 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
577 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
578 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
579 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
580 ("java-plexus-classworlds" ,java-plexus-classworlds)
581 ("java-guava" ,java-guava)
582 ("java-guice" ,java-guice)
583 ("java-javax-inject" ,java-javax-inject)
584 ("java-cglib" ,java-cglib)
585 ("java-slf4j-api" ,java-slf4j-api)
586 ("java-plexus-utils" ,java-plexus-utils)
587 ("java-plexus-cli" ,java-plexus-cli)
588 ("maven-plugin-api" ,maven-plugin-api)
589 ("maven-plugin-annotations" ,maven-plugin-annotations)
590 ("maven-core" ,maven-core)
591 ("maven-model" ,maven-model)
592 ("java-commons-cli" ,java-commons-cli)
593 ("java-qdox" ,java-qdox)
594 ("java-jdom2" ,java-jdom2)
595 ("java-asm" ,java-asm)
596 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
597 ,@(package-native-inputs maven-wagon-provider-api)))
598 (synopsis "Shared Library for wagon providers supporting HTTP.")
599 (description "Maven Wagon is a transport abstraction that is used in Maven's
600 artifact and repository handling code. It uses providers, that are tools to
601 manage artifacts and deployment. This package contains a shared library for
602 wagon providers supporting HTTP.")))
604 (define-public maven-wagon-http
606 (inherit maven-wagon-provider-api)
607 (name "maven-wagon-http")
609 `(#:jar-name "maven-wagon-http.jar"
610 #:source-dir "wagon-providers/wagon-http/src/main/java"
611 #:test-dir "wagon-providers/wagon-http/src/test"
614 ;; FIXME: javax.net.ssl.SSLHandshakeException:
615 ;; sun.security.validator.ValidatorException:
616 ;; PKIX path building failed:
617 ;; sun.security.provider.certpath.SunCertPathBuilderException:
618 ;; unable to find valid certification path to requested target
619 "**/HttpsWagonPreemptiveTest.java"
620 "**/HttpsWagonTest.java"
625 (modify-phases %standard-phases
626 (add-before 'build 'copy-resources
628 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
629 "build/classes/META-INF/plexus")
631 (add-before 'check 'fix-resource-path
633 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
634 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
635 (("src/test") "wagon-providers/wagon-http/src/test"))
638 `(("java-plexus-utils" ,java-plexus-utils)
639 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
640 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
641 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
642 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
643 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
645 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
646 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
647 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
648 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
649 ("java-plexus-container-default" ,java-plexus-container-default)
650 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
651 ("java-plexus-classworlds" ,java-plexus-classworlds)
652 ("java-guava" ,java-guava)
653 ("java-guice" ,java-guice)
654 ("java-inject" ,java-javax-inject)
655 ("java-cglib" ,java-cglib)
656 ("java-slf4j-api" ,java-slf4j-api)
657 ("java-plexus-utils" ,java-plexus-utils)
658 ("java-plexus-cli" ,java-plexus-cli)
659 ("maven-plugin-api" ,maven-plugin-api)
660 ("maven-plugin-annotations" ,maven-plugin-annotations)
661 ("maven-core" ,maven-core)
662 ("maven-model" ,maven-model)
663 ("java-commons-cli" ,java-commons-cli)
664 ("java-qdox" ,java-qdox)
665 ("java-jdom2" ,java-jdom2)
666 ("java-asm" ,java-asm)
667 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
668 ("java-javaee-servletapi" ,java-javaee-servletapi)
669 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
670 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
671 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
672 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
673 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
674 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
675 ("java-hamcrest-core" ,java-hamcrest-core)
676 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
677 ("java-commons-codec" ,java-commons-codec)
678 ("java-commons-io" ,java-commons-io)
679 ("java-jsoup" ,java-jsoup)
680 ("java-slf4j-simple" ,java-slf4j-simple)
681 ,@(package-native-inputs maven-wagon-provider-api)))
682 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
683 (description "Maven Wagon is a transport abstraction that is used in Maven's
684 artifact and repository handling code. It uses providers, that are tools to
685 manage artifacts and deployment. This package contains a Wagon provider that
686 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
688 (define-public maven-artifact
690 (name "maven-artifact")
694 (uri (string-append "https://archive.apache.org/dist/maven/"
695 "maven-3/" version "/source/"
696 "apache-maven-" version "-src.tar.gz"))
697 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
698 (modules '((guix build utils)))
701 (for-each delete-file (find-files "." "\\.jar$"))
704 (search-patches "maven-generate-component-xml.patch"
705 "maven-generate-javax-inject-named.patch"))))
706 (build-system ant-build-system)
708 `(#:jar-name "maven-artifact.jar"
709 #:source-dir "maven-artifact/src/main/java"
710 #:test-dir "maven-artifact/src/test"
711 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"))
713 `(("java-plexus-utils" ,java-plexus-utils)
714 ("java-commons-lang3" ,java-commons-lang3)))
716 `(("java-junit" ,java-junit)))
717 (home-page "https://maven.apache.org/")
718 (synopsis "Build system")
719 (description "Apache Maven is a software project management and comprehension
720 tool. This package contains the Maven Artifact classes, providing the
721 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
722 jar file is executable and provides a little tool to display how Maven parses
723 and compares versions:")
724 (license license:asl2.0)))
726 (define-public maven-model
728 (inherit maven-artifact)
731 `(#:jar-name "maven-model.jar"
732 #:source-dir "maven-model/src/main/java"
733 #:test-dir "maven-model/src/test"
736 (modify-phases %standard-phases
737 (add-before 'build 'generate-models
738 (lambda* (#:key inputs #:allow-other-keys)
739 (define (modello-single-mode file version mode)
740 (invoke "java" "org.codehaus.modello.ModelloCli"
741 file mode "maven-model/src/main/java" version
743 (let ((file "maven-model/src/main/mdo/maven.mdo"))
744 (modello-single-mode file "4.0.0" "java")
745 (modello-single-mode file "4.0.0" "xpp3-reader")
746 (modello-single-mode file "4.0.0" "xpp3-writer")
747 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
750 `(("java-commons-lang3" ,java-commons-lang3)
751 ("java-plexus-utils" ,java-plexus-utils)))
753 `(("java-modello-core" ,java-modello-core)
755 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
756 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
757 ("java-guice" ,java-guice)
758 ("java-cglib" ,java-cglib)
759 ("java-asm" ,java-asm)
760 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
761 ("java-javax-inject" ,java-javax-inject)
762 ("java-plexus-classworlds" ,java-plexus-classworlds)
763 ("java-guava" ,java-guava)
764 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
765 ("java-sisu-build-api" ,java-sisu-build-api)
767 ("java-modello-plugins-java" ,java-modello-plugins-java)
768 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
769 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
771 ("java-junit" ,java-junit)))
772 (description "Apache Maven is a software project management and comprehension
773 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
774 so really just plain Java objects.")))
776 (define-public maven-builder-support
778 (inherit maven-artifact)
779 (name "maven-builder-support")
781 `(#:jar-name "maven-builder-support.jar"
782 #:source-dir "maven-builder-support/src/main/java"
784 #:test-dir "maven-builder-support/src/test"
786 (modify-phases %standard-phases
787 (add-before 'check 'fix-paths
789 (with-directory-excursion "maven-builder-support/src/test/java"
791 '("org/apache/maven/building/FileSourceTest.java"
792 "org/apache/maven/building/UrlSourceTest.java")
793 (("target/test-classes") "maven-builder-support/src/test/resources")))
796 `(("java-plexus-utils" ,java-plexus-utils)
797 ("java-commons-lang3" ,java-commons-lang3)))
799 `(("java-junit" ,java-junit)
800 ("java-hamcrest-core" ,java-hamcrest-core)))
801 (description "Apache Maven is a software project management and comprehension
802 tool. This package contains a support library for descriptor builders (model,
803 setting, toolchains)")))
805 (define-public maven-settings
807 (inherit maven-artifact)
808 (name "maven-settings")
810 `(#:jar-name "maven-settings.jar"
811 #:source-dir "maven-settings/src/main/java"
813 #:tests? #f; no tests
815 (modify-phases %standard-phases
816 (add-before 'build 'generate-models
817 (lambda* (#:key inputs #:allow-other-keys)
818 (define (modello-single-mode file version mode)
819 (invoke "java" "org.codehaus.modello.ModelloCli"
820 file mode "maven-settings/src/main/java" version
822 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
823 (modello-single-mode file "1.1.0" "java")
824 (modello-single-mode file "1.1.0" "xpp3-reader")
825 (modello-single-mode file "1.1.0" "xpp3-writer"))
829 `(("java-modello-core" ,java-modello-core)
831 ;("container" ,java-plexus-container-default)
832 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
833 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
834 ("java-guice" ,java-guice)
835 ("java-cglib" ,java-cglib)
836 ("java-asm" ,java-asm)
837 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
838 ("java-javax-inject" ,java-javax-inject)
839 ("java-plexus-classworlds" ,java-plexus-classworlds)
840 ("java-plexus-utils" ,java-plexus-utils)
841 ("java-guava" ,java-guava)
842 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
843 ("java-sisu-build-api" ,java-sisu-build-api)
845 ("java-modello-plugins-java" ,java-modello-plugins-java)
846 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
847 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
848 (description "Apache Maven is a software project management and comprehension
849 tool. This package contains strictly the model for Maven settings, that is
850 simply plain java objects.")))
852 (define-public maven-settings-builder
854 (inherit maven-artifact)
855 (name "maven-settings-builder")
857 `(#:jar-name "maven-settings-builder.jar"
858 #:source-dir "maven-settings-builder/src/main/java"
860 #:test-dir "maven-settings-builder/src/test"
862 (modify-phases %standard-phases
863 (add-before 'build 'generate-components.xml
865 (mkdir-p "build/classes/META-INF/plexus")
866 (chmod "components.sh" #o755)
867 (invoke "./components.sh" "maven-settings-builder/src/main/java"
868 "build/classes/META-INF/plexus/components.xml")
871 `(("java-plexus-utils" ,java-plexus-utils)
872 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
873 ("java-plexus-interpolation" ,java-plexus-interpolation)
874 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
875 ("maven-builder-support" ,maven-builder-support)
876 ("maven-settings" ,maven-settings)
877 ("java-commons-lang3" ,java-commons-lang3)))
879 `(("java-junit" ,java-junit)))
880 (description "Apache Maven is a software project management and comprehension
881 tool. This package contains the effective model builder, with profile activation,
882 inheritance, interpolation, @dots{}")))
884 (define-public maven-model-builder
886 (inherit maven-artifact)
887 (name "maven-model-builder")
889 `(#:jar-name "maven-model-builder.jar"
890 #:source-dir "maven-model-builder/src/main/java"
892 #:test-dir "maven-model-builder/src/test"
894 (modify-phases %standard-phases
895 (add-before 'build 'copy-resources
897 (copy-recursively "maven-model-builder/src/main/resources"
900 (add-before 'build 'generate-components.xml
902 (mkdir-p "build/classes/META-INF/plexus")
903 (chmod "components.sh" #o755)
904 (invoke "./components.sh" "maven-model-builder/src/main/java"
905 "build/classes/META-INF/plexus/components.xml")
907 (add-before 'check 'fix-paths
909 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
910 (("src/test") "maven-model-builder/src/test"))
913 `(("model" ,maven-model)
914 ("artifact" ,maven-artifact)
915 ("support" ,maven-builder-support)
916 ("annotations" ,java-plexus-component-annotations)
917 ("utils" ,java-plexus-utils)
918 ("interpolation" ,java-plexus-interpolation)
919 ("lang3" ,java-commons-lang3)
920 ("guava" ,java-guava)))
922 `(("java-junit" ,java-junit)
923 ("java-hamcrest-core" ,java-hamcrest-core)
924 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
925 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
926 ("guice" ,java-guice)
927 ("java-cglib" ,java-cglib)
928 ("java-asm" ,java-asm)
929 ("sisu-inject" ,java-eclipse-sisu-inject)
930 ("javax-inject" ,java-javax-inject)
931 ("java-xmlunit" ,java-xmlunit)
932 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
933 ("xbean" ,java-geronimo-xbean-reflect)
934 ("classworlds" ,java-plexus-classworlds)))
935 (description "Apache Maven is a software project management and comprehension
936 tool. This package contains the effective model builder, with profile activation,
937 inheritance, interpolation, @dots{}")))
939 (define-public maven-repository-metadata
941 (inherit maven-artifact)
942 (name "maven-repository-metadata")
944 `(#:jar-name "maven-repository-metadata.jar"
945 #:source-dir "maven-repository-metadata/src/main/java"
947 #:tests? #f; no tests
949 (modify-phases %standard-phases
950 (add-before 'build 'generate-models
951 (lambda* (#:key inputs #:allow-other-keys)
952 (define (modello-single-mode file version mode)
953 (invoke "java" "org.codehaus.modello.ModelloCli"
954 file mode "maven-repository-metadata/src/main/java" version
956 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
957 (modello-single-mode file "1.1.0" "java")
958 (modello-single-mode file "1.1.0" "xpp3-reader")
959 (modello-single-mode file "1.1.0" "xpp3-writer"))
963 `(("modello" ,java-modello-core)
965 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
966 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
967 ("java-guice" ,java-guice)
968 ("java-cglib" ,java-cglib)
969 ("java-asm" ,java-asm)
970 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
971 ("java-javax-inject" ,java-javax-inject)
972 ("java-plexus-utils" ,java-plexus-utils)
973 ("java-plexus-classworlds" ,java-plexus-classworlds)
974 ("java-guava" ,java-guava)
975 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
976 ("java-sisu-build-api" ,java-sisu-build-api)
978 ("java-modello-plugins-java" ,java-modello-plugins-java)
979 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
980 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
981 (description "Apache Maven is a software project management and comprehension
982 tool. This package contains strictly the model for Maven Repository Metadata,
983 so really just plain objects.")))
985 (define-public maven-resolver-provider
987 (inherit maven-artifact)
988 (name "maven-resolver-provider")
990 `(#:jar-name "maven-resolver-provider.jar"
991 #:source-dir "maven-resolver-provider/src/main/java"
992 #:test-dir "maven-resolver-provider/src/test"
994 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
996 (modify-phases %standard-phases
997 (add-before 'build 'generate-sisu-named
999 (mkdir-p "build/classes/META-INF/sisu")
1000 (chmod "./sisu.sh" #o755)
1001 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1002 "build/classes/META-INF/sisu/javax.inject.Named")
1005 `(("maven-resolver-spi" ,maven-resolver-spi)
1006 ("maven-resolver-api" ,maven-resolver-api)
1007 ("maven-resolver-impl" ,maven-resolver-impl)
1008 ("maven-resolver-util" ,maven-resolver-util)
1009 ("maven-model" ,maven-model)
1010 ("maven-model-builder" ,maven-model-builder)
1011 ("maven-builder-support" ,maven-builder-support)
1012 ("maven-repository-metadata" ,maven-repository-metadata)
1013 ("java-plexus-utils" ,java-plexus-utils)
1014 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1015 ("java-commons-lang3" ,java-commons-lang3)
1016 ("java-guice" ,java-guice)
1017 ("java-guava" ,java-guava)
1018 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1019 ("java-javax-inject" ,java-javax-inject)))))
1021 (define-public maven-plugin-api
1023 (inherit maven-artifact)
1024 (name "maven-plugin-api")
1026 `(#:jar-name "maven-plugin-api.jar"
1027 #:source-dir "maven-plugin-api/src/main/java"
1029 #:test-dir "maven-plugin-api/src/test"
1031 (modify-phases %standard-phases
1032 (add-before 'build 'generate-models
1033 (lambda* (#:key inputs #:allow-other-keys)
1034 (define (modello-single-mode file version mode)
1035 (invoke "java" "org.codehaus.modello.ModelloCli"
1036 file mode "maven-plugin-api/src/main/java" version
1038 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1039 (modello-single-mode file "1.0.0" "java")
1040 (modello-single-mode file "1.0.0" "xpp3-reader")
1041 (modello-single-mode file "1.0.0" "xpp3-writer"))
1044 `(("maven-artifact" ,maven-artifact)
1045 ("maven-model" ,maven-model)
1046 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1047 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1048 ("guice" ,java-guice)
1049 ("java-cglib" ,java-cglib)
1050 ("java-asm" ,java-asm)
1051 ("sisu-inject" ,java-eclipse-sisu-inject)
1052 ("javax-inject" ,java-javax-inject)
1053 ("utils" ,java-plexus-utils)))
1055 `(("modello" ,java-modello-core)
1057 ("classworlds" ,java-plexus-classworlds)
1058 ("guava" ,java-guava)
1059 ("xbean" ,java-geronimo-xbean-reflect)
1060 ("build-api" ,java-sisu-build-api)
1062 ("java" ,java-modello-plugins-java)
1063 ("xml" ,java-modello-plugins-xml)
1064 ("xpp3" ,java-modello-plugins-xpp3)
1066 ("java-junit" ,java-junit)))
1067 (description "Apache Maven is a software project management and comprehension
1068 tool. This package contains strictly the API for plugins -- composed of goals
1069 implemented by Mojos -- development.
1071 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1072 generally generated from plugin sources using maven-plugin-plugin.")))
1074 (define maven-core-bootstrap
1076 (inherit maven-artifact)
1079 `(#:jar-name "maven-core.jar"
1080 #:source-dir "src/main/java"
1082 ;; Tests need maven-compat, which requires maven-core
1085 (modify-phases %standard-phases
1086 (add-before 'configure 'chdir
1088 ;; Required for generating components.xml in maven-core
1089 (chdir "maven-core")
1091 (add-before 'build 'copy-resources
1093 (mkdir-p "build/classes/")
1094 (copy-recursively "src/main/resources" "build/classes")
1096 (add-after 'copy-resources 'fill-properties
1098 ;; This file controls the output of some mvn subcommands, such as
1100 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1101 (("\\$\\{buildNumber\\}") "guix_build")
1102 (("\\$\\{timestamp\\}") "0")
1103 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1104 (("\\$\\{distributionId\\}") "apache-maven")
1105 (("\\$\\{distributionShortName\\}") "Maven")
1106 (("\\$\\{distributionName\\}") "Apache Maven"))
1108 (add-before 'build 'generate-sisu-named
1110 (mkdir-p "build/classes/META-INF/sisu")
1111 (chmod "../sisu.sh" #o755)
1112 (invoke "../sisu.sh" "src/main/java"
1113 "build/classes/META-INF/sisu/javax.inject.Named")
1115 (add-before 'build 'generate-models
1116 (lambda* (#:key inputs #:allow-other-keys)
1117 (define (modello-single-mode file version mode)
1118 (invoke "java" "org.codehaus.modello.ModelloCli"
1119 file mode "src/main/java" version
1121 (let ((file "src/main/mdo/toolchains.mdo"))
1122 (modello-single-mode file "1.1.0" "java")
1123 (modello-single-mode file "1.1.0" "xpp3-reader")
1124 (modello-single-mode file "1.1.0" "xpp3-writer"))
1127 `(("maven-artifact" ,maven-artifact)
1128 ("maven-resolver-provider" ,maven-resolver-provider)
1129 ("maven-builder-support" ,maven-builder-support)
1130 ("maven-model" ,maven-model)
1131 ("maven-model-builder" ,maven-model-builder)
1132 ("maven-settings" ,maven-settings)
1133 ("maven-settings-builder" ,maven-settings-builder)
1134 ("maven-plugin-api" ,maven-plugin-api)
1135 ("maven-repository-metadata" ,maven-repository-metadata)
1136 ("maven-shared-utils" ,maven-shared-utils)
1137 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1138 ("java-plexus-utils" ,java-plexus-utils)
1139 ("java-commons-lang3" ,java-commons-lang3)
1140 ("java-guava" ,java-guava)
1141 ("java-guice" ,java-guice)
1142 ("maven-resolver-api" ,maven-resolver-api)
1143 ("maven-resolver-spi" ,maven-resolver-spi)
1144 ("maven-resolver-util" ,maven-resolver-util)
1145 ("maven-resolver-impl" ,maven-resolver-impl)
1146 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1147 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1148 ("java-javax-inject" ,java-javax-inject)
1149 ("java-plexus-classworld" ,java-plexus-classworlds)))
1151 `(("java-modello-core" ,java-modello-core)
1152 ("java-cglib" ,java-cglib)
1153 ("java-asm" ,java-asm)
1154 ("java-plexus-classworlds" ,java-plexus-classworlds)
1155 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1156 ("java-sisu-build-api" ,java-sisu-build-api)
1157 ("java-modello-plugins-java" ,java-modello-plugins-java)
1158 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1159 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1161 ("java-junit" ,java-junit)
1162 ("java-mockito-1" ,java-mockito-1)
1163 ("java-commons-jxpath" ,java-commons-jxpath)))
1164 (description "Apache Maven is a software project management and comprehension
1165 tool. This package contains the maven core classes managing the whole build
1168 (define-public maven-core
1170 (inherit maven-core-bootstrap)
1172 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1174 `(modify-phases ,phases
1175 (add-before 'build 'modify-metainf
1177 (substitute* "build.xml"
1178 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1180 (add-before 'build 'add-maven-files
1182 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1183 (copy-file "pom.xml"
1184 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1185 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1187 (format #t "version=~a~%
1188 groupId=org.apache.maven~%
1189 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1191 (add-after 'build 'generate-metadata
1193 (define (components file)
1194 (let ((sxml (with-input-from-file file
1195 (lambda _ (xml->sxml (current-input-port)
1196 #:trim-whitespace? #t)))))
1197 ;; Select the list of <component>s inside the <component-set>
1198 ;; and <components>.
1199 ((@ (ice-9 match) match) sxml
1203 ('components x ...))) x))))
1204 (use-modules (sxml simple))
1205 (delete-file "build/classes/META-INF/plexus/components.xml")
1206 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1207 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1208 "--source" "build/classes/META-INF/plexus"
1209 "--output" "build/classes/META-INF/plexus/components.t.xml"
1210 "--classes" "build/classes"
1211 "--descriptors" "build/classes")
1212 ;; Now we merge all other components from hand-written xml
1213 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1214 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1215 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1216 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1217 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1219 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1223 ,@(append generated-xml components-xml
1224 default-bindings-xml
1225 artifact-handlers-xml)))))))
1227 (add-after 'generate-metadata 'rebuild
1229 (invoke "ant" "jar")
1232 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1233 ("java-commons-cli" ,java-commons-cli)
1234 ("java-plexus-cli" ,java-plexus-cli)
1235 ("java-jdom2" ,java-jdom2)
1236 ("java-qdox" ,java-qdox)
1237 ("maven-core-boot" ,maven-core-bootstrap)
1238 ,@(package-native-inputs maven-core-bootstrap)))))
1240 (define-public maven-embedder
1242 (inherit maven-artifact)
1243 (name "maven-embedder")
1245 `(#:jar-name "maven-embedder.jar"
1246 #:source-dir "maven-embedder/src/main/java"
1247 #:test-dir "maven-embedder/src/test"
1248 #:test-exclude (list "**/MavenCliTest.java")
1251 (modify-phases %standard-phases
1252 (add-before 'build 'generate-sisu-named
1254 (mkdir-p "build/classes/META-INF/sisu")
1255 (chmod "sisu.sh" #o755)
1256 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1257 "build/classes/META-INF/sisu/javax.inject.Named")
1259 (add-before 'build 'generate-models
1260 (lambda* (#:key inputs #:allow-other-keys)
1261 (define (modello-single-mode file version mode)
1262 (invoke "java" "org.codehaus.modello.ModelloCli"
1263 file mode "maven-embedder/src/main/java" version
1265 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1266 (modello-single-mode file "1.0.0" "java")
1267 (modello-single-mode file "1.0.0" "xpp3-reader")
1268 (modello-single-mode file "1.0.0" "xpp3-writer"))
1270 (add-before 'check 'fix-test-paths
1272 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1273 (("target/test-classes") "build/test-classes"))
1275 (add-before 'check 'fix-test-compilation
1277 ;; Tests are in the java/ subdir. Other subdirectories contain
1278 ;; additional test plugins, with duplicate classes, so we can't
1279 ;; compile them. Also, they are meant to be built with maven, to
1280 ;; test its build process.
1281 (substitute* "build.xml"
1282 (("srcdir=\"maven-embedder/src/test\"")
1283 "srcdir=\"maven-embedder/src/test/java\""))
1286 `(("maven-core" ,maven-core)
1287 ("maven-artifact" ,maven-artifact)
1288 ("maven-plugin-api" ,maven-plugin-api)
1289 ("maven-builder-support" ,maven-builder-support)
1290 ("maven-model" ,maven-model)
1291 ("maven-model-builder" ,maven-model-builder)
1292 ("maven-settings" ,maven-settings)
1293 ("maven-settings-builder" ,maven-settings-builder)
1294 ("maven-shared-utils" ,maven-shared-utils)
1295 ("java-plexus-classworlds" ,java-plexus-classworlds)
1296 ("java-plexus-util" ,java-plexus-utils)
1297 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1298 ("java-plexus-cipher" ,java-plexus-cipher)
1299 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1300 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1301 ("maven-resolevr-util" ,maven-resolver-util)
1302 ("maven-resolevr-api" ,maven-resolver-api)
1303 ("java-logback-core" ,java-logback-core)
1304 ("java-logback-classic" ,java-logback-classic)
1305 ("java-commons-cli" ,java-commons-cli)
1306 ("java-commons-io" ,java-commons-io)
1307 ("java-commons-lang3" ,java-commons-lang3)
1308 ("java-guava" ,java-guava)
1309 ("java-guice" ,java-guice)
1310 ("java-javax-inject" ,java-javax-inject)
1311 ("java-slf4j-api" ,java-slf4j-api)
1312 ("java-slf4j-simple" ,java-slf4j-simple)))
1314 `(("java-modello-core" ,java-modello-core)
1315 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1316 ("java-sisu-build-api" ,java-sisu-build-api)
1317 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1318 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1319 ("java-cglib" ,java-cglib)
1320 ("java-asm" ,java-asm)
1321 ("java-modello-plugins-java" ,java-modello-plugins-java)
1322 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1323 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1325 ("java-junit" ,java-junit)
1326 ("java-objenesis" ,java-objenesis)
1327 ("java-mockito-1" ,java-mockito-1)
1328 ("java-hamcrest-core" ,java-hamcrest-core)))
1329 (description "Apache Maven is a software project management and comprehension
1330 tool. This package contains a Maven embeddable component, with CLI and
1331 logging support.")))
1333 (define-public maven-compat
1335 (inherit maven-artifact)
1336 (name "maven-compat")
1338 `(#:jar-name "maven-compat.jar"
1339 #:source-dir "src/main/java"
1341 #:test-dir "src/test"
1343 (modify-phases %standard-phases
1344 ;; Tests assume we're in this directory
1345 (add-before 'configure 'chdir
1347 (chdir "maven-compat")
1349 (add-before 'build 'recreate-removed-jar
1351 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1353 (with-directory-excursion "src/test/resources"
1354 (with-output-to-file "artifact-install/artifact-1.0.jar"
1356 (format #t "dummy~%")))
1359 (with-output-to-file file
1361 (format #t "foo~%"))))
1362 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1363 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1364 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1365 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1366 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1367 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1368 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1369 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1370 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1371 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1372 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1373 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1374 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1375 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1376 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1377 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1378 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1379 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1380 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1381 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1382 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1383 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1384 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1385 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1386 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1387 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1388 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1389 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1390 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1391 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1392 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1393 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1394 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1395 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1396 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1397 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1398 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1399 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1400 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1401 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1402 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1403 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1404 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1405 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1406 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1407 (with-directory-excursion "local-repo/snapshot-test/jars"
1410 (with-output-to-file file
1413 (format #t "local"))))
1414 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1415 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1416 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1419 (with-directory-excursion
1420 (string-append "src/test/remote-repo/org/apache/maven/its/"
1422 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1425 (copy-file (string-append letter "-0.1.pom")
1426 (string-append dir "/pom.xml"))
1427 (with-output-to-file (string-append dir "/pom.properties")
1429 (format #t "version=0.1~%")
1430 (format #t "groupId=org.apache.maven.its")
1431 (format #t (string-append "artifactId=" letter))))
1432 (with-output-to-file "META-INF/MANIFEST.MF"
1434 (format #t "Manifest-Version: 1.0~%"))))
1435 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1436 (string-append letter "-0.1.jar") "META-INF")))
1439 (add-before 'build 'generate-models
1440 (lambda* (#:key inputs #:allow-other-keys)
1441 (define (modello-single-mode file version mode)
1442 (invoke "java" "org.codehaus.modello.ModelloCli"
1443 file mode "src/main/java" version
1445 (let ((file "src/main/mdo/profiles.mdo"))
1446 (modello-single-mode file "1.0.0" "java")
1447 (modello-single-mode file "1.0.0" "xpp3-reader")
1448 (modello-single-mode file "1.0.0" "xpp3-writer"))
1449 (let ((file "src/main/mdo/paramdoc.mdo"))
1450 (modello-single-mode file "1.0.0" "java")
1451 (modello-single-mode file "1.0.0" "xpp3-reader")
1452 (modello-single-mode file "1.0.0" "xpp3-writer"))
1454 (add-after 'build 'generate-metadata
1456 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1457 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1458 "--source" "src/main/java"
1459 "--output" "build/classes/META-INF/plexus/components.xml"
1460 "--classes" "build/classes"
1461 "--descriptors" "build/classes/META-INF")
1463 (add-before 'check 'build-tests
1465 (invoke "ant" "compile-tests")
1467 (add-after 'build-tests 'generate-test-metadata
1469 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1471 ":build/test-classes")
1472 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1473 "--source" "src/test/java"
1474 "--output" "build/test-classes/META-INF/plexus/components.xml"
1475 "--classes" "build/test-classes"
1476 "--descriptors" "build/test-classes/META-INF")
1478 (add-after 'generate-metadata 'rebuild
1480 (invoke "ant" "jar")
1483 `(("maven-artifact" ,maven-artifact)
1484 ("maven-repository-metadata" ,maven-repository-metadata)
1485 ("maven-builder-support" ,maven-builder-support)
1486 ("maven-model" ,maven-model)
1487 ("maven-model-builder" ,maven-model-builder)
1488 ("maven-settings" ,maven-settings)
1489 ("maven-settings-builder" ,maven-settings-builder)
1490 ("maven-core" ,maven-core)
1491 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1492 ("maven-wagon-file" ,maven-wagon-file)
1493 ("maven-resolver-api" ,maven-resolver-api)
1494 ("maven-resolver-util" ,maven-resolver-util)
1495 ("maven-resolver-spi" ,maven-resolver-spi)
1496 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1498 `(("java-modello-core" ,java-modello-core)
1499 ("java-plexus-utils" ,java-plexus-utils)
1500 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1501 ("java-plexus-classworlds" ,java-plexus-classworlds)
1502 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1503 ("java-sisu-build-api" ,java-sisu-build-api)
1504 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1505 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1506 ("java-javax-inject" ,java-javax-inject)
1507 ("java-guice" ,java-guice)
1508 ("java-guava" ,java-guava)
1509 ("java-cglib" ,java-cglib)
1510 ("java-asm" ,java-asm)
1511 ("java-modello-plugins-java" ,java-modello-plugins-java)
1512 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1513 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1515 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1516 ("java-commons-cli" ,java-commons-cli)
1517 ("java-plexus-cli" ,java-plexus-cli)
1518 ("java-jdom2" ,java-jdom2)
1519 ("maven-plugin-api" ,maven-plugin-api)
1520 ("java-qdox" ,java-qdox)
1522 ("java-plexus-cipher" ,java-plexus-cipher)
1523 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1524 ("java-jsr250" ,java-jsr250)
1525 ("java-cdi-api" ,java-cdi-api)
1526 ("java-junit" ,java-junit)
1527 ("maven-resolver-impl" ,maven-resolver-impl)
1528 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1529 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1530 ("java-commons-lang3" ,java-commons-lang3)
1531 ("java-aop" ,java-aopalliance)
1532 ("maven-resolver-provider" ,maven-resolver-provider)
1533 ("java-slf4j-api" ,java-slf4j-api)
1534 ("java-slf4j-simple" ,java-slf4j-simple)
1535 ,@(package-inputs java-slf4j-api)))
1536 (description "Apache Maven is a software project management and comprehension
1537 tool. This package contains Maven2 classes maintained as compatibility
1538 layer for plugins that need to keep Maven2 compatibility.")))
1540 (define-public maven
1542 (inherit maven-artifact)
1546 (modify-phases %standard-phases
1548 (lambda* (#:key inputs #:allow-other-keys)
1549 ;; Recreate the configuration for the loader
1550 (with-output-to-file "apache-maven/src/bin/m2.conf"
1552 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1554 (format #t "set maven.conf default ${maven.home}/conf~%")
1556 (format #t "[plexus.core]~%")
1557 (format #t "load ${maven.conf}/logging~%")
1558 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1559 ;; Reference every jar so plexus-classworlds can find them.
1561 (lambda (dependency)
1562 (format #t "load ~a/share/java/*.jar~%"
1563 (assoc-ref inputs dependency)))
1564 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1565 "maven-builder-support" "maven-model" "maven-model-builder"
1566 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1567 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1568 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1569 "maven-resolver-connector-basic" "maven-resolver-provider"
1570 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1571 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1572 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1573 "maven-wagon-http-shared" "maven-wagon-tck-http"
1574 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1575 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1576 "java-javax-inject" "java-plexus-component-annotations"
1577 "java-plexus-utils" "java-plexus-interpolation"
1578 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1579 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1580 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1581 "java-slf4j-simple"))))
1582 (substitute* "apache-maven/src/bin/mvn"
1587 (assoc-ref inputs "java-plexus-classworlds")
1590 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1594 (lambda* (#:key outputs #:allow-other-keys)
1595 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1596 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1597 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1598 (for-each (lambda (file)
1599 (install-file (string-append "apache-maven/src/bin/" file)
1601 (chmod (string-append bin file) #o755))
1602 '("mvn" "mvnDebug" "mvnyjp"))
1603 (install-file "apache-maven/src/bin/m2.conf" bin)
1604 (copy-recursively "apache-maven/src/conf" conf))
1607 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1608 ("maven-artifact" ,maven-artifact)
1609 ("maven-embedder" ,maven-embedder)
1610 ("maven-core" ,maven-core)
1611 ("maven-compat" ,maven-compat)
1612 ("maven-builder-support" ,maven-builder-support)
1613 ("maven-model" ,maven-model)
1614 ("maven-model-builder" ,maven-model-builder)
1615 ("maven-settings" ,maven-settings)
1616 ("maven-settings-builder" ,maven-settings-builder)
1617 ("maven-plugin-api" ,maven-plugin-api)
1618 ("maven-repository-metadata" ,maven-repository-metadata)
1619 ("maven-shared-utils" ,maven-shared-utils)
1620 ("maven-resolver-api" ,maven-resolver-api)
1621 ("maven-resolver-spi" ,maven-resolver-spi)
1622 ("maven-resolver-util" ,maven-resolver-util)
1623 ("maven-resolver-impl" ,maven-resolver-impl)
1624 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1625 ("maven-resolver-provider" ,maven-resolver-provider)
1626 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1627 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1628 ("maven-wagon-file" ,maven-wagon-file)
1629 ("maven-wagon-http" ,maven-wagon-http)
1630 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1631 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
1632 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
1633 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
1634 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
1635 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1636 ("java-guice" ,java-guice)
1637 ("java-aopalliance" ,java-aopalliance)
1638 ("java-cglib" ,java-cglib)
1639 ("java-asm" ,java-asm)
1640 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1641 ("java-javax-inject" ,java-javax-inject)
1642 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1643 ("java-plexus-utils" ,java-plexus-utils)
1644 ("java-plexus-interpolation" ,java-plexus-interpolation)
1645 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1646 ("java-plexus-cipher" ,java-plexus-cipher)
1647 ("java-guava" ,java-guava)
1648 ("java-jansi" ,java-jansi)
1649 ("java-jsr250" ,java-jsr250)
1650 ("java-cdi-api" ,java-cdi-api)
1651 ("java-commons-cli" ,java-commons-cli)
1652 ("java-commons-io" ,java-commons-io)
1653 ("java-commons-lang3" ,java-commons-lang3)
1654 ("java-slf4j-api" ,java-slf4j-api)
1655 ;; TODO: replace with maven-slf4j-provider
1656 ("java-slf4j-simple" ,java-slf4j-simple)))
1658 `(("coreutils" ,coreutils)
1660 (description "Apache Maven is a software project management and comprehension
1661 tool. Based on the concept of a project object model: builds, dependency
1662 management, documentation creation, site publication, and distribution
1663 publication are all controlled from the @file{pom.xml} declarative file. Maven
1664 can be extended by plugins to utilise a number of other development tools for
1665 reporting or the build process.")))