1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
4 ;;; This file is part of GNU Guix.
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19 (define-module (gnu packages maven)
20 #:use-module ((guix licenses) #:prefix license:)
21 #:use-module (guix packages)
22 #:use-module (guix download)
23 #:use-module (guix utils)
24 #:use-module (guix build-system ant)
25 #:use-module (gnu packages)
26 #:use-module (gnu packages base)
27 #:use-module (gnu packages compression)
28 #:use-module (gnu packages java)
29 #:use-module (gnu packages web)
30 #:use-module (gnu packages xml))
32 (define-public java-plexus-component-metadata
34 (inherit java-plexus-container-default)
35 (name "java-plexus-component-metadata")
37 `(#:jar-name "plexus-component-metadata.jar"
38 #:source-dir "src/main/java"
42 (modify-phases %standard-phases
43 (add-before 'configure 'chdir
45 (chdir "plexus-component-metadata")
47 (add-before 'build 'copy-resources
49 (copy-recursively "src/main/resources"
53 `(("java-plexus-container-default" ,java-plexus-container-default)
54 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
55 ("java-plexus-utils" ,java-plexus-utils)
56 ("java-plexus-cli" ,java-plexus-cli)
57 ("java-plexus-classworlds" ,java-plexus-classworlds)
58 ("maven-plugin-api" ,maven-plugin-api)
59 ("maven-plugin-annotations" ,maven-plugin-annotations)
60 ("maven-core-bootstrap" ,maven-core-bootstrap)
61 ("maven-model" ,maven-model)
62 ("java-commons-cli" ,java-commons-cli)
63 ("java-qdox" ,java-qdox)
64 ("java-jdom2" ,java-jdom2)
65 ("java-asm" ,java-asm)))
67 `(("java-junit" ,java-junit)
68 ("java-guava" ,java-guava)
69 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
70 (synopsis "Inversion-of-control container for Maven")
71 (description "The Plexus project provides a full software stack for creating
72 and executing software projects. Based on the Plexus container, the
73 applications can utilise component-oriented programming to build modular,
74 reusable components that can easily be assembled and reused. This package
75 provides the Maven plugin generating the component metadata.")))
77 (define-public maven-resolver-api
79 (name "maven-resolver-api")
83 (uri (string-append "https://github.com/apache/maven-resolver/"
84 "archive/maven-resolver-" version ".tar.gz"))
87 "0gfkf8g5zbjh6ciq3dnby9m5irhrbyc7d2jzic9l8xx6hl61q6mm"))))
88 (build-system ant-build-system)
90 `(#:jar-name "maven-resolver-api.jar"
91 #:source-dir "maven-resolver-api/src/main/java"
92 #:test-dir "maven-resolver-api/src/test"))
94 `(("java-asm" ,java-asm)
95 ("java-cglib" ,java-cglib)
96 ("java-hamcrest-core" ,java-hamcrest-core)
97 ("java-junit" ,java-junit)
98 ("java-mockito-1" ,java-mockito-1)
99 ("java-objenesis" ,java-objenesis)))
100 (home-page "https://github.com/apache/maven-resolver")
101 (synopsis "Maven repository system API")
102 (description "This package contains the API for the maven repository system.")
103 (license license:asl2.0)))
105 (define-public maven-resolver-spi
107 (inherit maven-resolver-api)
108 (name "maven-resolver-spi")
110 `(#:jar-name "maven-resolver-spi.jar"
111 #:source-dir "maven-resolver-spi/src/main/java"
112 #:test-dir "maven-resolver-spi/src/test"
115 `(("maven-resolver-api" ,maven-resolver-api)))
116 (synopsis "Maven repository system SPI")
117 (description "This package contains the service provider interface (SPI)
118 for repository system implementations and repository connectors.")))
120 (define-public maven-resolver-test-util
122 (inherit maven-resolver-api)
123 (name "maven-resolver-test-util")
125 `(#:jar-name "maven-resolver-test-util.jar"
126 #:source-dir "maven-resolver-test-util/src/main/java"
127 #:test-dir "maven-resolver-test-util/src/test"
130 `(("maven-resolver-api" ,maven-resolver-api)
131 ("maven-resolver-spi" ,maven-resolver-spi)))
132 (synopsis "Utility classes for testing the maven repository system")
133 (description "This package contains a collection of utility classes to
134 ease testing of the repository system.")))
136 (define-public maven-resolver-util
138 (inherit maven-resolver-api)
139 (name "maven-resolver-util")
141 `(#:jar-name "maven-resolver-util.jar"
142 #:source-dir "maven-resolver-util/src/main/java"
143 #:test-dir "maven-resolver-util/src/test"
146 `(("maven-resolver-api" ,maven-resolver-api)))
148 `(("java-junit" ,java-junit)
149 ("java-hamcrest-core" ,java-hamcrest-core)
150 ("maven-resolver-test-util" ,maven-resolver-test-util)))
151 (synopsis "Utility classes for the maven repository system")
152 (description "This package contains a collection of utility classes to
153 ease usage of the repository system.")))
155 (define-public maven-resolver-connector-basic
157 (inherit maven-resolver-api)
158 (name "maven-resolver-connector-basic")
160 `(#:jar-name "maven-resolver-connector-basic.jar"
161 #:source-dir "maven-resolver-connector-basic/src/main/java"
162 #:test-dir "maven-resolver-connector-basic/src/test"
165 (modify-phases %standard-phases
166 (add-before 'build 'generate-sisu
168 (mkdir-p "build/classes/META-INF/sisu")
169 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
171 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
174 `(("maven-resolver-api" ,maven-resolver-api)
175 ("maven-resolver-spi" ,maven-resolver-spi)
176 ("maven-resolver-util" ,maven-resolver-util)
177 ("java-javax-inject" ,java-javax-inject)
178 ("java-slf4j-api" ,java-slf4j-api)))
180 `(("java-junit" ,java-junit)
181 ("java-hamcrest-core" ,java-hamcrest-core)
182 ("maven-resolver-test-util" ,maven-resolver-test-util)))
183 (synopsis "Maven repository connector implementation")
184 (description "This package contains a repository connector implementation
185 for repositories using URI-based layouts.")))
187 (define-public maven-resolver-impl
189 (inherit maven-resolver-api)
190 (name "maven-resolver-impl")
192 `(#:jar-name "maven-resolver-impl.jar"
193 #:source-dir "maven-resolver-impl/src/main/java"
194 #:test-dir "maven-resolver-impl/src/test"
197 (modify-phases %standard-phases
198 (add-before 'build 'generate-sisu
200 (mkdir-p "build/classes/META-INF/sisu")
201 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
205 ;; Build this list by looking for files containing "@Named"
206 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
207 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
208 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
209 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
210 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
211 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
212 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
213 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
214 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
215 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
216 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
217 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
218 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
219 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
220 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
221 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
222 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
223 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
224 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
225 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
226 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
227 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
228 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
231 `(("maven-resolver-api" ,maven-resolver-api)
232 ("maven-resolver-spi" ,maven-resolver-spi)
233 ("maven-resolver-util" ,maven-resolver-util)
234 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
235 ("java-javax-inject" ,java-javax-inject)
236 ("java-guice" ,java-guice)
237 ("java-guava" ,java-guava)
238 ("java-cglib" ,java-cglib)
239 ("java-asm" ,java-asm)
240 ("jajva-aopalliance" ,java-aopalliance)
241 ("java-slf4j-api" ,java-slf4j-api)))
243 `(("java-junit" ,java-junit)
244 ("java-hamcrest-core" ,java-hamcrest-core)
245 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
247 (define-public maven-resolver-transport-wagon
249 (inherit maven-resolver-api)
250 (name "maven-resolver-transport-wagon")
252 `(#:jar-name "maven-resolver-transport-wagon.jar"
253 #:source-dir "maven-resolver-transport-wagon/src/main/java"
254 #:test-dir "maven-resolver-transport-wagon/src/test"
257 (modify-phases %standard-phases
258 (add-before 'build 'generate-sisu
260 (mkdir-p "build/classes/META-INF/sisu")
261 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
263 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
265 (add-before 'build 'generate-components.xml
267 (mkdir-p "build/classes/META-INF/plexus")
268 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
272 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
276 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
277 <role-hint>plexus</role-hint>
278 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
280 <isolated-realm>false</isolated-realm>
283 <role>org.codehaus.plexus.PlexusContainer</role>
285 <field-name>container</field-name>
290 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
291 <role-hint>plexus</role-hint>
292 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
294 <isolated-realm>false</isolated-realm>
297 <role>org.codehaus.plexus.PlexusContainer</role>
299 <field-name>container</field-name>
304 </component-set>\n"))))
307 `(("maven-resolver-api" ,maven-resolver-api)
308 ("maven-resolver-spi" ,maven-resolver-spi)
309 ("maven-resolver-util" ,maven-resolver-util)
310 ("java-javax-inject" ,java-javax-inject)
311 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
312 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
313 ("java-plexus-classworld" ,java-plexus-classworlds)
314 ("java-plexus-plexus-util" ,java-plexus-utils)
315 ("java-slf4j-api" ,java-slf4j-api)
316 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
317 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
319 `(("java-junit" ,java-junit)
320 ("java-hamcrest-core" ,java-hamcrest-core)
321 ("maven-resolver-test-util" ,maven-resolver-test-util)
322 ("java-guava" ,java-guava)
323 ("java-cglib" ,java-cglib)
324 ("java-asm" ,java-asm)
325 ("java-aopalliance" ,java-aopalliance)
326 ("java-guice" ,java-guice)))
327 (synopsis "Transport implementation for Maven")
328 (description "This package contains a transport implementation based on
329 Maven Wagon, for use in Maven.")))
331 (define-public maven-shared-utils
333 (name "maven-shared-utils")
337 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
338 "maven-shared-utils-" version "-source-release.zip"))
341 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
342 (build-system ant-build-system)
344 `(#:jar-name "maven-shared-utils.jar"
345 #:source-dir "src/main/java"
348 (modify-phases %standard-phases
349 (add-before 'check 'remove-cyclic-dep
352 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
355 `(("java-jansi" ,java-jansi)
356 ("java-commons-io" ,java-commons-io)
357 ("java-jsr305" ,java-jsr305)
358 ("java-plexus-container-default" ,java-plexus-container-default)))
361 ("java-junit" ,java-junit)
362 ("java-hamcrest-core" ,java-hamcrest-core)
363 ("java-commons-lang3" ,java-commons-lang3)))
364 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
365 (synopsis "Plexus-util replacement for maven")
366 (description "This project aims to be a functional replacement for
367 plexus-utils in Maven. It is not a 100% API compatible replacement but a
368 replacement with improvements.")
369 (license license:asl2.0)))
371 (define-public maven-plugin-annotations
373 (name "maven-plugin-annotations")
377 (uri (string-append "https://archive.apache.org/dist/maven/"
378 "plugin-tools/maven-plugin-tools-" version
379 "-source-release.zip"))
380 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
381 (build-system ant-build-system)
383 `(#:jar-name "maven-plugin-annotations.jar"
384 #:source-dir "maven-plugin-annotations/src/main/java"
387 `(("maven-artifact" ,maven-artifact)))
390 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
391 (synopsis "Java 5 annotations to use in Mojos")
392 (description "This package contains Java 5 annotations for use in Mojos.")
393 (license license:asl2.0)))
395 (define-public maven-wagon-provider-api
397 (name "maven-wagon-provider-api")
401 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
402 "wagon-" version "-source-release.zip"))
403 (sha256 (base32 "0r07j6xdzdnrvqnv8ida7dx1m05pznh5qgmcfcfpyvg9nxbj3l1n"))))
404 (build-system ant-build-system)
406 `(#:jar-name "maven-wagon-provider-api.jar"
407 #:source-dir "wagon-provider-api/src/main/java"
408 #:test-dir "wagon-provider-api/src/test"))
410 `(("java-plexus-utils" ,java-plexus-utils)))
413 ("java-junit" ,java-junit)
414 ("java-easymock" ,java-easymock)))
415 (home-page "https://maven.apache.org/wagon")
416 (synopsis "Transport abstraction for Maven")
417 (description "Maven Wagon is a transport abstraction that is used in Maven's
418 artifact and repository handling code.")
419 (license license:asl2.0)))
421 (define-public maven-wagon-provider-test
423 (inherit maven-wagon-provider-api)
424 (name "maven-wagon-provider-test")
426 `(#:jar-name "maven-wagon-provider-test.jar"
427 #:source-dir "wagon-provider-test/src/main/java"
428 #:tests? #f; no tests
431 `(("java-plexus-utils" ,java-plexus-utils)
432 ("java-plexus-container-default" ,java-plexus-container-default)
433 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
434 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
435 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
436 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
437 ("java-slf4j-api" ,java-slf4j-api)
438 ("java-javaee-servletapi" ,java-javaee-servletapi)
439 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
440 (synopsis "Test classes from maven-wagon")
441 (description "Maven Wagon is a transport abstraction that is used in Maven's
442 artifact and repository handling code. This package contains common test
443 classes used in multiple maven-wagon components.")))
445 (define-public maven-wagon-file
447 (inherit maven-wagon-provider-api)
448 (name "maven-wagon-file")
450 `(#:jar-name "maven-wagon-file.jar"
451 #:source-dir "wagon-providers/wagon-file/src/main/java"
452 #:test-dir "wagon-providers/wagon-file/src/test"
455 (modify-phases %standard-phases
456 (add-before 'check 'fix-paths
458 ;; Tests assume they are run by maven, which copies test resources
459 ;; to target. Our ant-build-system does the same, but with the
461 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
462 (("target") "build"))
464 (add-after 'build 'generate-metadata
466 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
467 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
468 "--source" "wagon-providers/wagon-file/src/main/java"
469 "--output" "build/classes/META-INF/plexus/components.xml"
470 "--classes" "build/classes"
471 "--descriptors" "build/classes/META-INF")
473 (add-after 'generate-metadata 'rebuild
478 `(("java-plexus-utils" ,java-plexus-utils)
479 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
481 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
482 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
483 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
484 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
485 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
486 ("java-plexus-classworlds" ,java-plexus-classworlds)
487 ("java-guava" ,java-guava)
488 ("java-guice" ,java-guice)
489 ("java-javax-inject" ,java-javax-inject)
490 ("java-cglib" ,java-cglib)
491 ("java-slf4j-api" ,java-slf4j-api)
492 ("java-plexus-utils" ,java-plexus-utils)
493 ("java-plexus-cli" ,java-plexus-cli)
494 ("maven-plugin-api" ,maven-plugin-api)
495 ("maven-plugin-annotations" ,maven-plugin-annotations)
496 ("maven-core" ,maven-core)
497 ("maven-model" ,maven-model)
498 ("java-commons-cli" ,java-commons-cli)
499 ("java-qdox" ,java-qdox)
500 ("java-jdom2" ,java-jdom2)
501 ("java-asm" ,java-asm)
502 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
503 ,@(package-native-inputs maven-wagon-provider-api)))
504 (synopsis "Wagon provider that gets and puts artifacts using the file system")
505 (description "Maven Wagon is a transport abstraction that is used in Maven's
506 artifact and repository handling code. It uses providers, that are tools to
507 manage artifacts and deployment. This package contains the file provider which
508 gets and puts artifacts using the file system.")))
510 (define-public maven-wagon-tck-http
512 (inherit maven-wagon-provider-api)
513 (name "maven-wagon-tck-http")
515 `(#:jar-name "maven-wagon-tck-http.jar"
516 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
517 #:tests? #f; no tests
520 `(("java-plexus-util" ,java-plexus-utils)
521 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
522 ("java-tomcat" ,java-tomcat)
523 ("java-slf4j-api" ,java-slf4j-api)
524 ("java-commons-codec" ,java-commons-codec)
525 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
526 ("java-plexus-classworlds" ,java-plexus-classworlds)
527 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
528 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
529 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
530 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
531 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
532 (synopsis "Wagon HTTP Test Compatibility Kit")
533 (description "Maven Wagon is a transport abstraction that is used in Maven's
534 artifact and repository handling code. This package contains the HTTP
535 Test Compatibility Kit.")))
537 (define-public maven-wagon-http-shared
539 (inherit maven-wagon-provider-api)
540 (name "maven-wagon-http-shared")
542 `(#:jar-name "maven-wagon-http-shared.jar"
543 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
544 #:test-dir "wagon-providers/wagon-http-shared/src/test"
547 (modify-phases %standard-phases
548 (add-after 'build 'generate-metadata
550 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
551 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
552 "--source" "wagon-providers/wagon-http-shared/src/main/java"
553 "--output" "build/classes/META-INF/plexus/components.xml"
554 "--classes" "build/classes"
555 "--descriptors" "build/classes/META-INF")
557 (add-after 'generate-metadata 'rebuild
562 `(("java-plexus-utils" ,java-plexus-utils)
563 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
564 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
565 ("java-commons-io" ,java-commons-io)
566 ("java-jsoup" ,java-jsoup)
567 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
569 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
570 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
571 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
572 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
573 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
574 ("java-plexus-classworlds" ,java-plexus-classworlds)
575 ("java-guava" ,java-guava)
576 ("java-guice" ,java-guice)
577 ("java-javax-inject" ,java-javax-inject)
578 ("java-cglib" ,java-cglib)
579 ("java-slf4j-api" ,java-slf4j-api)
580 ("java-plexus-utils" ,java-plexus-utils)
581 ("java-plexus-cli" ,java-plexus-cli)
582 ("maven-plugin-api" ,maven-plugin-api)
583 ("maven-plugin-annotations" ,maven-plugin-annotations)
584 ("maven-core" ,maven-core)
585 ("maven-model" ,maven-model)
586 ("java-commons-cli" ,java-commons-cli)
587 ("java-qdox" ,java-qdox)
588 ("java-jdom2" ,java-jdom2)
589 ("java-asm" ,java-asm)
590 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
591 ,@(package-native-inputs maven-wagon-provider-api)))
592 (synopsis "Shared Library for wagon providers supporting HTTP.")
593 (description "Maven Wagon is a transport abstraction that is used in Maven's
594 artifact and repository handling code. It uses providers, that are tools to
595 manage artifacts and deployment. This package contains a shared library for
596 wagon providers supporting HTTP.")))
598 (define-public maven-wagon-http
600 (inherit maven-wagon-provider-api)
601 (name "maven-wagon-http")
603 `(#:jar-name "maven-wagon-http.jar"
604 #:source-dir "wagon-providers/wagon-http/src/main/java"
605 #:test-dir "wagon-providers/wagon-http/src/test"
608 ;; FIXME: javax.net.ssl.SSLHandshakeException:
609 ;; sun.security.validator.ValidatorException:
610 ;; PKIX path building failed:
611 ;; sun.security.provider.certpath.SunCertPathBuilderException:
612 ;; unable to find valid certification path to requested target
613 "**/HttpsWagonPreemptiveTest.java"
614 "**/HttpsWagonTest.java"
619 (modify-phases %standard-phases
620 (add-before 'build 'copy-resources
622 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
623 "build/classes/META-INF/plexus")
625 (add-before 'check 'fix-resource-path
627 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
628 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
629 (("src/test") "wagon-providers/wagon-http/src/test"))
632 `(("java-plexus-utils" ,java-plexus-utils)
633 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
634 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
635 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
636 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
637 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
639 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
640 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
641 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
642 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
643 ("java-plexus-container-default" ,java-plexus-container-default)
644 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
645 ("java-plexus-classworlds" ,java-plexus-classworlds)
646 ("java-guava" ,java-guava)
647 ("java-guice" ,java-guice)
648 ("java-inject" ,java-javax-inject)
649 ("java-cglib" ,java-cglib)
650 ("java-slf4j-api" ,java-slf4j-api)
651 ("java-plexus-utils" ,java-plexus-utils)
652 ("java-plexus-cli" ,java-plexus-cli)
653 ("maven-plugin-api" ,maven-plugin-api)
654 ("maven-plugin-annotations" ,maven-plugin-annotations)
655 ("maven-core" ,maven-core)
656 ("maven-model" ,maven-model)
657 ("java-commons-cli" ,java-commons-cli)
658 ("java-qdox" ,java-qdox)
659 ("java-jdom2" ,java-jdom2)
660 ("java-asm" ,java-asm)
661 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
662 ("java-tomcat" ,java-tomcat)
663 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
664 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
665 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
666 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
667 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
668 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
669 ("java-hamcrest-core" ,java-hamcrest-core)
670 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
671 ("java-commons-codec" ,java-commons-codec)
672 ("java-commons-io" ,java-commons-io)
673 ("java-jsoup" ,java-jsoup)
674 ("java-slf4j-simple" ,java-slf4j-simple)
675 ,@(package-native-inputs maven-wagon-provider-api)))
676 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
677 (description "Maven Wagon is a transport abstraction that is used in Maven's
678 artifact and repository handling code. It uses providers, that are tools to
679 manage artifacts and deployment. This package contains a Wagon provider that
680 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
682 (define-public maven-artifact
684 (name "maven-artifact")
688 (uri (string-append "https://archive.apache.org/dist/maven/"
689 "maven-3/" version "/source/"
690 "apache-maven-" version "-src.tar.gz"))
691 (sha256 (base32 "17jrqfqwn569jgnv8m4pqc27csssb0rf6mznpq61l5bnbd6hl75k"))
692 (modules '((guix build utils)))
695 (for-each delete-file (find-files "." "\\.jar$"))
698 (search-patches "maven-generate-component-xml.patch"
699 "maven-generate-javax-inject-named.patch"))))
700 (build-system ant-build-system)
702 `(#:jar-name "maven-artifact.jar"
703 #:source-dir "maven-artifact/src/main/java"
704 #:test-dir "maven-artifact/src/test"
705 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"))
707 `(("java-plexus-utils" ,java-plexus-utils)
708 ("java-commons-lang3" ,java-commons-lang3)))
710 `(("java-junit" ,java-junit)))
711 (home-page "https://maven.apache.org/")
712 (synopsis "Build system")
713 (description "Apache Maven is a software project management and comprehension
714 tool. This package contains the Maven Artifact classes, providing the
715 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
716 jar file is executable and provides a little tool to display how Maven parses
717 and compares versions:")
718 (license license:asl2.0)))
720 (define-public maven-model
722 (inherit maven-artifact)
725 `(#:jar-name "maven-model.jar"
726 #:source-dir "maven-model/src/main/java"
727 #:test-dir "maven-model/src/test"
730 (modify-phases %standard-phases
731 (add-before 'build 'generate-models
732 (lambda* (#:key inputs #:allow-other-keys)
733 (define (modello-single-mode file version mode)
734 (invoke "java" "org.codehaus.modello.ModelloCli"
735 file mode "maven-model/src/main/java" version
737 (let ((file "maven-model/src/main/mdo/maven.mdo"))
738 (modello-single-mode file "4.0.0" "java")
739 (modello-single-mode file "4.0.0" "xpp3-reader")
740 (modello-single-mode file "4.0.0" "xpp3-writer")
741 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
744 `(("java-commons-lang3" ,java-commons-lang3)
745 ("java-plexus-utils" ,java-plexus-utils)))
747 `(("java-modello-core" ,java-modello-core)
749 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
750 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
751 ("java-guice" ,java-guice)
752 ("java-cglib" ,java-cglib)
753 ("java-asm" ,java-asm)
754 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
755 ("java-javax-inject" ,java-javax-inject)
756 ("java-plexus-classworlds" ,java-plexus-classworlds)
757 ("java-guava" ,java-guava)
758 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
759 ("java-sisu-build-api" ,java-sisu-build-api)
761 ("java-modello-plugins-java" ,java-modello-plugins-java)
762 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
763 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
765 ("java-junit" ,java-junit)))
766 (description "Apache Maven is a software project management and comprehension
767 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
768 so really just plain Java objects.")))
770 (define-public maven-builder-support
772 (inherit maven-artifact)
773 (name "maven-builder-support")
775 `(#:jar-name "maven-builder-support.jar"
776 #:source-dir "maven-builder-support/src/main/java"
778 #:test-dir "maven-builder-support/src/test"
780 (modify-phases %standard-phases
781 (add-before 'check 'fix-paths
783 (with-directory-excursion "maven-builder-support/src/test/java"
785 '("org/apache/maven/building/FileSourceTest.java"
786 "org/apache/maven/building/UrlSourceTest.java")
787 (("target/test-classes") "maven-builder-support/src/test/resources")))
790 `(("java-plexus-utils" ,java-plexus-utils)
791 ("java-commons-lang3" ,java-commons-lang3)))
793 `(("java-junit" ,java-junit)
794 ("java-hamcrest-core" ,java-hamcrest-core)))
795 (description "Apache Maven is a software project management and comprehension
796 tool. This package contains a support library for descriptor builders (model,
797 setting, toolchains)")))
799 (define-public maven-settings
801 (inherit maven-artifact)
802 (name "maven-settings")
804 `(#:jar-name "maven-settings.jar"
805 #:source-dir "maven-settings/src/main/java"
807 #:tests? #f; no tests
809 (modify-phases %standard-phases
810 (add-before 'build 'generate-models
811 (lambda* (#:key inputs #:allow-other-keys)
812 (define (modello-single-mode file version mode)
813 (invoke "java" "org.codehaus.modello.ModelloCli"
814 file mode "maven-settings/src/main/java" version
816 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
817 (modello-single-mode file "1.1.0" "java")
818 (modello-single-mode file "1.1.0" "xpp3-reader")
819 (modello-single-mode file "1.1.0" "xpp3-writer"))
823 `(("java-modello-core" ,java-modello-core)
825 ;("container" ,java-plexus-container-default)
826 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
827 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
828 ("java-guice" ,java-guice)
829 ("java-cglib" ,java-cglib)
830 ("java-asm" ,java-asm)
831 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
832 ("java-javax-inject" ,java-javax-inject)
833 ("java-plexus-classworlds" ,java-plexus-classworlds)
834 ("java-plexus-utils" ,java-plexus-utils)
835 ("java-guava" ,java-guava)
836 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
837 ("java-sisu-build-api" ,java-sisu-build-api)
839 ("java-modello-plugins-java" ,java-modello-plugins-java)
840 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
841 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
842 (description "Apache Maven is a software project management and comprehension
843 tool. This package contains strictly the model for Maven settings, that is
844 simply plain java objects.")))
846 (define-public maven-settings-builder
848 (inherit maven-artifact)
849 (name "maven-settings-builder")
851 `(#:jar-name "maven-settings-builder.jar"
852 #:source-dir "maven-settings-builder/src/main/java"
854 #:test-dir "maven-settings-builder/src/test"
856 (modify-phases %standard-phases
857 (add-before 'build 'generate-components.xml
859 (mkdir-p "build/classes/META-INF/plexus")
860 (chmod "components.sh" #o755)
861 (invoke "./components.sh" "maven-settings-builder/src/main/java"
862 "build/classes/META-INF/plexus/components.xml")
865 `(("java-plexus-utils" ,java-plexus-utils)
866 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
867 ("java-plexus-interpolation" ,java-plexus-interpolation)
868 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
869 ("maven-builder-support" ,maven-builder-support)
870 ("maven-settings" ,maven-settings)
871 ("java-commons-lang3" ,java-commons-lang3)))
873 `(("java-junit" ,java-junit)))
874 (description "Apache Maven is a software project management and comprehension
875 tool. This package contains the effective model builder, with profile activation,
876 inheritance, interpolation, @dots{}")))
878 (define-public maven-model-builder
880 (inherit maven-artifact)
881 (name "maven-model-builder")
883 `(#:jar-name "maven-model-builder.jar"
884 #:source-dir "maven-model-builder/src/main/java"
886 #:test-dir "maven-model-builder/src/test"
888 (modify-phases %standard-phases
889 (add-before 'build 'copy-resources
891 (copy-recursively "maven-model-builder/src/main/resources"
894 (add-before 'build 'generate-components.xml
896 (mkdir-p "build/classes/META-INF/plexus")
897 (chmod "components.sh" #o755)
898 (invoke "./components.sh" "maven-model-builder/src/main/java"
899 "build/classes/META-INF/plexus/components.xml")
901 (add-before 'check 'fix-paths
903 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
904 (("src/test") "maven-model-builder/src/test"))
907 `(("model" ,maven-model)
908 ("artifact" ,maven-artifact)
909 ("support" ,maven-builder-support)
910 ("annotations" ,java-plexus-component-annotations)
911 ("utils" ,java-plexus-utils)
912 ("interpolation" ,java-plexus-interpolation)
913 ("lang3" ,java-commons-lang3)
914 ("guava" ,java-guava)))
916 `(("java-junit" ,java-junit)
917 ("java-hamcrest-core" ,java-hamcrest-core)
918 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
919 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
920 ("guice" ,java-guice)
921 ("java-cglib" ,java-cglib)
922 ("java-asm" ,java-asm)
923 ("sisu-inject" ,java-eclipse-sisu-inject)
924 ("javax-inject" ,java-javax-inject)
925 ("java-xmlunit" ,java-xmlunit)
926 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
927 ("xbean" ,java-geronimo-xbean-reflect)
928 ("classworlds" ,java-plexus-classworlds)))
929 (description "Apache Maven is a software project management and comprehension
930 tool. This package contains the effective model builder, with profile activation,
931 inheritance, interpolation, @dots{}")))
933 (define-public maven-repository-metadata
935 (inherit maven-artifact)
936 (name "maven-repository-metadata")
938 `(#:jar-name "maven-repository-metadata.jar"
939 #:source-dir "maven-repository-metadata/src/main/java"
941 #:tests? #f; no tests
943 (modify-phases %standard-phases
944 (add-before 'build 'generate-models
945 (lambda* (#:key inputs #:allow-other-keys)
946 (define (modello-single-mode file version mode)
947 (invoke "java" "org.codehaus.modello.ModelloCli"
948 file mode "maven-repository-metadata/src/main/java" version
950 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
951 (modello-single-mode file "1.1.0" "java")
952 (modello-single-mode file "1.1.0" "xpp3-reader")
953 (modello-single-mode file "1.1.0" "xpp3-writer"))
957 `(("modello" ,java-modello-core)
959 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
960 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
961 ("java-guice" ,java-guice)
962 ("java-cglib" ,java-cglib)
963 ("java-asm" ,java-asm)
964 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
965 ("java-javax-inject" ,java-javax-inject)
966 ("java-plexus-utils" ,java-plexus-utils)
967 ("java-plexus-classworlds" ,java-plexus-classworlds)
968 ("java-guava" ,java-guava)
969 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
970 ("java-sisu-build-api" ,java-sisu-build-api)
972 ("java-modello-plugins-java" ,java-modello-plugins-java)
973 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
974 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
975 (description "Apache Maven is a software project management and comprehension
976 tool. This package contains strictly the model for Maven Repository Metadata,
977 so really just plain objects.")))
979 (define-public maven-resolver-provider
981 (inherit maven-artifact)
982 (name "maven-resolver-provider")
984 `(#:jar-name "maven-resolver-provider.jar"
985 #:source-dir "maven-resolver-provider/src/main/java"
986 #:test-dir "maven-resolver-provider/src/test"
988 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
990 (modify-phases %standard-phases
991 (add-before 'build 'generate-sisu-named
993 (mkdir-p "build/classes/META-INF/sisu")
994 (chmod "./sisu.sh" #o755)
995 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
996 "build/classes/META-INF/sisu/javax.inject.Named")
999 `(("maven-resolver-spi" ,maven-resolver-spi)
1000 ("maven-resolver-api" ,maven-resolver-api)
1001 ("maven-resolver-impl" ,maven-resolver-impl)
1002 ("maven-resolver-util" ,maven-resolver-util)
1003 ("maven-model" ,maven-model)
1004 ("maven-model-builder" ,maven-model-builder)
1005 ("maven-builder-support" ,maven-builder-support)
1006 ("maven-repository-metadata" ,maven-repository-metadata)
1007 ("java-plexus-utils" ,java-plexus-utils)
1008 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1009 ("java-commons-lang3" ,java-commons-lang3)
1010 ("java-guice" ,java-guice)
1011 ("java-guava" ,java-guava)
1012 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1013 ("java-javax-inject" ,java-javax-inject)))))
1015 (define-public maven-plugin-api
1017 (inherit maven-artifact)
1018 (name "maven-plugin-api")
1020 `(#:jar-name "maven-plugin-api.jar"
1021 #:source-dir "maven-plugin-api/src/main/java"
1023 #:test-dir "maven-plugin-api/src/test"
1025 (modify-phases %standard-phases
1026 (add-before 'build 'generate-models
1027 (lambda* (#:key inputs #:allow-other-keys)
1028 (define (modello-single-mode file version mode)
1029 (invoke "java" "org.codehaus.modello.ModelloCli"
1030 file mode "maven-plugin-api/src/main/java" version
1032 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1033 (modello-single-mode file "1.0.0" "java")
1034 (modello-single-mode file "1.0.0" "xpp3-reader")
1035 (modello-single-mode file "1.0.0" "xpp3-writer"))
1038 `(("maven-artifact" ,maven-artifact)
1039 ("maven-model" ,maven-model)
1040 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1041 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1042 ("guice" ,java-guice)
1043 ("java-cglib" ,java-cglib)
1044 ("java-asm" ,java-asm)
1045 ("sisu-inject" ,java-eclipse-sisu-inject)
1046 ("javax-inject" ,java-javax-inject)
1047 ("utils" ,java-plexus-utils)))
1049 `(("modello" ,java-modello-core)
1051 ("classworlds" ,java-plexus-classworlds)
1052 ("guava" ,java-guava)
1053 ("xbean" ,java-geronimo-xbean-reflect)
1054 ("build-api" ,java-sisu-build-api)
1056 ("java" ,java-modello-plugins-java)
1057 ("xml" ,java-modello-plugins-xml)
1058 ("xpp3" ,java-modello-plugins-xpp3)
1060 ("java-junit" ,java-junit)))
1061 (description "Apache Maven is a software project management and comprehension
1062 tool. This package contains strictly the API for plugins -- composed of goals
1063 implemented by Mojos -- development.
1065 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1066 generally generated from plugin sources using maven-plugin-plugin.")))
1068 (define maven-core-bootstrap
1070 (inherit maven-artifact)
1073 `(#:jar-name "maven-core.jar"
1074 #:source-dir "src/main/java"
1076 ;; Tests need maven-compat, which requires maven-core
1079 (modify-phases %standard-phases
1080 (add-before 'configure 'chdir
1082 ;; Required for generating components.xml in maven-core
1083 (chdir "maven-core")
1085 (add-before 'build 'copy-resources
1087 (mkdir-p "build/classes/")
1088 (copy-recursively "src/main/resources" "build/classes")
1090 (add-after 'copy-resources 'fill-properties
1092 ;; This file controls the output of some mvn subcommands, such as
1094 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1095 (("\\$\\{buildNumber\\}") "guix_build")
1096 (("\\$\\{timestamp\\}") "0")
1097 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1098 (("\\$\\{distributionId\\}") "apache-maven")
1099 (("\\$\\{distributionShortName\\}") "Maven")
1100 (("\\$\\{distributionName\\}") "Apache Maven"))
1102 (add-before 'build 'generate-sisu-named
1104 (mkdir-p "build/classes/META-INF/sisu")
1105 (chmod "../sisu.sh" #o755)
1106 (invoke "../sisu.sh" "src/main/java"
1107 "build/classes/META-INF/sisu/javax.inject.Named")
1109 (add-before 'build 'generate-models
1110 (lambda* (#:key inputs #:allow-other-keys)
1111 (define (modello-single-mode file version mode)
1112 (invoke "java" "org.codehaus.modello.ModelloCli"
1113 file mode "src/main/java" version
1115 (let ((file "src/main/mdo/toolchains.mdo"))
1116 (modello-single-mode file "1.1.0" "java")
1117 (modello-single-mode file "1.1.0" "xpp3-reader")
1118 (modello-single-mode file "1.1.0" "xpp3-writer"))
1121 `(("maven-artifact" ,maven-artifact)
1122 ("maven-resolver-provider" ,maven-resolver-provider)
1123 ("maven-builder-support" ,maven-builder-support)
1124 ("maven-model" ,maven-model)
1125 ("maven-model-builder" ,maven-model-builder)
1126 ("maven-settings" ,maven-settings)
1127 ("maven-settings-builder" ,maven-settings-builder)
1128 ("maven-plugin-api" ,maven-plugin-api)
1129 ("maven-repository-metadata" ,maven-repository-metadata)
1130 ("maven-shared-utils" ,maven-shared-utils)
1131 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1132 ("java-plexus-utils" ,java-plexus-utils)
1133 ("java-commons-lang3" ,java-commons-lang3)
1134 ("java-guava" ,java-guava)
1135 ("java-guice" ,java-guice)
1136 ("maven-resolver-api" ,maven-resolver-api)
1137 ("maven-resolver-spi" ,maven-resolver-spi)
1138 ("maven-resolver-util" ,maven-resolver-util)
1139 ("maven-resolver-impl" ,maven-resolver-impl)
1140 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1141 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1142 ("java-javax-inject" ,java-javax-inject)
1143 ("java-plexus-classworld" ,java-plexus-classworlds)))
1145 `(("java-modello-core" ,java-modello-core)
1146 ("java-cglib" ,java-cglib)
1147 ("java-asm" ,java-asm)
1148 ("java-plexus-classworlds" ,java-plexus-classworlds)
1149 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1150 ("java-sisu-build-api" ,java-sisu-build-api)
1151 ("java-modello-plugins-java" ,java-modello-plugins-java)
1152 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1153 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1155 ("java-junit" ,java-junit)
1156 ("java-mockito-1" ,java-mockito-1)
1157 ("java-commons-jxpath" ,java-commons-jxpath)))
1158 (description "Apache Maven is a software project management and comprehension
1159 tool. This package contains the maven core classes managing the whole build
1162 (define-public maven-core
1164 (inherit maven-core-bootstrap)
1166 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1168 `(modify-phases ,phases
1169 (add-before 'build 'modify-metainf
1171 (substitute* "build.xml"
1172 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1174 (add-before 'build 'add-maven-files
1176 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1177 (copy-file "pom.xml"
1178 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1179 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1181 (format #t "version=~a~%
1182 groupId=org.apache.maven~%
1183 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1185 (add-after 'build 'generate-metadata
1187 (define (components file)
1188 (let ((sxml (with-input-from-file file
1189 (lambda _ (xml->sxml (current-input-port)
1190 #:trim-whitespace? #t)))))
1191 ;; Select the list of <component>s inside the <component-set>
1192 ;; and <components>.
1193 ((@ (ice-9 match) match) sxml
1197 ('components x ...))) x))))
1198 (use-modules (sxml simple))
1199 (delete-file "build/classes/META-INF/plexus/components.xml")
1200 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1201 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1202 "--source" "build/classes/META-INF/plexus"
1203 "--output" "build/classes/META-INF/plexus/components.t.xml"
1204 "--classes" "build/classes"
1205 "--descriptors" "build/classes")
1206 ;; Now we merge all other components from hand-written xml
1207 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1208 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1209 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1210 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1211 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1213 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1217 ,@(append generated-xml components-xml
1218 default-bindings-xml
1219 artifact-handlers-xml)))))))
1221 (add-after 'generate-metadata 'rebuild
1223 (invoke "ant" "jar")
1226 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1227 ("java-commons-cli" ,java-commons-cli)
1228 ("java-plexus-cli" ,java-plexus-cli)
1229 ("java-jdom2" ,java-jdom2)
1230 ("java-qdox" ,java-qdox)
1231 ("maven-core-boot" ,maven-core-bootstrap)
1232 ,@(package-native-inputs maven-core-bootstrap)))))
1234 (define-public maven-embedder
1236 (inherit maven-artifact)
1237 (name "maven-embedder")
1239 `(#:jar-name "maven-embedder.jar"
1240 #:source-dir "maven-embedder/src/main/java"
1241 #:test-dir "maven-embedder/src/test"
1242 #:test-exclude (list "**/MavenCliTest.java")
1245 (modify-phases %standard-phases
1246 (add-before 'build 'generate-sisu-named
1248 (mkdir-p "build/classes/META-INF/sisu")
1249 (chmod "sisu.sh" #o755)
1250 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1251 "build/classes/META-INF/sisu/javax.inject.Named")
1253 (add-before 'build 'generate-models
1254 (lambda* (#:key inputs #:allow-other-keys)
1255 (define (modello-single-mode file version mode)
1256 (invoke "java" "org.codehaus.modello.ModelloCli"
1257 file mode "maven-embedder/src/main/java" version
1259 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1260 (modello-single-mode file "1.0.0" "java")
1261 (modello-single-mode file "1.0.0" "xpp3-reader")
1262 (modello-single-mode file "1.0.0" "xpp3-writer"))
1264 (add-before 'check 'fix-test-paths
1266 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1267 (("target/test-classes") "build/test-classes"))
1269 (add-before 'check 'fix-test-compilation
1271 ;; Tests are in the java/ subdir. Other subdirectories contain
1272 ;; additional test plugins, with duplicate classes, so we can't
1273 ;; compile them. Also, they are meant to be built with maven, to
1274 ;; test its build process.
1275 (substitute* "build.xml"
1276 (("srcdir=\"maven-embedder/src/test\"")
1277 "srcdir=\"maven-embedder/src/test/java\""))
1280 `(("maven-core" ,maven-core)
1281 ("maven-artifact" ,maven-artifact)
1282 ("maven-plugin-api" ,maven-plugin-api)
1283 ("maven-builder-support" ,maven-builder-support)
1284 ("maven-model" ,maven-model)
1285 ("maven-model-builder" ,maven-model-builder)
1286 ("maven-settings" ,maven-settings)
1287 ("maven-settings-builder" ,maven-settings-builder)
1288 ("maven-shared-utils" ,maven-shared-utils)
1289 ("java-plexus-classworlds" ,java-plexus-classworlds)
1290 ("java-plexus-util" ,java-plexus-utils)
1291 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1292 ("java-plexus-cipher" ,java-plexus-cipher)
1293 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1294 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1295 ("maven-resolevr-util" ,maven-resolver-util)
1296 ("maven-resolevr-api" ,maven-resolver-api)
1297 ("java-logback-core" ,java-logback-core)
1298 ("java-logback-classic" ,java-logback-classic)
1299 ("java-commons-cli" ,java-commons-cli)
1300 ("java-commons-io" ,java-commons-io)
1301 ("java-commons-lang3" ,java-commons-lang3)
1302 ("java-guava" ,java-guava)
1303 ("java-guice" ,java-guice)
1304 ("java-javax-inject" ,java-javax-inject)
1305 ("java-slf4j-api" ,java-slf4j-api)
1306 ("java-slf4j-simple" ,java-slf4j-simple)))
1308 `(("java-modello-core" ,java-modello-core)
1309 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1310 ("java-sisu-build-api" ,java-sisu-build-api)
1311 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1312 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1313 ("java-cglib" ,java-cglib)
1314 ("java-asm" ,java-asm)
1315 ("java-modello-plugins-java" ,java-modello-plugins-java)
1316 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1317 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1319 ("java-junit" ,java-junit)
1320 ("java-objenesis" ,java-objenesis)
1321 ("java-mockito-1" ,java-mockito-1)
1322 ("java-hamcrest-core" ,java-hamcrest-core)))
1323 (description "Apache Maven is a software project management and comprehension
1324 tool. This package contains a Maven embeddable component, with CLI and
1325 logging support.")))
1327 (define-public maven-compat
1329 (inherit maven-artifact)
1330 (name "maven-compat")
1332 `(#:jar-name "maven-compat.jar"
1333 #:source-dir "src/main/java"
1335 #:test-dir "src/test"
1337 (modify-phases %standard-phases
1338 ;; Tests assume we're in this directory
1339 (add-before 'configure 'chdir
1341 (chdir "maven-compat")
1343 (add-before 'build 'recreate-removed-jar
1345 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1347 (with-directory-excursion "src/test/resources"
1348 (with-output-to-file "artifact-install/artifact-1.0.jar"
1350 (format #t "dummy~%")))
1353 (with-output-to-file file
1355 (format #t "foo~%"))))
1356 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1357 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1358 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1359 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1360 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1361 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1362 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1363 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1364 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1365 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1366 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1367 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1368 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1369 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1370 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1371 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1372 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1373 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1374 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1375 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1376 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1377 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1378 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1379 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1380 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1381 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1382 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1383 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1384 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1385 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1386 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1387 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1388 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1389 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1390 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1391 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1392 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1393 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1394 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1395 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1396 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1397 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1398 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1399 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1400 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1401 (with-directory-excursion "local-repo/snapshot-test/jars"
1404 (with-output-to-file file
1407 (format #t "local"))))
1408 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1409 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1410 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1413 (with-directory-excursion
1414 (string-append "src/test/remote-repo/org/apache/maven/its/"
1416 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1419 (copy-file (string-append letter "-0.1.pom")
1420 (string-append dir "/pom.xml"))
1421 (with-output-to-file (string-append dir "/pom.properties")
1423 (format #t "version=0.1~%")
1424 (format #t "groupId=org.apache.maven.its")
1425 (format #t (string-append "artifactId=" letter))))
1426 (with-output-to-file "META-INF/MANIFEST.MF"
1428 (format #t "Manifest-Version: 1.0~%"))))
1429 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1430 (string-append letter "-0.1.jar") "META-INF")))
1433 (add-before 'build 'generate-models
1434 (lambda* (#:key inputs #:allow-other-keys)
1435 (define (modello-single-mode file version mode)
1436 (invoke "java" "org.codehaus.modello.ModelloCli"
1437 file mode "src/main/java" version
1439 (let ((file "src/main/mdo/profiles.mdo"))
1440 (modello-single-mode file "1.0.0" "java")
1441 (modello-single-mode file "1.0.0" "xpp3-reader")
1442 (modello-single-mode file "1.0.0" "xpp3-writer"))
1443 (let ((file "src/main/mdo/paramdoc.mdo"))
1444 (modello-single-mode file "1.0.0" "java")
1445 (modello-single-mode file "1.0.0" "xpp3-reader")
1446 (modello-single-mode file "1.0.0" "xpp3-writer"))
1448 (add-after 'build 'generate-metadata
1450 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1451 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1452 "--source" "src/main/java"
1453 "--output" "build/classes/META-INF/plexus/components.xml"
1454 "--classes" "build/classes"
1455 "--descriptors" "build/classes/META-INF")
1457 (add-before 'check 'build-tests
1459 (invoke "ant" "compile-tests")
1461 (add-after 'build-tests 'generate-test-metadata
1463 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1465 ":build/test-classes")
1466 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1467 "--source" "src/test/java"
1468 "--output" "build/test-classes/META-INF/plexus/components.xml"
1469 "--classes" "build/test-classes"
1470 "--descriptors" "build/test-classes/META-INF")
1472 (add-after 'generate-metadata 'rebuild
1474 (invoke "ant" "jar")
1477 `(("maven-artifact" ,maven-artifact)
1478 ("maven-repository-metadata" ,maven-repository-metadata)
1479 ("maven-builder-support" ,maven-builder-support)
1480 ("maven-model" ,maven-model)
1481 ("maven-model-builder" ,maven-model-builder)
1482 ("maven-settings" ,maven-settings)
1483 ("maven-settings-builder" ,maven-settings-builder)
1484 ("maven-core" ,maven-core)
1485 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1486 ("maven-wagon-file" ,maven-wagon-file)
1487 ("maven-resolver-api" ,maven-resolver-api)
1488 ("maven-resolver-util" ,maven-resolver-util)
1489 ("maven-resolver-spi" ,maven-resolver-spi)
1490 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1492 `(("java-modello-core" ,java-modello-core)
1493 ("java-plexus-utils" ,java-plexus-utils)
1494 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1495 ("java-plexus-classworlds" ,java-plexus-classworlds)
1496 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1497 ("java-sisu-build-api" ,java-sisu-build-api)
1498 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1499 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1500 ("java-javax-inject" ,java-javax-inject)
1501 ("java-guice" ,java-guice)
1502 ("java-guava" ,java-guava)
1503 ("java-cglib" ,java-cglib)
1504 ("java-asm" ,java-asm)
1505 ("java-modello-plugins-java" ,java-modello-plugins-java)
1506 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1507 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1509 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1510 ("java-commons-cli" ,java-commons-cli)
1511 ("java-plexus-cli" ,java-plexus-cli)
1512 ("java-jdom2" ,java-jdom2)
1513 ("maven-plugin-api" ,maven-plugin-api)
1514 ("java-qdox" ,java-qdox)
1516 ("java-plexus-cipher" ,java-plexus-cipher)
1517 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1518 ("java-jsr250" ,java-jsr250)
1519 ("java-cdi-api" ,java-cdi-api)
1520 ("java-junit" ,java-junit)
1521 ("maven-resolver-impl" ,maven-resolver-impl)
1522 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1523 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1524 ("java-commons-lang3" ,java-commons-lang3)
1525 ("java-aop" ,java-aopalliance)
1526 ("maven-resolver-provider" ,maven-resolver-provider)
1527 ("java-slf4j-api" ,java-slf4j-api)
1528 ("java-slf4j-simple" ,java-slf4j-simple)
1529 ,@(package-inputs java-slf4j-api)))
1530 (description "Apache Maven is a software project management and comprehension
1531 tool. This package contains Maven2 classes maintained as compatibility
1532 layer for plugins that need to keep Maven2 compatibility.")))
1534 (define-public maven
1536 (inherit maven-artifact)
1540 (modify-phases %standard-phases
1542 (lambda* (#:key inputs #:allow-other-keys)
1543 ;; Recreate the configuration for the loader
1544 (with-output-to-file "apache-maven/src/bin/m2.conf"
1546 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1548 (format #t "set maven.conf default ${maven.home}/conf~%")
1550 (format #t "[plexus.core]~%")
1551 (format #t "load ${maven.conf}/logging~%")
1552 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1553 ;; Reference every jar so plexus-classworlds can find them.
1555 (lambda (dependency)
1556 (format #t "load ~a/share/java/*.jar~%"
1557 (assoc-ref inputs dependency)))
1558 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1559 "maven-builder-support" "maven-model" "maven-model-builder"
1560 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1561 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1562 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1563 "maven-resolver-connector-basic" "maven-resolver-provider"
1564 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1565 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1566 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1567 "maven-wagon-http-shared" "maven-wagon-tck-http"
1568 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1569 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1570 "java-javax-inject" "java-plexus-component-annotations"
1571 "java-plexus-utils" "java-plexus-interpolation"
1572 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1573 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1574 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1575 "java-slf4j-simple"))))
1576 (substitute* "apache-maven/src/bin/mvn"
1581 (assoc-ref inputs "java-plexus-classworlds")
1584 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1588 (lambda* (#:key outputs #:allow-other-keys)
1589 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1590 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1591 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1592 (for-each (lambda (file)
1593 (install-file (string-append "apache-maven/src/bin/" file)
1595 (chmod (string-append bin file) #o755))
1596 '("mvn" "mvnDebug" "mvnyjp"))
1597 (install-file "apache-maven/src/bin/m2.conf" bin)
1598 (copy-recursively "apache-maven/src/conf" conf))
1601 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1602 ("maven-artifact" ,maven-artifact)
1603 ("maven-embedder" ,maven-embedder)
1604 ("maven-core" ,maven-core)
1605 ("maven-compat" ,maven-compat)
1606 ("maven-builder-support" ,maven-builder-support)
1607 ("maven-model" ,maven-model)
1608 ("maven-model-builder" ,maven-model-builder)
1609 ("maven-settings" ,maven-settings)
1610 ("maven-settings-builder" ,maven-settings-builder)
1611 ("maven-plugin-api" ,maven-plugin-api)
1612 ("maven-repository-metadata" ,maven-repository-metadata)
1613 ("maven-shared-utils" ,maven-shared-utils)
1614 ("maven-resolver-api" ,maven-resolver-api)
1615 ("maven-resolver-spi" ,maven-resolver-spi)
1616 ("maven-resolver-util" ,maven-resolver-util)
1617 ("maven-resolver-impl" ,maven-resolver-impl)
1618 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1619 ("maven-resolver-provider" ,maven-resolver-provider)
1620 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1621 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1622 ("maven-wagon-file" ,maven-wagon-file)
1623 ("maven-wagon-http" ,maven-wagon-http)
1624 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1625 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
1626 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
1627 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
1628 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
1629 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1630 ("java-guice" ,java-guice)
1631 ("java-aopalliance" ,java-aopalliance)
1632 ("java-cglib" ,java-cglib)
1633 ("java-asm" ,java-asm)
1634 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1635 ("java-javax-inject" ,java-javax-inject)
1636 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1637 ("java-plexus-utils" ,java-plexus-utils)
1638 ("java-plexus-interpolation" ,java-plexus-interpolation)
1639 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1640 ("java-plexus-cipher" ,java-plexus-cipher)
1641 ("java-guava" ,java-guava)
1642 ("java-jansi" ,java-jansi)
1643 ("java-jsr250" ,java-jsr250)
1644 ("java-cdi-api" ,java-cdi-api)
1645 ("java-commons-cli" ,java-commons-cli)
1646 ("java-commons-io" ,java-commons-io)
1647 ("java-commons-lang3" ,java-commons-lang3)
1648 ("java-slf4j-api" ,java-slf4j-api)
1649 ;; TODO: replace with maven-slf4j-provider
1650 ("java-slf4j-simple" ,java-slf4j-simple)))
1652 `(("coreutils" ,coreutils)
1654 (description "Apache Maven is a software project management and comprehension
1655 tool. Based on the concept of a project object model: builds, dependency
1656 management, documentation creation, site publication, and distribution
1657 publication are all controlled from the @file{pom.xml} declarative file. Maven
1658 can be extended by plugins to utilise a number of other development tools for
1659 reporting or the build process.")))