1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
3 ;;; Copyright © 2019 Tobias Geerinckx-Rite <me@tobias.gr>
5 ;;; This file is part of GNU Guix.
7 ;;; GNU Guix is free software; you can redistribute it and/or modify it
8 ;;; under the terms of the GNU General Public License as published by
9 ;;; the Free Software Foundation; either version 3 of the License, or (at
10 ;;; your option) any later version.
12 ;;; GNU Guix is distributed in the hope that it will be useful, but
13 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 ;;; GNU General Public License for more details.
17 ;;; You should have received a copy of the GNU General Public License
18 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 (define-module (gnu packages maven)
21 #:use-module ((guix licenses) #:prefix license:)
22 #:use-module (guix packages)
23 #:use-module (guix download)
24 #:use-module (guix git-download)
25 #:use-module (guix utils)
26 #:use-module (guix build-system ant)
27 #:use-module (gnu packages)
28 #:use-module (gnu packages base)
29 #:use-module (gnu packages compression)
30 #:use-module (gnu packages java)
31 #:use-module (gnu packages web)
32 #:use-module (gnu packages xml))
34 (define-public java-plexus-component-metadata
36 (inherit java-plexus-container-default)
37 (name "java-plexus-component-metadata")
39 `(#:jar-name "plexus-component-metadata.jar"
40 #:source-dir "src/main/java"
44 (modify-phases %standard-phases
45 (add-before 'configure 'chdir
47 (chdir "plexus-component-metadata")
49 (add-before 'build 'copy-resources
51 (copy-recursively "src/main/resources"
55 `(("java-plexus-container-default" ,java-plexus-container-default)
56 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
57 ("java-plexus-utils" ,java-plexus-utils)
58 ("java-plexus-cli" ,java-plexus-cli)
59 ("java-plexus-classworlds" ,java-plexus-classworlds)
60 ("maven-plugin-api" ,maven-plugin-api)
61 ("maven-plugin-annotations" ,maven-plugin-annotations)
62 ("maven-core-bootstrap" ,maven-core-bootstrap)
63 ("maven-model" ,maven-model)
64 ("java-commons-cli" ,java-commons-cli)
65 ("java-qdox" ,java-qdox)
66 ("java-jdom2" ,java-jdom2)
67 ("java-asm" ,java-asm)))
69 `(("java-junit" ,java-junit)
70 ("java-guava" ,java-guava)
71 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
72 (synopsis "Inversion-of-control container for Maven")
73 (description "The Plexus project provides a full software stack for creating
74 and executing software projects. Based on the Plexus container, the
75 applications can utilise component-oriented programming to build modular,
76 reusable components that can easily be assembled and reused. This package
77 provides the Maven plugin generating the component metadata.")))
79 (define-public maven-resolver-api
81 (name "maven-resolver-api")
86 (url "https://github.com/apache/maven-resolver.git")
87 (commit (string-append "maven-resolver-" version))))
88 (file-name (git-file-name name version))
91 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
92 (build-system ant-build-system)
94 `(#:jar-name "maven-resolver-api.jar"
95 #:source-dir "maven-resolver-api/src/main/java"
96 #:test-dir "maven-resolver-api/src/test"))
98 `(("java-asm" ,java-asm)
99 ("java-cglib" ,java-cglib)
100 ("java-hamcrest-core" ,java-hamcrest-core)
101 ("java-junit" ,java-junit)
102 ("java-mockito-1" ,java-mockito-1)
103 ("java-objenesis" ,java-objenesis)))
104 (home-page "https://github.com/apache/maven-resolver")
105 (synopsis "Maven repository system API")
106 (description "This package contains the API for the maven repository system.")
107 (license license:asl2.0)))
109 (define-public maven-resolver-spi
111 (inherit maven-resolver-api)
112 (name "maven-resolver-spi")
114 `(#:jar-name "maven-resolver-spi.jar"
115 #:source-dir "maven-resolver-spi/src/main/java"
116 #:test-dir "maven-resolver-spi/src/test"
119 `(("maven-resolver-api" ,maven-resolver-api)))
120 (synopsis "Maven repository system SPI")
121 (description "This package contains the service provider interface (SPI)
122 for repository system implementations and repository connectors.")))
124 (define-public maven-resolver-test-util
126 (inherit maven-resolver-api)
127 (name "maven-resolver-test-util")
129 `(#:jar-name "maven-resolver-test-util.jar"
130 #:source-dir "maven-resolver-test-util/src/main/java"
131 #:test-dir "maven-resolver-test-util/src/test"
134 `(("maven-resolver-api" ,maven-resolver-api)
135 ("maven-resolver-spi" ,maven-resolver-spi)))
136 (synopsis "Utility classes for testing the maven repository system")
137 (description "This package contains a collection of utility classes to
138 ease testing of the repository system.")))
140 (define-public maven-resolver-util
142 (inherit maven-resolver-api)
143 (name "maven-resolver-util")
145 `(#:jar-name "maven-resolver-util.jar"
146 #:source-dir "maven-resolver-util/src/main/java"
147 #:test-dir "maven-resolver-util/src/test"
150 `(("maven-resolver-api" ,maven-resolver-api)))
152 `(("java-junit" ,java-junit)
153 ("java-hamcrest-core" ,java-hamcrest-core)
154 ("maven-resolver-test-util" ,maven-resolver-test-util)))
155 (synopsis "Utility classes for the maven repository system")
156 (description "This package contains a collection of utility classes to
157 ease usage of the repository system.")))
159 (define-public maven-resolver-connector-basic
161 (inherit maven-resolver-api)
162 (name "maven-resolver-connector-basic")
164 `(#:jar-name "maven-resolver-connector-basic.jar"
165 #:source-dir "maven-resolver-connector-basic/src/main/java"
166 #:test-dir "maven-resolver-connector-basic/src/test"
169 (modify-phases %standard-phases
170 (add-before 'build 'generate-sisu
172 (mkdir-p "build/classes/META-INF/sisu")
173 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
175 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
178 `(("maven-resolver-api" ,maven-resolver-api)
179 ("maven-resolver-spi" ,maven-resolver-spi)
180 ("maven-resolver-util" ,maven-resolver-util)
181 ("java-javax-inject" ,java-javax-inject)
182 ("java-slf4j-api" ,java-slf4j-api)))
184 `(("java-junit" ,java-junit)
185 ("java-hamcrest-core" ,java-hamcrest-core)
186 ("maven-resolver-test-util" ,maven-resolver-test-util)))
187 (synopsis "Maven repository connector implementation")
188 (description "This package contains a repository connector implementation
189 for repositories using URI-based layouts.")))
191 (define-public maven-resolver-impl
193 (inherit maven-resolver-api)
194 (name "maven-resolver-impl")
196 `(#:jar-name "maven-resolver-impl.jar"
197 #:source-dir "maven-resolver-impl/src/main/java"
198 #:test-dir "maven-resolver-impl/src/test"
201 (modify-phases %standard-phases
202 (add-before 'build 'generate-sisu
204 (mkdir-p "build/classes/META-INF/sisu")
205 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
209 ;; Build this list by looking for files containing "@Named"
210 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
211 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
212 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
213 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
214 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
215 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
216 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
217 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
218 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
219 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
220 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
221 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
222 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
223 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
224 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
225 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
226 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
227 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
228 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
229 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
230 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
231 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
232 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
235 `(("maven-resolver-api" ,maven-resolver-api)
236 ("maven-resolver-spi" ,maven-resolver-spi)
237 ("maven-resolver-util" ,maven-resolver-util)
238 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
239 ("java-javax-inject" ,java-javax-inject)
240 ("java-guice" ,java-guice)
241 ("java-guava" ,java-guava)
242 ("java-cglib" ,java-cglib)
243 ("java-asm" ,java-asm)
244 ("jajva-aopalliance" ,java-aopalliance)
245 ("java-slf4j-api" ,java-slf4j-api)))
247 `(("java-junit" ,java-junit)
248 ("java-hamcrest-core" ,java-hamcrest-core)
249 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
251 (define-public maven-resolver-transport-wagon
253 (inherit maven-resolver-api)
254 (name "maven-resolver-transport-wagon")
256 `(#:jar-name "maven-resolver-transport-wagon.jar"
257 #:source-dir "maven-resolver-transport-wagon/src/main/java"
258 #:test-dir "maven-resolver-transport-wagon/src/test"
261 (modify-phases %standard-phases
262 (add-before 'build 'generate-sisu
264 (mkdir-p "build/classes/META-INF/sisu")
265 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
267 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
269 (add-before 'build 'generate-components.xml
271 (mkdir-p "build/classes/META-INF/plexus")
272 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
276 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
280 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
281 <role-hint>plexus</role-hint>
282 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
284 <isolated-realm>false</isolated-realm>
287 <role>org.codehaus.plexus.PlexusContainer</role>
289 <field-name>container</field-name>
294 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
295 <role-hint>plexus</role-hint>
296 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
298 <isolated-realm>false</isolated-realm>
301 <role>org.codehaus.plexus.PlexusContainer</role>
303 <field-name>container</field-name>
308 </component-set>\n"))))
311 `(("maven-resolver-api" ,maven-resolver-api)
312 ("maven-resolver-spi" ,maven-resolver-spi)
313 ("maven-resolver-util" ,maven-resolver-util)
314 ("java-javax-inject" ,java-javax-inject)
315 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
316 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
317 ("java-plexus-classworld" ,java-plexus-classworlds)
318 ("java-plexus-plexus-util" ,java-plexus-utils)
319 ("java-slf4j-api" ,java-slf4j-api)
320 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
321 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
323 `(("java-junit" ,java-junit)
324 ("java-hamcrest-core" ,java-hamcrest-core)
325 ("maven-resolver-test-util" ,maven-resolver-test-util)
326 ("java-guava" ,java-guava)
327 ("java-cglib" ,java-cglib)
328 ("java-asm" ,java-asm)
329 ("java-aopalliance" ,java-aopalliance)
330 ("java-guice" ,java-guice)))
331 (synopsis "Transport implementation for Maven")
332 (description "This package contains a transport implementation based on
333 Maven Wagon, for use in Maven.")))
335 (define-public maven-shared-utils
337 (name "maven-shared-utils")
341 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
342 "maven-shared-utils-" version "-source-release.zip"))
345 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
346 (build-system ant-build-system)
348 `(#:jar-name "maven-shared-utils.jar"
349 #:source-dir "src/main/java"
352 (modify-phases %standard-phases
353 (add-before 'check 'remove-cyclic-dep
356 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
359 `(("java-jansi" ,java-jansi)
360 ("java-commons-io" ,java-commons-io)
361 ("java-jsr305" ,java-jsr305)
362 ("java-plexus-container-default" ,java-plexus-container-default)))
365 ("java-junit" ,java-junit)
366 ("java-hamcrest-core" ,java-hamcrest-core)
367 ("java-commons-lang3" ,java-commons-lang3)))
368 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
369 (synopsis "Plexus-util replacement for maven")
370 (description "This project aims to be a functional replacement for
371 plexus-utils in Maven. It is not a 100% API compatible replacement but a
372 replacement with improvements.")
373 (license license:asl2.0)))
375 (define-public maven-plugin-annotations
377 (name "maven-plugin-annotations")
381 (uri (string-append "https://archive.apache.org/dist/maven/"
382 "plugin-tools/maven-plugin-tools-" version
383 "-source-release.zip"))
384 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
385 (build-system ant-build-system)
387 `(#:jar-name "maven-plugin-annotations.jar"
388 #:source-dir "maven-plugin-annotations/src/main/java"
391 `(("maven-artifact" ,maven-artifact)))
394 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
395 (synopsis "Java 5 annotations to use in Mojos")
396 (description "This package contains Java 5 annotations for use in Mojos.")
397 (license license:asl2.0)))
399 (define-public maven-wagon-provider-api
401 (name "maven-wagon-provider-api")
405 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
406 "wagon-" version "-source-release.zip"))
407 (sha256 (base32 "0r07j6xdzdnrvqnv8ida7dx1m05pznh5qgmcfcfpyvg9nxbj3l1n"))))
408 (build-system ant-build-system)
410 `(#:jar-name "maven-wagon-provider-api.jar"
411 #:source-dir "wagon-provider-api/src/main/java"
412 #:test-dir "wagon-provider-api/src/test"))
414 `(("java-plexus-utils" ,java-plexus-utils)))
417 ("java-junit" ,java-junit)
418 ("java-easymock" ,java-easymock)))
419 (home-page "https://maven.apache.org/wagon")
420 (synopsis "Transport abstraction for Maven")
421 (description "Maven Wagon is a transport abstraction that is used in Maven's
422 artifact and repository handling code.")
423 (license license:asl2.0)))
425 (define-public maven-wagon-provider-test
427 (inherit maven-wagon-provider-api)
428 (name "maven-wagon-provider-test")
430 `(#:jar-name "maven-wagon-provider-test.jar"
431 #:source-dir "wagon-provider-test/src/main/java"
432 #:tests? #f; no tests
435 `(("java-plexus-utils" ,java-plexus-utils)
436 ("java-plexus-container-default" ,java-plexus-container-default)
437 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
438 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
439 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
440 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
441 ("java-slf4j-api" ,java-slf4j-api)
442 ("java-javaee-servletapi" ,java-javaee-servletapi)
443 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
444 (synopsis "Test classes from maven-wagon")
445 (description "Maven Wagon is a transport abstraction that is used in Maven's
446 artifact and repository handling code. This package contains common test
447 classes used in multiple maven-wagon components.")))
449 (define-public maven-wagon-file
451 (inherit maven-wagon-provider-api)
452 (name "maven-wagon-file")
454 `(#:jar-name "maven-wagon-file.jar"
455 #:source-dir "wagon-providers/wagon-file/src/main/java"
456 #:test-dir "wagon-providers/wagon-file/src/test"
459 (modify-phases %standard-phases
460 (add-before 'check 'fix-paths
462 ;; Tests assume they are run by maven, which copies test resources
463 ;; to target. Our ant-build-system does the same, but with the
465 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
466 (("target") "build"))
468 (add-after 'build 'generate-metadata
470 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
471 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
472 "--source" "wagon-providers/wagon-file/src/main/java"
473 "--output" "build/classes/META-INF/plexus/components.xml"
474 "--classes" "build/classes"
475 "--descriptors" "build/classes/META-INF")
477 (add-after 'generate-metadata 'rebuild
482 `(("java-plexus-utils" ,java-plexus-utils)
483 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
485 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
486 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
487 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
488 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
489 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
490 ("java-plexus-classworlds" ,java-plexus-classworlds)
491 ("java-guava" ,java-guava)
492 ("java-guice" ,java-guice)
493 ("java-javax-inject" ,java-javax-inject)
494 ("java-cglib" ,java-cglib)
495 ("java-slf4j-api" ,java-slf4j-api)
496 ("java-plexus-utils" ,java-plexus-utils)
497 ("java-plexus-cli" ,java-plexus-cli)
498 ("maven-plugin-api" ,maven-plugin-api)
499 ("maven-plugin-annotations" ,maven-plugin-annotations)
500 ("maven-core" ,maven-core)
501 ("maven-model" ,maven-model)
502 ("java-commons-cli" ,java-commons-cli)
503 ("java-qdox" ,java-qdox)
504 ("java-jdom2" ,java-jdom2)
505 ("java-asm" ,java-asm)
506 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
507 ,@(package-native-inputs maven-wagon-provider-api)))
508 (synopsis "Wagon provider that gets and puts artifacts using the file system")
509 (description "Maven Wagon is a transport abstraction that is used in Maven's
510 artifact and repository handling code. It uses providers, that are tools to
511 manage artifacts and deployment. This package contains the file provider which
512 gets and puts artifacts using the file system.")))
514 (define-public maven-wagon-tck-http
516 (inherit maven-wagon-provider-api)
517 (name "maven-wagon-tck-http")
519 `(#:jar-name "maven-wagon-tck-http.jar"
520 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
521 #:tests? #f; no tests
524 `(("java-plexus-util" ,java-plexus-utils)
525 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
526 ("java-tomcat" ,java-tomcat)
527 ("java-slf4j-api" ,java-slf4j-api)
528 ("java-commons-codec" ,java-commons-codec)
529 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
530 ("java-plexus-classworlds" ,java-plexus-classworlds)
531 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
532 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
533 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
534 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
535 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
536 (synopsis "Wagon HTTP Test Compatibility Kit")
537 (description "Maven Wagon is a transport abstraction that is used in Maven's
538 artifact and repository handling code. This package contains the HTTP
539 Test Compatibility Kit.")))
541 (define-public maven-wagon-http-shared
543 (inherit maven-wagon-provider-api)
544 (name "maven-wagon-http-shared")
546 `(#:jar-name "maven-wagon-http-shared.jar"
547 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
548 #:test-dir "wagon-providers/wagon-http-shared/src/test"
551 (modify-phases %standard-phases
552 (add-after 'build 'generate-metadata
554 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
555 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
556 "--source" "wagon-providers/wagon-http-shared/src/main/java"
557 "--output" "build/classes/META-INF/plexus/components.xml"
558 "--classes" "build/classes"
559 "--descriptors" "build/classes/META-INF")
561 (add-after 'generate-metadata 'rebuild
566 `(("java-plexus-utils" ,java-plexus-utils)
567 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
568 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
569 ("java-commons-io" ,java-commons-io)
570 ("java-jsoup" ,java-jsoup)
571 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
573 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
574 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
575 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
576 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
577 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
578 ("java-plexus-classworlds" ,java-plexus-classworlds)
579 ("java-guava" ,java-guava)
580 ("java-guice" ,java-guice)
581 ("java-javax-inject" ,java-javax-inject)
582 ("java-cglib" ,java-cglib)
583 ("java-slf4j-api" ,java-slf4j-api)
584 ("java-plexus-utils" ,java-plexus-utils)
585 ("java-plexus-cli" ,java-plexus-cli)
586 ("maven-plugin-api" ,maven-plugin-api)
587 ("maven-plugin-annotations" ,maven-plugin-annotations)
588 ("maven-core" ,maven-core)
589 ("maven-model" ,maven-model)
590 ("java-commons-cli" ,java-commons-cli)
591 ("java-qdox" ,java-qdox)
592 ("java-jdom2" ,java-jdom2)
593 ("java-asm" ,java-asm)
594 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
595 ,@(package-native-inputs maven-wagon-provider-api)))
596 (synopsis "Shared Library for wagon providers supporting HTTP.")
597 (description "Maven Wagon is a transport abstraction that is used in Maven's
598 artifact and repository handling code. It uses providers, that are tools to
599 manage artifacts and deployment. This package contains a shared library for
600 wagon providers supporting HTTP.")))
602 (define-public maven-wagon-http
604 (inherit maven-wagon-provider-api)
605 (name "maven-wagon-http")
607 `(#:jar-name "maven-wagon-http.jar"
608 #:source-dir "wagon-providers/wagon-http/src/main/java"
609 #:test-dir "wagon-providers/wagon-http/src/test"
612 ;; FIXME: javax.net.ssl.SSLHandshakeException:
613 ;; sun.security.validator.ValidatorException:
614 ;; PKIX path building failed:
615 ;; sun.security.provider.certpath.SunCertPathBuilderException:
616 ;; unable to find valid certification path to requested target
617 "**/HttpsWagonPreemptiveTest.java"
618 "**/HttpsWagonTest.java"
623 (modify-phases %standard-phases
624 (add-before 'build 'copy-resources
626 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
627 "build/classes/META-INF/plexus")
629 (add-before 'check 'fix-resource-path
631 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
632 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
633 (("src/test") "wagon-providers/wagon-http/src/test"))
636 `(("java-plexus-utils" ,java-plexus-utils)
637 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
638 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
639 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
640 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
641 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
643 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
644 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
645 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
646 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
647 ("java-plexus-container-default" ,java-plexus-container-default)
648 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
649 ("java-plexus-classworlds" ,java-plexus-classworlds)
650 ("java-guava" ,java-guava)
651 ("java-guice" ,java-guice)
652 ("java-inject" ,java-javax-inject)
653 ("java-cglib" ,java-cglib)
654 ("java-slf4j-api" ,java-slf4j-api)
655 ("java-plexus-utils" ,java-plexus-utils)
656 ("java-plexus-cli" ,java-plexus-cli)
657 ("maven-plugin-api" ,maven-plugin-api)
658 ("maven-plugin-annotations" ,maven-plugin-annotations)
659 ("maven-core" ,maven-core)
660 ("maven-model" ,maven-model)
661 ("java-commons-cli" ,java-commons-cli)
662 ("java-qdox" ,java-qdox)
663 ("java-jdom2" ,java-jdom2)
664 ("java-asm" ,java-asm)
665 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
666 ("java-tomcat" ,java-tomcat)
667 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
668 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
669 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
670 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
671 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
672 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
673 ("java-hamcrest-core" ,java-hamcrest-core)
674 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
675 ("java-commons-codec" ,java-commons-codec)
676 ("java-commons-io" ,java-commons-io)
677 ("java-jsoup" ,java-jsoup)
678 ("java-slf4j-simple" ,java-slf4j-simple)
679 ,@(package-native-inputs maven-wagon-provider-api)))
680 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
681 (description "Maven Wagon is a transport abstraction that is used in Maven's
682 artifact and repository handling code. It uses providers, that are tools to
683 manage artifacts and deployment. This package contains a Wagon provider that
684 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
686 (define-public maven-artifact
688 (name "maven-artifact")
692 (uri (string-append "https://archive.apache.org/dist/maven/"
693 "maven-3/" version "/source/"
694 "apache-maven-" version "-src.tar.gz"))
695 (sha256 (base32 "17jrqfqwn569jgnv8m4pqc27csssb0rf6mznpq61l5bnbd6hl75k"))
696 (modules '((guix build utils)))
699 (for-each delete-file (find-files "." "\\.jar$"))
702 (search-patches "maven-generate-component-xml.patch"
703 "maven-generate-javax-inject-named.patch"))))
704 (build-system ant-build-system)
706 `(#:jar-name "maven-artifact.jar"
707 #:source-dir "maven-artifact/src/main/java"
708 #:test-dir "maven-artifact/src/test"
709 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"))
711 `(("java-plexus-utils" ,java-plexus-utils)
712 ("java-commons-lang3" ,java-commons-lang3)))
714 `(("java-junit" ,java-junit)))
715 (home-page "https://maven.apache.org/")
716 (synopsis "Build system")
717 (description "Apache Maven is a software project management and comprehension
718 tool. This package contains the Maven Artifact classes, providing the
719 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
720 jar file is executable and provides a little tool to display how Maven parses
721 and compares versions:")
722 (license license:asl2.0)))
724 (define-public maven-model
726 (inherit maven-artifact)
729 `(#:jar-name "maven-model.jar"
730 #:source-dir "maven-model/src/main/java"
731 #:test-dir "maven-model/src/test"
734 (modify-phases %standard-phases
735 (add-before 'build 'generate-models
736 (lambda* (#:key inputs #:allow-other-keys)
737 (define (modello-single-mode file version mode)
738 (invoke "java" "org.codehaus.modello.ModelloCli"
739 file mode "maven-model/src/main/java" version
741 (let ((file "maven-model/src/main/mdo/maven.mdo"))
742 (modello-single-mode file "4.0.0" "java")
743 (modello-single-mode file "4.0.0" "xpp3-reader")
744 (modello-single-mode file "4.0.0" "xpp3-writer")
745 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
748 `(("java-commons-lang3" ,java-commons-lang3)
749 ("java-plexus-utils" ,java-plexus-utils)))
751 `(("java-modello-core" ,java-modello-core)
753 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
754 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
755 ("java-guice" ,java-guice)
756 ("java-cglib" ,java-cglib)
757 ("java-asm" ,java-asm)
758 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
759 ("java-javax-inject" ,java-javax-inject)
760 ("java-plexus-classworlds" ,java-plexus-classworlds)
761 ("java-guava" ,java-guava)
762 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
763 ("java-sisu-build-api" ,java-sisu-build-api)
765 ("java-modello-plugins-java" ,java-modello-plugins-java)
766 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
767 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
769 ("java-junit" ,java-junit)))
770 (description "Apache Maven is a software project management and comprehension
771 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
772 so really just plain Java objects.")))
774 (define-public maven-builder-support
776 (inherit maven-artifact)
777 (name "maven-builder-support")
779 `(#:jar-name "maven-builder-support.jar"
780 #:source-dir "maven-builder-support/src/main/java"
782 #:test-dir "maven-builder-support/src/test"
784 (modify-phases %standard-phases
785 (add-before 'check 'fix-paths
787 (with-directory-excursion "maven-builder-support/src/test/java"
789 '("org/apache/maven/building/FileSourceTest.java"
790 "org/apache/maven/building/UrlSourceTest.java")
791 (("target/test-classes") "maven-builder-support/src/test/resources")))
794 `(("java-plexus-utils" ,java-plexus-utils)
795 ("java-commons-lang3" ,java-commons-lang3)))
797 `(("java-junit" ,java-junit)
798 ("java-hamcrest-core" ,java-hamcrest-core)))
799 (description "Apache Maven is a software project management and comprehension
800 tool. This package contains a support library for descriptor builders (model,
801 setting, toolchains)")))
803 (define-public maven-settings
805 (inherit maven-artifact)
806 (name "maven-settings")
808 `(#:jar-name "maven-settings.jar"
809 #:source-dir "maven-settings/src/main/java"
811 #:tests? #f; no tests
813 (modify-phases %standard-phases
814 (add-before 'build 'generate-models
815 (lambda* (#:key inputs #:allow-other-keys)
816 (define (modello-single-mode file version mode)
817 (invoke "java" "org.codehaus.modello.ModelloCli"
818 file mode "maven-settings/src/main/java" version
820 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
821 (modello-single-mode file "1.1.0" "java")
822 (modello-single-mode file "1.1.0" "xpp3-reader")
823 (modello-single-mode file "1.1.0" "xpp3-writer"))
827 `(("java-modello-core" ,java-modello-core)
829 ;("container" ,java-plexus-container-default)
830 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
831 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
832 ("java-guice" ,java-guice)
833 ("java-cglib" ,java-cglib)
834 ("java-asm" ,java-asm)
835 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
836 ("java-javax-inject" ,java-javax-inject)
837 ("java-plexus-classworlds" ,java-plexus-classworlds)
838 ("java-plexus-utils" ,java-plexus-utils)
839 ("java-guava" ,java-guava)
840 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
841 ("java-sisu-build-api" ,java-sisu-build-api)
843 ("java-modello-plugins-java" ,java-modello-plugins-java)
844 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
845 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
846 (description "Apache Maven is a software project management and comprehension
847 tool. This package contains strictly the model for Maven settings, that is
848 simply plain java objects.")))
850 (define-public maven-settings-builder
852 (inherit maven-artifact)
853 (name "maven-settings-builder")
855 `(#:jar-name "maven-settings-builder.jar"
856 #:source-dir "maven-settings-builder/src/main/java"
858 #:test-dir "maven-settings-builder/src/test"
860 (modify-phases %standard-phases
861 (add-before 'build 'generate-components.xml
863 (mkdir-p "build/classes/META-INF/plexus")
864 (chmod "components.sh" #o755)
865 (invoke "./components.sh" "maven-settings-builder/src/main/java"
866 "build/classes/META-INF/plexus/components.xml")
869 `(("java-plexus-utils" ,java-plexus-utils)
870 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
871 ("java-plexus-interpolation" ,java-plexus-interpolation)
872 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
873 ("maven-builder-support" ,maven-builder-support)
874 ("maven-settings" ,maven-settings)
875 ("java-commons-lang3" ,java-commons-lang3)))
877 `(("java-junit" ,java-junit)))
878 (description "Apache Maven is a software project management and comprehension
879 tool. This package contains the effective model builder, with profile activation,
880 inheritance, interpolation, @dots{}")))
882 (define-public maven-model-builder
884 (inherit maven-artifact)
885 (name "maven-model-builder")
887 `(#:jar-name "maven-model-builder.jar"
888 #:source-dir "maven-model-builder/src/main/java"
890 #:test-dir "maven-model-builder/src/test"
892 (modify-phases %standard-phases
893 (add-before 'build 'copy-resources
895 (copy-recursively "maven-model-builder/src/main/resources"
898 (add-before 'build 'generate-components.xml
900 (mkdir-p "build/classes/META-INF/plexus")
901 (chmod "components.sh" #o755)
902 (invoke "./components.sh" "maven-model-builder/src/main/java"
903 "build/classes/META-INF/plexus/components.xml")
905 (add-before 'check 'fix-paths
907 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
908 (("src/test") "maven-model-builder/src/test"))
911 `(("model" ,maven-model)
912 ("artifact" ,maven-artifact)
913 ("support" ,maven-builder-support)
914 ("annotations" ,java-plexus-component-annotations)
915 ("utils" ,java-plexus-utils)
916 ("interpolation" ,java-plexus-interpolation)
917 ("lang3" ,java-commons-lang3)
918 ("guava" ,java-guava)))
920 `(("java-junit" ,java-junit)
921 ("java-hamcrest-core" ,java-hamcrest-core)
922 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
923 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
924 ("guice" ,java-guice)
925 ("java-cglib" ,java-cglib)
926 ("java-asm" ,java-asm)
927 ("sisu-inject" ,java-eclipse-sisu-inject)
928 ("javax-inject" ,java-javax-inject)
929 ("java-xmlunit" ,java-xmlunit)
930 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
931 ("xbean" ,java-geronimo-xbean-reflect)
932 ("classworlds" ,java-plexus-classworlds)))
933 (description "Apache Maven is a software project management and comprehension
934 tool. This package contains the effective model builder, with profile activation,
935 inheritance, interpolation, @dots{}")))
937 (define-public maven-repository-metadata
939 (inherit maven-artifact)
940 (name "maven-repository-metadata")
942 `(#:jar-name "maven-repository-metadata.jar"
943 #:source-dir "maven-repository-metadata/src/main/java"
945 #:tests? #f; no tests
947 (modify-phases %standard-phases
948 (add-before 'build 'generate-models
949 (lambda* (#:key inputs #:allow-other-keys)
950 (define (modello-single-mode file version mode)
951 (invoke "java" "org.codehaus.modello.ModelloCli"
952 file mode "maven-repository-metadata/src/main/java" version
954 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
955 (modello-single-mode file "1.1.0" "java")
956 (modello-single-mode file "1.1.0" "xpp3-reader")
957 (modello-single-mode file "1.1.0" "xpp3-writer"))
961 `(("modello" ,java-modello-core)
963 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
964 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
965 ("java-guice" ,java-guice)
966 ("java-cglib" ,java-cglib)
967 ("java-asm" ,java-asm)
968 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
969 ("java-javax-inject" ,java-javax-inject)
970 ("java-plexus-utils" ,java-plexus-utils)
971 ("java-plexus-classworlds" ,java-plexus-classworlds)
972 ("java-guava" ,java-guava)
973 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
974 ("java-sisu-build-api" ,java-sisu-build-api)
976 ("java-modello-plugins-java" ,java-modello-plugins-java)
977 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
978 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
979 (description "Apache Maven is a software project management and comprehension
980 tool. This package contains strictly the model for Maven Repository Metadata,
981 so really just plain objects.")))
983 (define-public maven-resolver-provider
985 (inherit maven-artifact)
986 (name "maven-resolver-provider")
988 `(#:jar-name "maven-resolver-provider.jar"
989 #:source-dir "maven-resolver-provider/src/main/java"
990 #:test-dir "maven-resolver-provider/src/test"
992 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
994 (modify-phases %standard-phases
995 (add-before 'build 'generate-sisu-named
997 (mkdir-p "build/classes/META-INF/sisu")
998 (chmod "./sisu.sh" #o755)
999 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1000 "build/classes/META-INF/sisu/javax.inject.Named")
1003 `(("maven-resolver-spi" ,maven-resolver-spi)
1004 ("maven-resolver-api" ,maven-resolver-api)
1005 ("maven-resolver-impl" ,maven-resolver-impl)
1006 ("maven-resolver-util" ,maven-resolver-util)
1007 ("maven-model" ,maven-model)
1008 ("maven-model-builder" ,maven-model-builder)
1009 ("maven-builder-support" ,maven-builder-support)
1010 ("maven-repository-metadata" ,maven-repository-metadata)
1011 ("java-plexus-utils" ,java-plexus-utils)
1012 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1013 ("java-commons-lang3" ,java-commons-lang3)
1014 ("java-guice" ,java-guice)
1015 ("java-guava" ,java-guava)
1016 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1017 ("java-javax-inject" ,java-javax-inject)))))
1019 (define-public maven-plugin-api
1021 (inherit maven-artifact)
1022 (name "maven-plugin-api")
1024 `(#:jar-name "maven-plugin-api.jar"
1025 #:source-dir "maven-plugin-api/src/main/java"
1027 #:test-dir "maven-plugin-api/src/test"
1029 (modify-phases %standard-phases
1030 (add-before 'build 'generate-models
1031 (lambda* (#:key inputs #:allow-other-keys)
1032 (define (modello-single-mode file version mode)
1033 (invoke "java" "org.codehaus.modello.ModelloCli"
1034 file mode "maven-plugin-api/src/main/java" version
1036 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1037 (modello-single-mode file "1.0.0" "java")
1038 (modello-single-mode file "1.0.0" "xpp3-reader")
1039 (modello-single-mode file "1.0.0" "xpp3-writer"))
1042 `(("maven-artifact" ,maven-artifact)
1043 ("maven-model" ,maven-model)
1044 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1045 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1046 ("guice" ,java-guice)
1047 ("java-cglib" ,java-cglib)
1048 ("java-asm" ,java-asm)
1049 ("sisu-inject" ,java-eclipse-sisu-inject)
1050 ("javax-inject" ,java-javax-inject)
1051 ("utils" ,java-plexus-utils)))
1053 `(("modello" ,java-modello-core)
1055 ("classworlds" ,java-plexus-classworlds)
1056 ("guava" ,java-guava)
1057 ("xbean" ,java-geronimo-xbean-reflect)
1058 ("build-api" ,java-sisu-build-api)
1060 ("java" ,java-modello-plugins-java)
1061 ("xml" ,java-modello-plugins-xml)
1062 ("xpp3" ,java-modello-plugins-xpp3)
1064 ("java-junit" ,java-junit)))
1065 (description "Apache Maven is a software project management and comprehension
1066 tool. This package contains strictly the API for plugins -- composed of goals
1067 implemented by Mojos -- development.
1069 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1070 generally generated from plugin sources using maven-plugin-plugin.")))
1072 (define maven-core-bootstrap
1074 (inherit maven-artifact)
1077 `(#:jar-name "maven-core.jar"
1078 #:source-dir "src/main/java"
1080 ;; Tests need maven-compat, which requires maven-core
1083 (modify-phases %standard-phases
1084 (add-before 'configure 'chdir
1086 ;; Required for generating components.xml in maven-core
1087 (chdir "maven-core")
1089 (add-before 'build 'copy-resources
1091 (mkdir-p "build/classes/")
1092 (copy-recursively "src/main/resources" "build/classes")
1094 (add-after 'copy-resources 'fill-properties
1096 ;; This file controls the output of some mvn subcommands, such as
1098 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1099 (("\\$\\{buildNumber\\}") "guix_build")
1100 (("\\$\\{timestamp\\}") "0")
1101 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1102 (("\\$\\{distributionId\\}") "apache-maven")
1103 (("\\$\\{distributionShortName\\}") "Maven")
1104 (("\\$\\{distributionName\\}") "Apache Maven"))
1106 (add-before 'build 'generate-sisu-named
1108 (mkdir-p "build/classes/META-INF/sisu")
1109 (chmod "../sisu.sh" #o755)
1110 (invoke "../sisu.sh" "src/main/java"
1111 "build/classes/META-INF/sisu/javax.inject.Named")
1113 (add-before 'build 'generate-models
1114 (lambda* (#:key inputs #:allow-other-keys)
1115 (define (modello-single-mode file version mode)
1116 (invoke "java" "org.codehaus.modello.ModelloCli"
1117 file mode "src/main/java" version
1119 (let ((file "src/main/mdo/toolchains.mdo"))
1120 (modello-single-mode file "1.1.0" "java")
1121 (modello-single-mode file "1.1.0" "xpp3-reader")
1122 (modello-single-mode file "1.1.0" "xpp3-writer"))
1125 `(("maven-artifact" ,maven-artifact)
1126 ("maven-resolver-provider" ,maven-resolver-provider)
1127 ("maven-builder-support" ,maven-builder-support)
1128 ("maven-model" ,maven-model)
1129 ("maven-model-builder" ,maven-model-builder)
1130 ("maven-settings" ,maven-settings)
1131 ("maven-settings-builder" ,maven-settings-builder)
1132 ("maven-plugin-api" ,maven-plugin-api)
1133 ("maven-repository-metadata" ,maven-repository-metadata)
1134 ("maven-shared-utils" ,maven-shared-utils)
1135 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1136 ("java-plexus-utils" ,java-plexus-utils)
1137 ("java-commons-lang3" ,java-commons-lang3)
1138 ("java-guava" ,java-guava)
1139 ("java-guice" ,java-guice)
1140 ("maven-resolver-api" ,maven-resolver-api)
1141 ("maven-resolver-spi" ,maven-resolver-spi)
1142 ("maven-resolver-util" ,maven-resolver-util)
1143 ("maven-resolver-impl" ,maven-resolver-impl)
1144 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1145 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1146 ("java-javax-inject" ,java-javax-inject)
1147 ("java-plexus-classworld" ,java-plexus-classworlds)))
1149 `(("java-modello-core" ,java-modello-core)
1150 ("java-cglib" ,java-cglib)
1151 ("java-asm" ,java-asm)
1152 ("java-plexus-classworlds" ,java-plexus-classworlds)
1153 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1154 ("java-sisu-build-api" ,java-sisu-build-api)
1155 ("java-modello-plugins-java" ,java-modello-plugins-java)
1156 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1157 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1159 ("java-junit" ,java-junit)
1160 ("java-mockito-1" ,java-mockito-1)
1161 ("java-commons-jxpath" ,java-commons-jxpath)))
1162 (description "Apache Maven is a software project management and comprehension
1163 tool. This package contains the maven core classes managing the whole build
1166 (define-public maven-core
1168 (inherit maven-core-bootstrap)
1170 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1172 `(modify-phases ,phases
1173 (add-before 'build 'modify-metainf
1175 (substitute* "build.xml"
1176 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1178 (add-before 'build 'add-maven-files
1180 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1181 (copy-file "pom.xml"
1182 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1183 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1185 (format #t "version=~a~%
1186 groupId=org.apache.maven~%
1187 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1189 (add-after 'build 'generate-metadata
1191 (define (components file)
1192 (let ((sxml (with-input-from-file file
1193 (lambda _ (xml->sxml (current-input-port)
1194 #:trim-whitespace? #t)))))
1195 ;; Select the list of <component>s inside the <component-set>
1196 ;; and <components>.
1197 ((@ (ice-9 match) match) sxml
1201 ('components x ...))) x))))
1202 (use-modules (sxml simple))
1203 (delete-file "build/classes/META-INF/plexus/components.xml")
1204 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1205 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1206 "--source" "build/classes/META-INF/plexus"
1207 "--output" "build/classes/META-INF/plexus/components.t.xml"
1208 "--classes" "build/classes"
1209 "--descriptors" "build/classes")
1210 ;; Now we merge all other components from hand-written xml
1211 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1212 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1213 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1214 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1215 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1217 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1221 ,@(append generated-xml components-xml
1222 default-bindings-xml
1223 artifact-handlers-xml)))))))
1225 (add-after 'generate-metadata 'rebuild
1227 (invoke "ant" "jar")
1230 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1231 ("java-commons-cli" ,java-commons-cli)
1232 ("java-plexus-cli" ,java-plexus-cli)
1233 ("java-jdom2" ,java-jdom2)
1234 ("java-qdox" ,java-qdox)
1235 ("maven-core-boot" ,maven-core-bootstrap)
1236 ,@(package-native-inputs maven-core-bootstrap)))))
1238 (define-public maven-embedder
1240 (inherit maven-artifact)
1241 (name "maven-embedder")
1243 `(#:jar-name "maven-embedder.jar"
1244 #:source-dir "maven-embedder/src/main/java"
1245 #:test-dir "maven-embedder/src/test"
1246 #:test-exclude (list "**/MavenCliTest.java")
1249 (modify-phases %standard-phases
1250 (add-before 'build 'generate-sisu-named
1252 (mkdir-p "build/classes/META-INF/sisu")
1253 (chmod "sisu.sh" #o755)
1254 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1255 "build/classes/META-INF/sisu/javax.inject.Named")
1257 (add-before 'build 'generate-models
1258 (lambda* (#:key inputs #:allow-other-keys)
1259 (define (modello-single-mode file version mode)
1260 (invoke "java" "org.codehaus.modello.ModelloCli"
1261 file mode "maven-embedder/src/main/java" version
1263 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1264 (modello-single-mode file "1.0.0" "java")
1265 (modello-single-mode file "1.0.0" "xpp3-reader")
1266 (modello-single-mode file "1.0.0" "xpp3-writer"))
1268 (add-before 'check 'fix-test-paths
1270 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1271 (("target/test-classes") "build/test-classes"))
1273 (add-before 'check 'fix-test-compilation
1275 ;; Tests are in the java/ subdir. Other subdirectories contain
1276 ;; additional test plugins, with duplicate classes, so we can't
1277 ;; compile them. Also, they are meant to be built with maven, to
1278 ;; test its build process.
1279 (substitute* "build.xml"
1280 (("srcdir=\"maven-embedder/src/test\"")
1281 "srcdir=\"maven-embedder/src/test/java\""))
1284 `(("maven-core" ,maven-core)
1285 ("maven-artifact" ,maven-artifact)
1286 ("maven-plugin-api" ,maven-plugin-api)
1287 ("maven-builder-support" ,maven-builder-support)
1288 ("maven-model" ,maven-model)
1289 ("maven-model-builder" ,maven-model-builder)
1290 ("maven-settings" ,maven-settings)
1291 ("maven-settings-builder" ,maven-settings-builder)
1292 ("maven-shared-utils" ,maven-shared-utils)
1293 ("java-plexus-classworlds" ,java-plexus-classworlds)
1294 ("java-plexus-util" ,java-plexus-utils)
1295 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1296 ("java-plexus-cipher" ,java-plexus-cipher)
1297 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1298 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1299 ("maven-resolevr-util" ,maven-resolver-util)
1300 ("maven-resolevr-api" ,maven-resolver-api)
1301 ("java-logback-core" ,java-logback-core)
1302 ("java-logback-classic" ,java-logback-classic)
1303 ("java-commons-cli" ,java-commons-cli)
1304 ("java-commons-io" ,java-commons-io)
1305 ("java-commons-lang3" ,java-commons-lang3)
1306 ("java-guava" ,java-guava)
1307 ("java-guice" ,java-guice)
1308 ("java-javax-inject" ,java-javax-inject)
1309 ("java-slf4j-api" ,java-slf4j-api)
1310 ("java-slf4j-simple" ,java-slf4j-simple)))
1312 `(("java-modello-core" ,java-modello-core)
1313 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1314 ("java-sisu-build-api" ,java-sisu-build-api)
1315 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1316 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1317 ("java-cglib" ,java-cglib)
1318 ("java-asm" ,java-asm)
1319 ("java-modello-plugins-java" ,java-modello-plugins-java)
1320 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1321 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1323 ("java-junit" ,java-junit)
1324 ("java-objenesis" ,java-objenesis)
1325 ("java-mockito-1" ,java-mockito-1)
1326 ("java-hamcrest-core" ,java-hamcrest-core)))
1327 (description "Apache Maven is a software project management and comprehension
1328 tool. This package contains a Maven embeddable component, with CLI and
1329 logging support.")))
1331 (define-public maven-compat
1333 (inherit maven-artifact)
1334 (name "maven-compat")
1336 `(#:jar-name "maven-compat.jar"
1337 #:source-dir "src/main/java"
1339 #:test-dir "src/test"
1341 (modify-phases %standard-phases
1342 ;; Tests assume we're in this directory
1343 (add-before 'configure 'chdir
1345 (chdir "maven-compat")
1347 (add-before 'build 'recreate-removed-jar
1349 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1351 (with-directory-excursion "src/test/resources"
1352 (with-output-to-file "artifact-install/artifact-1.0.jar"
1354 (format #t "dummy~%")))
1357 (with-output-to-file file
1359 (format #t "foo~%"))))
1360 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1361 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1362 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1363 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1364 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1365 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1366 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1367 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1368 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1369 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1370 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1371 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1372 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1373 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1374 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1375 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1376 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1377 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1378 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1379 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1380 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1381 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1382 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1383 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1384 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1385 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1386 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1387 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1388 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1389 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1390 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1391 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1392 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1393 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1394 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1395 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1396 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1397 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1398 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1399 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1400 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1401 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1402 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1403 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1404 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1405 (with-directory-excursion "local-repo/snapshot-test/jars"
1408 (with-output-to-file file
1411 (format #t "local"))))
1412 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1413 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1414 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1417 (with-directory-excursion
1418 (string-append "src/test/remote-repo/org/apache/maven/its/"
1420 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1423 (copy-file (string-append letter "-0.1.pom")
1424 (string-append dir "/pom.xml"))
1425 (with-output-to-file (string-append dir "/pom.properties")
1427 (format #t "version=0.1~%")
1428 (format #t "groupId=org.apache.maven.its")
1429 (format #t (string-append "artifactId=" letter))))
1430 (with-output-to-file "META-INF/MANIFEST.MF"
1432 (format #t "Manifest-Version: 1.0~%"))))
1433 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1434 (string-append letter "-0.1.jar") "META-INF")))
1437 (add-before 'build 'generate-models
1438 (lambda* (#:key inputs #:allow-other-keys)
1439 (define (modello-single-mode file version mode)
1440 (invoke "java" "org.codehaus.modello.ModelloCli"
1441 file mode "src/main/java" version
1443 (let ((file "src/main/mdo/profiles.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"))
1447 (let ((file "src/main/mdo/paramdoc.mdo"))
1448 (modello-single-mode file "1.0.0" "java")
1449 (modello-single-mode file "1.0.0" "xpp3-reader")
1450 (modello-single-mode file "1.0.0" "xpp3-writer"))
1452 (add-after 'build 'generate-metadata
1454 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1455 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1456 "--source" "src/main/java"
1457 "--output" "build/classes/META-INF/plexus/components.xml"
1458 "--classes" "build/classes"
1459 "--descriptors" "build/classes/META-INF")
1461 (add-before 'check 'build-tests
1463 (invoke "ant" "compile-tests")
1465 (add-after 'build-tests 'generate-test-metadata
1467 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1469 ":build/test-classes")
1470 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1471 "--source" "src/test/java"
1472 "--output" "build/test-classes/META-INF/plexus/components.xml"
1473 "--classes" "build/test-classes"
1474 "--descriptors" "build/test-classes/META-INF")
1476 (add-after 'generate-metadata 'rebuild
1478 (invoke "ant" "jar")
1481 `(("maven-artifact" ,maven-artifact)
1482 ("maven-repository-metadata" ,maven-repository-metadata)
1483 ("maven-builder-support" ,maven-builder-support)
1484 ("maven-model" ,maven-model)
1485 ("maven-model-builder" ,maven-model-builder)
1486 ("maven-settings" ,maven-settings)
1487 ("maven-settings-builder" ,maven-settings-builder)
1488 ("maven-core" ,maven-core)
1489 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1490 ("maven-wagon-file" ,maven-wagon-file)
1491 ("maven-resolver-api" ,maven-resolver-api)
1492 ("maven-resolver-util" ,maven-resolver-util)
1493 ("maven-resolver-spi" ,maven-resolver-spi)
1494 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1496 `(("java-modello-core" ,java-modello-core)
1497 ("java-plexus-utils" ,java-plexus-utils)
1498 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1499 ("java-plexus-classworlds" ,java-plexus-classworlds)
1500 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1501 ("java-sisu-build-api" ,java-sisu-build-api)
1502 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1503 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1504 ("java-javax-inject" ,java-javax-inject)
1505 ("java-guice" ,java-guice)
1506 ("java-guava" ,java-guava)
1507 ("java-cglib" ,java-cglib)
1508 ("java-asm" ,java-asm)
1509 ("java-modello-plugins-java" ,java-modello-plugins-java)
1510 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1511 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1513 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1514 ("java-commons-cli" ,java-commons-cli)
1515 ("java-plexus-cli" ,java-plexus-cli)
1516 ("java-jdom2" ,java-jdom2)
1517 ("maven-plugin-api" ,maven-plugin-api)
1518 ("java-qdox" ,java-qdox)
1520 ("java-plexus-cipher" ,java-plexus-cipher)
1521 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1522 ("java-jsr250" ,java-jsr250)
1523 ("java-cdi-api" ,java-cdi-api)
1524 ("java-junit" ,java-junit)
1525 ("maven-resolver-impl" ,maven-resolver-impl)
1526 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1527 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1528 ("java-commons-lang3" ,java-commons-lang3)
1529 ("java-aop" ,java-aopalliance)
1530 ("maven-resolver-provider" ,maven-resolver-provider)
1531 ("java-slf4j-api" ,java-slf4j-api)
1532 ("java-slf4j-simple" ,java-slf4j-simple)
1533 ,@(package-inputs java-slf4j-api)))
1534 (description "Apache Maven is a software project management and comprehension
1535 tool. This package contains Maven2 classes maintained as compatibility
1536 layer for plugins that need to keep Maven2 compatibility.")))
1538 (define-public maven
1540 (inherit maven-artifact)
1544 (modify-phases %standard-phases
1546 (lambda* (#:key inputs #:allow-other-keys)
1547 ;; Recreate the configuration for the loader
1548 (with-output-to-file "apache-maven/src/bin/m2.conf"
1550 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1552 (format #t "set maven.conf default ${maven.home}/conf~%")
1554 (format #t "[plexus.core]~%")
1555 (format #t "load ${maven.conf}/logging~%")
1556 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1557 ;; Reference every jar so plexus-classworlds can find them.
1559 (lambda (dependency)
1560 (format #t "load ~a/share/java/*.jar~%"
1561 (assoc-ref inputs dependency)))
1562 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1563 "maven-builder-support" "maven-model" "maven-model-builder"
1564 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1565 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1566 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1567 "maven-resolver-connector-basic" "maven-resolver-provider"
1568 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1569 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1570 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1571 "maven-wagon-http-shared" "maven-wagon-tck-http"
1572 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1573 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1574 "java-javax-inject" "java-plexus-component-annotations"
1575 "java-plexus-utils" "java-plexus-interpolation"
1576 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1577 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1578 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1579 "java-slf4j-simple"))))
1580 (substitute* "apache-maven/src/bin/mvn"
1585 (assoc-ref inputs "java-plexus-classworlds")
1588 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1592 (lambda* (#:key outputs #:allow-other-keys)
1593 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1594 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1595 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1596 (for-each (lambda (file)
1597 (install-file (string-append "apache-maven/src/bin/" file)
1599 (chmod (string-append bin file) #o755))
1600 '("mvn" "mvnDebug" "mvnyjp"))
1601 (install-file "apache-maven/src/bin/m2.conf" bin)
1602 (copy-recursively "apache-maven/src/conf" conf))
1605 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1606 ("maven-artifact" ,maven-artifact)
1607 ("maven-embedder" ,maven-embedder)
1608 ("maven-core" ,maven-core)
1609 ("maven-compat" ,maven-compat)
1610 ("maven-builder-support" ,maven-builder-support)
1611 ("maven-model" ,maven-model)
1612 ("maven-model-builder" ,maven-model-builder)
1613 ("maven-settings" ,maven-settings)
1614 ("maven-settings-builder" ,maven-settings-builder)
1615 ("maven-plugin-api" ,maven-plugin-api)
1616 ("maven-repository-metadata" ,maven-repository-metadata)
1617 ("maven-shared-utils" ,maven-shared-utils)
1618 ("maven-resolver-api" ,maven-resolver-api)
1619 ("maven-resolver-spi" ,maven-resolver-spi)
1620 ("maven-resolver-util" ,maven-resolver-util)
1621 ("maven-resolver-impl" ,maven-resolver-impl)
1622 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1623 ("maven-resolver-provider" ,maven-resolver-provider)
1624 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1625 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1626 ("maven-wagon-file" ,maven-wagon-file)
1627 ("maven-wagon-http" ,maven-wagon-http)
1628 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1629 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
1630 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
1631 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
1632 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
1633 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1634 ("java-guice" ,java-guice)
1635 ("java-aopalliance" ,java-aopalliance)
1636 ("java-cglib" ,java-cglib)
1637 ("java-asm" ,java-asm)
1638 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1639 ("java-javax-inject" ,java-javax-inject)
1640 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1641 ("java-plexus-utils" ,java-plexus-utils)
1642 ("java-plexus-interpolation" ,java-plexus-interpolation)
1643 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1644 ("java-plexus-cipher" ,java-plexus-cipher)
1645 ("java-guava" ,java-guava)
1646 ("java-jansi" ,java-jansi)
1647 ("java-jsr250" ,java-jsr250)
1648 ("java-cdi-api" ,java-cdi-api)
1649 ("java-commons-cli" ,java-commons-cli)
1650 ("java-commons-io" ,java-commons-io)
1651 ("java-commons-lang3" ,java-commons-lang3)
1652 ("java-slf4j-api" ,java-slf4j-api)
1653 ;; TODO: replace with maven-slf4j-provider
1654 ("java-slf4j-simple" ,java-slf4j-simple)))
1656 `(("coreutils" ,coreutils)
1658 (description "Apache Maven is a software project management and comprehension
1659 tool. Based on the concept of a project object model: builds, dependency
1660 management, documentation creation, site publication, and distribution
1661 publication are all controlled from the @file{pom.xml} declarative file. Maven
1662 can be extended by plugins to utilise a number of other development tools for
1663 reporting or the build process.")))