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 "0rpvdg3qr1j88gw0ankf0wnwfyq6238mdlm7s39vf5jrcvhdgwcl"))))
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-junit" ,java-junit)
95 ("java-hamcrest-core" ,java-hamcrest-core)))
96 (home-page "https://github.com/apache/maven-resolver")
97 (synopsis "Maven repository system API")
98 (description "This package contains the API for the maven repository system.")
99 (license license:asl2.0)))
101 (define-public maven-resolver-spi
103 (inherit maven-resolver-api)
104 (name "maven-resolver-spi")
106 `(#:jar-name "maven-resolver-spi.jar"
107 #:source-dir "maven-resolver-spi/src/main/java"
108 #:test-dir "maven-resolver-spi/src/test"
111 `(("maven-resolver-api" ,maven-resolver-api)))
112 (synopsis "Maven repository system SPI")
113 (description "This package contains the service provider interface (SPI)
114 for repository system implementations and repository connectors.")))
116 (define-public maven-resolver-test-util
118 (inherit maven-resolver-api)
119 (name "maven-resolver-test-util")
121 `(#:jar-name "maven-resolver-test-util.jar"
122 #:source-dir "maven-resolver-test-util/src/main/java"
123 #:test-dir "maven-resolver-test-util/src/test"
126 `(("maven-resolver-api" ,maven-resolver-api)
127 ("maven-resolver-spi" ,maven-resolver-spi)))
128 (synopsis "Utility classes for testing the maven repository system")
129 (description "This package contains a collection of utility classes to
130 ease testing of the repository system.")))
132 (define-public maven-resolver-util
134 (inherit maven-resolver-api)
135 (name "maven-resolver-util")
137 `(#:jar-name "maven-resolver-util.jar"
138 #:source-dir "maven-resolver-util/src/main/java"
139 #:test-dir "maven-resolver-util/src/test"
142 `(("maven-resolver-api" ,maven-resolver-api)))
144 `(("java-junit" ,java-junit)
145 ("java-hamcrest-core" ,java-hamcrest-core)
146 ("maven-resolver-test-util" ,maven-resolver-test-util)))
147 (synopsis "Utility classes for the maven repository system")
148 (description "This package contains a collection of utility classes to
149 ease usage of the repository system.")))
151 (define-public maven-resolver-connector-basic
153 (inherit maven-resolver-api)
154 (name "maven-resolver-connector-basic")
156 `(#:jar-name "maven-resolver-connector-basic.jar"
157 #:source-dir "maven-resolver-connector-basic/src/main/java"
158 #:test-dir "maven-resolver-connector-basic/src/test"
161 (modify-phases %standard-phases
162 (add-before 'build 'generate-sisu
164 (mkdir-p "build/classes/META-INF/sisu")
165 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
167 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n"))))))))
169 `(("maven-resolver-api" ,maven-resolver-api)
170 ("maven-resolver-spi" ,maven-resolver-spi)
171 ("maven-resolver-util" ,maven-resolver-util)
172 ("java-javax-inject" ,java-javax-inject)))
174 `(("java-junit" ,java-junit)
175 ("java-hamcrest-core" ,java-hamcrest-core)
176 ("maven-resolver-test-util" ,maven-resolver-test-util)))
177 (synopsis "Maven repository connector implementation")
178 (description "This package contains a repository connector implementation
179 for repositories using URI-based layouts.")))
181 (define-public maven-resolver-impl
183 (inherit maven-resolver-api)
184 (name "maven-resolver-impl")
186 `(#:jar-name "maven-resolver-impl.jar"
187 #:source-dir "maven-resolver-impl/src/main/java"
188 #:test-dir "maven-resolver-impl/src/test"
191 (modify-phases %standard-phases
192 (add-before 'build 'generate-sisu
194 (mkdir-p "build/classes/META-INF/sisu")
195 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
199 ;; Build this list by looking for files containing "@Named"
200 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
201 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
202 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
203 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory\n"
204 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
205 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
206 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
207 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
208 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
209 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
210 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
211 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
212 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
213 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
214 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
215 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
216 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
217 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
218 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
219 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
220 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
221 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
222 "org.eclipse.aether.internal.impl.DefaultDependencyCollector\n"))))
225 `(("maven-resolver-api" ,maven-resolver-api)
226 ("maven-resolver-spi" ,maven-resolver-spi)
227 ("maven-resolver-util" ,maven-resolver-util)
228 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
229 ("java-javax-inject" ,java-javax-inject)
230 ("java-guice" ,java-guice)
231 ("java-guava" ,java-guava)
232 ("java-cglib" ,java-cglib)
233 ("java-asm" ,java-asm)
234 ("jajva-aopalliance" ,java-aopalliance)
235 ("java-slf4j-api" ,java-slf4j-api)))
237 `(("java-junit" ,java-junit)
238 ("java-hamcrest-core" ,java-hamcrest-core)
239 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
241 (define-public maven-resolver-transport-wagon
243 (inherit maven-resolver-api)
244 (name "maven-resolver-transport-wagon")
246 `(#:jar-name "maven-resolver-transport-wagon.jar"
247 #:source-dir "maven-resolver-transport-wagon/src/main/java"
248 #:test-dir "maven-resolver-transport-wagon/src/test"
251 (modify-phases %standard-phases
252 (add-before 'build 'generate-sisu
254 (mkdir-p "build/classes/META-INF/sisu")
255 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
257 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
259 (add-before 'build 'generate-components.xml
261 (mkdir-p "build/classes/META-INF/plexus")
262 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
266 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
270 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
271 <role-hint>plexus</role-hint>
272 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
274 <isolated-realm>false</isolated-realm>
277 <role>org.codehaus.plexus.PlexusContainer</role>
279 <field-name>container</field-name>
284 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
285 <role-hint>plexus</role-hint>
286 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
288 <isolated-realm>false</isolated-realm>
291 <role>org.codehaus.plexus.PlexusContainer</role>
293 <field-name>container</field-name>
298 </component-set>\n"))))
301 `(("maven-resolver-api" ,maven-resolver-api)
302 ("maven-resolver-spi" ,maven-resolver-spi)
303 ("maven-resolver-util" ,maven-resolver-util)
304 ("java-javax-inject" ,java-javax-inject)
305 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
306 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
307 ("java-plexus-classworld" ,java-plexus-classworlds)
308 ("java-plexus-plexus-util" ,java-plexus-utils)
309 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
310 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
312 `(("java-junit" ,java-junit)
313 ("java-hamcrest-core" ,java-hamcrest-core)
314 ("maven-resolver-test-util" ,maven-resolver-test-util)
315 ("java-guava" ,java-guava)
316 ("java-cglib" ,java-cglib)
317 ("java-asm" ,java-asm)
318 ("java-aopalliance" ,java-aopalliance)
319 ("java-guice" ,java-guice)))
320 (synopsis "Transport implementation for Maven")
321 (description "This package contains a transport implementation based on
322 Maven Wagon, for use in Maven.")))
324 (define-public maven-shared-utils
326 (name "maven-shared-utils")
330 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
331 "maven-shared-utils-" version "-source-release.zip"))
334 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
335 (build-system ant-build-system)
337 `(#:jar-name "maven-shared-utils.jar"
338 #:source-dir "src/main/java"
341 (modify-phases %standard-phases
342 (add-before 'check 'remove-cyclic-dep
345 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
348 `(("java-jansi" ,java-jansi)
349 ("java-commons-io" ,java-commons-io)
350 ("java-jsr305" ,java-jsr305)
351 ("java-plexus-container-default" ,java-plexus-container-default)))
354 ("java-junit" ,java-junit)
355 ("java-hamcrest-core" ,java-hamcrest-core)
356 ("java-commons-lang3" ,java-commons-lang3)))
357 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
358 (synopsis "Plexus-util replacement for maven")
359 (description "This project aims to be a functional replacement for
360 plexus-utils in Maven. It is not a 100% API compatible replacement but a
361 replacement with improvements.")
362 (license license:asl2.0)))
364 (define-public maven-plugin-annotations
366 (name "maven-plugin-annotations")
370 (uri (string-append "https://archive.apache.org/dist/maven/"
371 "plugin-tools/maven-plugin-tools-" version
372 "-source-release.zip"))
373 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
374 (build-system ant-build-system)
376 `(#:jar-name "maven-plugin-annotations.jar"
377 #:source-dir "maven-plugin-annotations/src/main/java"
380 `(("maven-artifact" ,maven-artifact)))
383 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
384 (synopsis "Java 5 annotations to use in Mojos")
385 (description "This package contains Java 5 annotations for use in Mojos.")
386 (license license:asl2.0)))
388 (define-public maven-wagon-provider-api
390 (name "maven-wagon-provider-api")
394 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
395 "wagon-" version "-source-release.zip"))
396 (sha256 (base32 "0r07j6xdzdnrvqnv8ida7dx1m05pznh5qgmcfcfpyvg9nxbj3l1n"))))
397 (build-system ant-build-system)
399 `(#:jar-name "maven-wagon-provider-api.jar"
400 #:source-dir "wagon-provider-api/src/main/java"
401 #:test-dir "wagon-provider-api/src/test"))
403 `(("java-plexus-utils" ,java-plexus-utils)))
406 ("java-junit" ,java-junit)
407 ("java-easymock" ,java-easymock)))
408 (home-page "https://maven.apache.org/wagon")
409 (synopsis "Transport abstraction for Maven")
410 (description "Maven Wagon is a transport abstraction that is used in Maven's
411 artifact and repository handling code.")
412 (license license:asl2.0)))
414 (define-public maven-wagon-provider-test
416 (inherit maven-wagon-provider-api)
417 (name "maven-wagon-provider-test")
419 `(#:jar-name "maven-wagon-provider-test.jar"
420 #:source-dir "wagon-provider-test/src/main/java"
421 #:tests? #f; no tests
424 `(("java-plexus-utils" ,java-plexus-utils)
425 ("java-plexus-container-default" ,java-plexus-container-default)
426 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
427 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
428 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
429 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
430 ("java-slf4j-api" ,java-slf4j-api)
431 ("java-tomcat" ,java-tomcat)
432 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
433 (synopsis "Test classes from maven-wagon")
434 (description "Maven Wagon is a transport abstraction that is used in Maven's
435 artifact and repository handling code. This package contains common test
436 classes used in multiple maven-wagon components.")))
438 (define-public maven-wagon-file
440 (inherit maven-wagon-provider-api)
441 (name "maven-wagon-file")
443 `(#:jar-name "maven-wagon-file.jar"
444 #:source-dir "wagon-providers/wagon-file/src/main/java"
445 #:test-dir "wagon-providers/wagon-file/src/test"
448 (modify-phases %standard-phases
449 (add-before 'check 'fix-paths
451 ;; Tests assume they are run by maven, which copies test resources
452 ;; to target. Our ant-build-system does the same, but with the
454 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
455 (("target") "build"))
457 (add-after 'build 'generate-metadata
459 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
460 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
461 "--source" "wagon-providers/wagon-file/src/main/java"
462 "--output" "build/classes/META-INF/plexus/components.xml"
463 "--classes" "build/classes"
464 "--descriptors" "build/classes/META-INF")
466 (add-after 'generate-metadata 'rebuild
471 `(("java-plexus-utils" ,java-plexus-utils)
472 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
474 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
475 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
476 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
477 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
478 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
479 ("java-plexus-classworlds" ,java-plexus-classworlds)
480 ("java-guava" ,java-guava)
481 ("java-guice" ,java-guice)
482 ("java-javax-inject" ,java-javax-inject)
483 ("java-cglib" ,java-cglib)
484 ("java-slf4j-api" ,java-slf4j-api)
485 ("java-plexus-utils" ,java-plexus-utils)
486 ("java-plexus-cli" ,java-plexus-cli)
487 ("maven-plugin-api" ,maven-plugin-api)
488 ("maven-plugin-annotations" ,maven-plugin-annotations)
489 ("maven-core" ,maven-core)
490 ("maven-model" ,maven-model)
491 ("java-commons-cli" ,java-commons-cli)
492 ("java-qdox" ,java-qdox)
493 ("java-jdom2" ,java-jdom2)
494 ("java-asm" ,java-asm)
495 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
496 ,@(package-native-inputs maven-wagon-provider-api)))
497 (synopsis "Wagon provider that gets and puts artifacts using the file system")
498 (description "Maven Wagon is a transport abstraction that is used in Maven's
499 artifact and repository handling code. It uses providers, that are tools to
500 manage artifacts and deployment. This package contains the file provider which
501 gets and puts artifacts using the file system.")))
503 (define-public maven-wagon-tck-http
505 (inherit maven-wagon-provider-api)
506 (name "maven-wagon-tck-http")
508 `(#:jar-name "maven-wagon-tck-http.jar"
509 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
510 #:tests? #f; no tests
513 `(("java-plexus-util" ,java-plexus-utils)
514 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
515 ("java-tomcat" ,java-tomcat)
516 ("java-slf4j-api" ,java-slf4j-api)
517 ("java-commons-codec" ,java-commons-codec)
518 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
519 ("java-plexus-classworlds" ,java-plexus-classworlds)
520 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
521 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
522 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
523 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
524 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
525 (synopsis "Wagon HTTP Test Compatibility Kit")
526 (description "Maven Wagon is a transport abstraction that is used in Maven's
527 artifact and repository handling code. This package contains the HTTP
528 Test Compatibility Kit.")))
530 (define-public maven-wagon-http-shared
532 (inherit maven-wagon-provider-api)
533 (name "maven-wagon-http-shared")
535 `(#:jar-name "maven-wagon-http-shared.jar"
536 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
537 #:test-dir "wagon-providers/wagon-http-shared/src/test"
540 (modify-phases %standard-phases
541 (add-after 'build 'generate-metadata
543 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
544 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
545 "--source" "wagon-providers/wagon-http-shared/src/main/java"
546 "--output" "build/classes/META-INF/plexus/components.xml"
547 "--classes" "build/classes"
548 "--descriptors" "build/classes/META-INF")
550 (add-after 'generate-metadata 'rebuild
555 `(("java-plexus-utils" ,java-plexus-utils)
556 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
557 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
558 ("java-commons-io" ,java-commons-io)
559 ("java-jsoup" ,java-jsoup)
560 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
562 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
563 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
564 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
565 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
566 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
567 ("java-plexus-classworlds" ,java-plexus-classworlds)
568 ("java-guava" ,java-guava)
569 ("java-guice" ,java-guice)
570 ("java-javax-inject" ,java-javax-inject)
571 ("java-cglib" ,java-cglib)
572 ("java-slf4j-api" ,java-slf4j-api)
573 ("java-plexus-utils" ,java-plexus-utils)
574 ("java-plexus-cli" ,java-plexus-cli)
575 ("maven-plugin-api" ,maven-plugin-api)
576 ("maven-plugin-annotations" ,maven-plugin-annotations)
577 ("maven-core" ,maven-core)
578 ("maven-model" ,maven-model)
579 ("java-commons-cli" ,java-commons-cli)
580 ("java-qdox" ,java-qdox)
581 ("java-jdom2" ,java-jdom2)
582 ("java-asm" ,java-asm)
583 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
584 ,@(package-native-inputs maven-wagon-provider-api)))
585 (synopsis "Shared Library for wagon providers supporting HTTP.")
586 (description "Maven Wagon is a transport abstraction that is used in Maven's
587 artifact and repository handling code. It uses providers, that are tools to
588 manage artifacts and deployment. This package contains a shared library for
589 wagon providers supporting HTTP.")))
591 (define-public maven-wagon-http
593 (inherit maven-wagon-provider-api)
594 (name "maven-wagon-http")
596 `(#:jar-name "maven-wagon-http.jar"
597 #:source-dir "wagon-providers/wagon-http/src/main/java"
598 #:test-dir "wagon-providers/wagon-http/src/test"
601 ;; FIXME: javax.net.ssl.SSLHandshakeException:
602 ;; sun.security.validator.ValidatorException:
603 ;; PKIX path building failed:
604 ;; sun.security.provider.certpath.SunCertPathBuilderException:
605 ;; unable to find valid certification path to requested target
606 "**/HttpsWagonPreemptiveTest.java"
607 "**/HttpsWagonTest.java"
612 (modify-phases %standard-phases
613 (add-before 'build 'copy-resources
615 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
616 "build/classes/META-INF/plexus")
618 (add-before 'check 'fix-resource-path
620 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
621 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
622 (("src/test") "wagon-providers/wagon-http/src/test"))
625 `(("java-plexus-utils" ,java-plexus-utils)
626 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
627 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
628 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
629 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
630 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
632 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
633 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
634 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
635 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
636 ("java-plexus-container-default" ,java-plexus-container-default)
637 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
638 ("java-plexus-classworlds" ,java-plexus-classworlds)
639 ("java-guava" ,java-guava)
640 ("java-guice" ,java-guice)
641 ("java-inject" ,java-javax-inject)
642 ("java-cglib" ,java-cglib)
643 ("java-slf4j-api" ,java-slf4j-api)
644 ("java-plexus-utils" ,java-plexus-utils)
645 ("java-plexus-cli" ,java-plexus-cli)
646 ("maven-plugin-api" ,maven-plugin-api)
647 ("maven-plugin-annotations" ,maven-plugin-annotations)
648 ("maven-core" ,maven-core)
649 ("maven-model" ,maven-model)
650 ("java-commons-cli" ,java-commons-cli)
651 ("java-qdox" ,java-qdox)
652 ("java-jdom2" ,java-jdom2)
653 ("java-asm" ,java-asm)
654 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
655 ("java-tomcat" ,java-tomcat)
656 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
657 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
658 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
659 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
660 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
661 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
662 ("java-hamcrest-core" ,java-hamcrest-core)
663 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
664 ("java-commons-codec" ,java-commons-codec)
665 ("java-commons-io" ,java-commons-io)
666 ("java-jsoup" ,java-jsoup)
667 ("java-slf4j-simple" ,java-slf4j-simple)
668 ,@(package-native-inputs maven-wagon-provider-api)))
669 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
670 (description "Maven Wagon is a transport abstraction that is used in Maven's
671 artifact and repository handling code. It uses providers, that are tools to
672 manage artifacts and deployment. This package contains a Wagon provider that
673 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
675 (define-public maven-artifact
677 (name "maven-artifact")
681 (uri (string-append "https://archive.apache.org/dist/maven/"
682 "maven-3/" version "/source/"
683 "apache-maven-" version "-src.tar.gz"))
684 (sha256 (base32 "1xg20g87svzzscbn7m92c2njvrr61va1dija2x2w7m5v4hdizfpk"))
685 (modules '((guix build utils)))
688 (for-each delete-file (find-files "." "\\.jar$"))
691 (search-patches "maven-generate-component-xml.patch"
692 "maven-generate-javax-inject-named.patch"))))
693 (build-system ant-build-system)
695 `(#:jar-name "maven-artifact.jar"
696 #:source-dir "maven-artifact/src/main/java"
697 #:test-dir "maven-artifact/src/test"
698 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"))
700 `(("java-plexus-utils" ,java-plexus-utils)
701 ("java-commons-lang3" ,java-commons-lang3)))
703 `(("java-junit" ,java-junit)))
704 (home-page "https://maven.apache.org/")
705 (synopsis "Build system")
706 (description "Apache Maven is a software project management and comprehension
707 tool. This package contains the Maven Artifact classes, providing the
708 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
709 jar file is executable and provides a little tool to display how Maven parses
710 and compares versions:")
711 (license license:asl2.0)))
713 (define-public maven-model
715 (inherit maven-artifact)
718 `(#:jar-name "maven-model.jar"
719 #:source-dir "maven-model/src/main/java"
720 #:test-dir "maven-model/src/test"
723 (modify-phases %standard-phases
724 (add-before 'build 'generate-models
725 (lambda* (#:key inputs #:allow-other-keys)
726 (define (modello-single-mode file version mode)
727 (invoke "java" "org.codehaus.modello.ModelloCli"
728 file mode "maven-model/src/main/java" version
730 (let ((file "maven-model/src/main/mdo/maven.mdo"))
731 (modello-single-mode file "4.0.0" "java")
732 (modello-single-mode file "4.0.0" "xpp3-reader")
733 (modello-single-mode file "4.0.0" "xpp3-writer")
734 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
737 `(("java-commons-lang3" ,java-commons-lang3)
738 ("java-plexus-utils" ,java-plexus-utils)))
740 `(("java-modello-core" ,java-modello-core)
742 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
743 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
744 ("java-guice" ,java-guice)
745 ("java-cglib" ,java-cglib)
746 ("java-asm" ,java-asm)
747 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
748 ("java-javax-inject" ,java-javax-inject)
749 ("java-plexus-classworlds" ,java-plexus-classworlds)
750 ("java-guava" ,java-guava)
751 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
752 ("java-sisu-build-api" ,java-sisu-build-api)
754 ("java-modello-plugins-java" ,java-modello-plugins-java)
755 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
756 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
758 ("java-junit" ,java-junit)))
759 (description "Apache Maven is a software project management and comprehension
760 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
761 so really just plain Java objects.")))
763 (define-public maven-builder-support
765 (inherit maven-artifact)
766 (name "maven-builder-support")
768 `(#:jar-name "maven-builder-support.jar"
769 #:source-dir "maven-builder-support/src/main/java"
771 #:test-dir "maven-builder-support/src/test"
773 (modify-phases %standard-phases
774 (add-before 'check 'fix-paths
776 (with-directory-excursion "maven-builder-support/src/test/java"
778 '("org/apache/maven/building/FileSourceTest.java"
779 "org/apache/maven/building/UrlSourceTest.java")
780 (("target/test-classes") "maven-builder-support/src/test/resources")))
783 `(("java-plexus-utils" ,java-plexus-utils)
784 ("java-commons-lang3" ,java-commons-lang3)))
786 `(("java-junit" ,java-junit)
787 ("java-hamcrest-core" ,java-hamcrest-core)))
788 (description "Apache Maven is a software project management and comprehension
789 tool. This package contains a support library for descriptor builders (model,
790 setting, toolchains)")))
792 (define-public maven-settings
794 (inherit maven-artifact)
795 (name "maven-settings")
797 `(#:jar-name "maven-settings.jar"
798 #:source-dir "maven-settings/src/main/java"
800 #:tests? #f; no tests
802 (modify-phases %standard-phases
803 (add-before 'build 'generate-models
804 (lambda* (#:key inputs #:allow-other-keys)
805 (define (modello-single-mode file version mode)
806 (invoke "java" "org.codehaus.modello.ModelloCli"
807 file mode "maven-settings/src/main/java" version
809 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
810 (modello-single-mode file "1.1.0" "java")
811 (modello-single-mode file "1.1.0" "xpp3-reader")
812 (modello-single-mode file "1.1.0" "xpp3-writer"))
816 `(("java-modello-core" ,java-modello-core)
818 ;("container" ,java-plexus-container-default)
819 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
820 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
821 ("java-guice" ,java-guice)
822 ("java-cglib" ,java-cglib)
823 ("java-asm" ,java-asm)
824 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
825 ("java-javax-inject" ,java-javax-inject)
826 ("java-plexus-classworlds" ,java-plexus-classworlds)
827 ("java-plexus-utils" ,java-plexus-utils)
828 ("java-guava" ,java-guava)
829 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
830 ("java-sisu-build-api" ,java-sisu-build-api)
832 ("java-modello-plugins-java" ,java-modello-plugins-java)
833 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
834 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
835 (description "Apache Maven is a software project management and comprehension
836 tool. This package contains strictly the model for Maven settings, that is
837 simply plain java objects.")))
839 (define-public maven-settings-builder
841 (inherit maven-artifact)
842 (name "maven-settings-builder")
844 `(#:jar-name "maven-settings-builder.jar"
845 #:source-dir "maven-settings-builder/src/main/java"
847 #:test-dir "maven-settings-builder/src/test"
849 (modify-phases %standard-phases
850 (add-before 'build 'generate-components.xml
852 (mkdir-p "build/classes/META-INF/plexus")
853 (chmod "components.sh" #o755)
854 (invoke "./components.sh" "maven-settings-builder/src/main/java"
855 "build/classes/META-INF/plexus/components.xml")
858 `(("java-plexus-utils" ,java-plexus-utils)
859 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
860 ("java-plexus-interpolation" ,java-plexus-interpolation)
861 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
862 ("maven-builder-support" ,maven-builder-support)
863 ("maven-settings" ,maven-settings)
864 ("java-commons-lang3" ,java-commons-lang3)))
866 `(("java-junit" ,java-junit)))
867 (description "Apache Maven is a software project management and comprehension
868 tool. This package contains the effective model builder, with profile activation,
869 inheritance, interpolation, @dots{}")))
871 (define-public maven-model-builder
873 (inherit maven-artifact)
874 (name "maven-model-builder")
876 `(#:jar-name "maven-model-builder.jar"
877 #:source-dir "maven-model-builder/src/main/java"
879 #:test-dir "maven-model-builder/src/test"
881 (modify-phases %standard-phases
882 (add-before 'build 'copy-resources
884 (copy-recursively "maven-model-builder/src/main/resources"
887 (add-before 'build 'generate-components.xml
889 (mkdir-p "build/classes/META-INF/plexus")
890 (chmod "components.sh" #o755)
891 (invoke "./components.sh" "maven-model-builder/src/main/java"
892 "build/classes/META-INF/plexus/components.xml")
894 (add-before 'check 'fix-paths
896 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
897 (("src/test") "maven-model-builder/src/test"))
900 `(("model" ,maven-model)
901 ("artifact" ,maven-artifact)
902 ("support" ,maven-builder-support)
903 ("annotations" ,java-plexus-component-annotations)
904 ("utils" ,java-plexus-utils)
905 ("interpolation" ,java-plexus-interpolation)
906 ("lang3" ,java-commons-lang3)
907 ("guava" ,java-guava)))
909 `(("java-junit" ,java-junit)
910 ("java-hamcrest-core" ,java-hamcrest-core)
911 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
912 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
913 ("guice" ,java-guice)
914 ("java-cglib" ,java-cglib)
915 ("java-asm" ,java-asm)
916 ("sisu-inject" ,java-eclipse-sisu-inject)
917 ("javax-inject" ,java-javax-inject)
918 ("xmlunit" ,java-xmlunit)
919 ("xmlunit" ,java-xmlunit-legacy)
920 ("xbean" ,java-geronimo-xbean-reflect)
921 ("classworlds" ,java-plexus-classworlds)))
922 (description "Apache Maven is a software project management and comprehension
923 tool. This package contains the effective model builder, with profile activation,
924 inheritance, interpolation, @dots{}")))
926 (define-public maven-repository-metadata
928 (inherit maven-artifact)
929 (name "maven-repository-metadata")
931 `(#:jar-name "maven-repository-metadata.jar"
932 #:source-dir "maven-repository-metadata/src/main/java"
934 #:tests? #f; no tests
936 (modify-phases %standard-phases
937 (add-before 'build 'generate-models
938 (lambda* (#:key inputs #:allow-other-keys)
939 (define (modello-single-mode file version mode)
940 (invoke "java" "org.codehaus.modello.ModelloCli"
941 file mode "maven-repository-metadata/src/main/java" version
943 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
944 (modello-single-mode file "1.1.0" "java")
945 (modello-single-mode file "1.1.0" "xpp3-reader")
946 (modello-single-mode file "1.1.0" "xpp3-writer"))
950 `(("modello" ,java-modello-core)
952 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
953 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
954 ("java-guice" ,java-guice)
955 ("java-cglib" ,java-cglib)
956 ("java-asm" ,java-asm)
957 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
958 ("java-javax-inject" ,java-javax-inject)
959 ("java-plexus-utils" ,java-plexus-utils)
960 ("java-plexus-classworlds" ,java-plexus-classworlds)
961 ("java-guava" ,java-guava)
962 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
963 ("java-sisu-build-api" ,java-sisu-build-api)
965 ("java-modello-plugins-java" ,java-modello-plugins-java)
966 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
967 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
968 (description "Apache Maven is a software project management and comprehension
969 tool. This package contains strictly the model for Maven Repository Metadata,
970 so really just plain objects.")))
972 (define-public maven-resolver-provider
974 (inherit maven-artifact)
975 (name "maven-resolver-provider")
977 `(#:jar-name "maven-resolver-provider.jar"
978 #:source-dir "maven-resolver-provider/src/main/java"
979 #:test-dir "maven-resolver-provider/src/test"
981 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
983 (modify-phases %standard-phases
984 (add-before 'build 'generate-sisu-named
986 (mkdir-p "build/classes/META-INF/sisu")
987 (chmod "./sisu.sh" #o755)
988 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
989 "build/classes/META-INF/sisu/javax.inject.Named")
992 `(("maven-resolver-spi" ,maven-resolver-spi)
993 ("maven-resolver-api" ,maven-resolver-api)
994 ("maven-resolver-impl" ,maven-resolver-impl)
995 ("maven-resolver-util" ,maven-resolver-util)
996 ("maven-model" ,maven-model)
997 ("maven-model-builder" ,maven-model-builder)
998 ("maven-builder-support" ,maven-builder-support)
999 ("maven-repository-metadata" ,maven-repository-metadata)
1000 ("java-plexus-utils" ,java-plexus-utils)
1001 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1002 ("java-commons-lang3" ,java-commons-lang3)
1003 ("java-guice" ,java-guice)
1004 ("java-guava" ,java-guava)
1005 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1006 ("java-javax-inject" ,java-javax-inject)))))
1008 (define-public maven-plugin-api
1010 (inherit maven-artifact)
1011 (name "maven-plugin-api")
1013 `(#:jar-name "maven-plugin-api.jar"
1014 #:source-dir "maven-plugin-api/src/main/java"
1016 #:test-dir "maven-plugin-api/src/test"
1018 (modify-phases %standard-phases
1019 (add-before 'build 'generate-models
1020 (lambda* (#:key inputs #:allow-other-keys)
1021 (define (modello-single-mode file version mode)
1022 (invoke "java" "org.codehaus.modello.ModelloCli"
1023 file mode "maven-plugin-api/src/main/java" version
1025 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1026 (modello-single-mode file "1.0.0" "java")
1027 (modello-single-mode file "1.0.0" "xpp3-reader")
1028 (modello-single-mode file "1.0.0" "xpp3-writer"))
1031 `(("maven-artifact" ,maven-artifact)
1032 ("maven-model" ,maven-model)
1033 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1034 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1035 ("guice" ,java-guice)
1036 ("java-cglib" ,java-cglib)
1037 ("java-asm" ,java-asm)
1038 ("sisu-inject" ,java-eclipse-sisu-inject)
1039 ("javax-inject" ,java-javax-inject)
1040 ("utils" ,java-plexus-utils)))
1042 `(("modello" ,java-modello-core)
1044 ("classworlds" ,java-plexus-classworlds)
1045 ("guava" ,java-guava)
1046 ("xbean" ,java-geronimo-xbean-reflect)
1047 ("build-api" ,java-sisu-build-api)
1049 ("java" ,java-modello-plugins-java)
1050 ("xml" ,java-modello-plugins-xml)
1051 ("xpp3" ,java-modello-plugins-xpp3)
1053 ("java-junit" ,java-junit)))
1054 (description "Apache Maven is a software project management and comprehension
1055 tool. This package contains strictly the API for plugins -- composed of goals
1056 implemented by Mojos -- development.
1058 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1059 generally generated from plugin sources using maven-plugin-plugin.")))
1061 (define maven-core-bootstrap
1063 (inherit maven-artifact)
1066 `(#:jar-name "maven-core.jar"
1067 #:source-dir "src/main/java"
1069 ;; Tests need maven-compat, which requires maven-core
1072 (modify-phases %standard-phases
1073 (add-before 'configure 'chdir
1075 ;; Required for generating components.xml in maven-core
1076 (chdir "maven-core")
1078 (add-before 'build 'copy-resources
1080 (mkdir-p "build/classes/")
1081 (copy-recursively "src/main/resources" "build/classes")
1083 (add-after 'copy-resources 'fill-properties
1085 ;; This file controls the output of some mvn subcommands, such as
1087 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1088 (("\\$\\{buildNumber\\}") "guix_build")
1089 (("\\$\\{timestamp\\}") "0")
1090 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1091 (("\\$\\{distributionId\\}") "apache-maven")
1092 (("\\$\\{distributionShortName\\}") "Maven")
1093 (("\\$\\{distributionName\\}") "Apache Maven"))
1095 (add-before 'build 'generate-sisu-named
1097 (mkdir-p "build/classes/META-INF/sisu")
1098 (chmod "../sisu.sh" #o755)
1099 (invoke "../sisu.sh" "src/main/java"
1100 "build/classes/META-INF/sisu/javax.inject.Named")
1102 (add-before 'build 'generate-models
1103 (lambda* (#:key inputs #:allow-other-keys)
1104 (define (modello-single-mode file version mode)
1105 (invoke "java" "org.codehaus.modello.ModelloCli"
1106 file mode "src/main/java" version
1108 (let ((file "src/main/mdo/toolchains.mdo"))
1109 (modello-single-mode file "1.1.0" "java")
1110 (modello-single-mode file "1.1.0" "xpp3-reader")
1111 (modello-single-mode file "1.1.0" "xpp3-writer"))
1114 `(("maven-artifact" ,maven-artifact)
1115 ("maven-resolver-provider" ,maven-resolver-provider)
1116 ("maven-builder-support" ,maven-builder-support)
1117 ("maven-model" ,maven-model)
1118 ("maven-model-builder" ,maven-model-builder)
1119 ("maven-settings" ,maven-settings)
1120 ("maven-settings-builder" ,maven-settings-builder)
1121 ("maven-plugin-api" ,maven-plugin-api)
1122 ("maven-repository-metadata" ,maven-repository-metadata)
1123 ("maven-shared-utils" ,maven-shared-utils)
1124 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1125 ("java-plexus-utils" ,java-plexus-utils)
1126 ("java-commons-lang3" ,java-commons-lang3)
1127 ("java-guava" ,java-guava)
1128 ("java-guice" ,java-guice)
1129 ("maven-resolver-api" ,maven-resolver-api)
1130 ("maven-resolver-spi" ,maven-resolver-spi)
1131 ("maven-resolver-util" ,maven-resolver-util)
1132 ("maven-resolver-impl" ,maven-resolver-impl)
1133 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1134 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1135 ("java-javax-inject" ,java-javax-inject)
1136 ("java-plexus-classworld" ,java-plexus-classworlds)))
1138 `(("java-modello-core" ,java-modello-core)
1139 ("java-cglib" ,java-cglib)
1140 ("java-asm" ,java-asm)
1141 ("java-plexus-classworlds" ,java-plexus-classworlds)
1142 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1143 ("java-sisu-build-api" ,java-sisu-build-api)
1144 ("java-modello-plugins-java" ,java-modello-plugins-java)
1145 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1146 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1148 ("java-junit" ,java-junit)
1149 ("java-mockito-1" ,java-mockito-1)
1150 ("java-commons-jxpath" ,java-commons-jxpath)))
1151 (description "Apache Maven is a software project management and comprehension
1152 tool. This package contains the maven core classes managing the whole build
1155 (define-public maven-core
1157 (inherit maven-core-bootstrap)
1159 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1161 `(modify-phases ,phases
1162 (add-before 'build 'modify-metainf
1164 (substitute* "build.xml"
1165 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1167 (add-before 'build 'add-maven-files
1169 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1170 (copy-file "pom.xml"
1171 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1172 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1174 (format #t "version=~a~%
1175 groupId=org.apache.maven~%
1176 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1178 (add-after 'build 'generate-metadata
1180 (define (components file)
1181 (let ((sxml (with-input-from-file file
1182 (lambda _ (xml->sxml (current-input-port)
1183 #:trim-whitespace? #t)))))
1184 ;; Select the list of <component>s inside the <component-set>
1185 ;; and <components>.
1186 ((@ (ice-9 match) match) sxml
1190 ('components x ...))) x))))
1191 (use-modules (sxml simple))
1192 (delete-file "build/classes/META-INF/plexus/components.xml")
1193 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1194 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1195 "--source" "build/classes/META-INF/plexus"
1196 "--output" "build/classes/META-INF/plexus/components.t.xml"
1197 "--classes" "build/classes"
1198 "--descriptors" "build/classes")
1199 ;; Now we merge all other components from hand-written xml
1200 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1201 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1202 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1203 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1204 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1206 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1210 ,@(append generated-xml components-xml
1211 default-bindings-xml
1212 artifact-handlers-xml)))))))
1214 (add-after 'generate-metadata 'rebuild
1216 (invoke "ant" "jar")
1219 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1220 ("java-commons-cli" ,java-commons-cli)
1221 ("java-plexus-cli" ,java-plexus-cli)
1222 ("java-jdom2" ,java-jdom2)
1223 ("java-qdox" ,java-qdox)
1224 ("maven-core-boot" ,maven-core-bootstrap)
1225 ,@(package-native-inputs maven-core-bootstrap)))))
1227 (define-public maven-embedder
1229 (inherit maven-artifact)
1230 (name "maven-embedder")
1232 `(#:jar-name "maven-embedder.jar"
1233 #:source-dir "maven-embedder/src/main/java"
1234 #:test-dir "maven-embedder/src/test"
1235 #:test-exclude (list "**/MavenCliTest.java")
1238 (modify-phases %standard-phases
1239 (add-before 'build 'generate-sisu-named
1241 (mkdir-p "build/classes/META-INF/sisu")
1242 (chmod "sisu.sh" #o755)
1243 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1244 "build/classes/META-INF/sisu/javax.inject.Named")
1246 (add-before 'build 'generate-models
1247 (lambda* (#:key inputs #:allow-other-keys)
1248 (define (modello-single-mode file version mode)
1249 (invoke "java" "org.codehaus.modello.ModelloCli"
1250 file mode "maven-embedder/src/main/java" version
1252 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1253 (modello-single-mode file "1.0.0" "java")
1254 (modello-single-mode file "1.0.0" "xpp3-reader")
1255 (modello-single-mode file "1.0.0" "xpp3-writer"))
1257 (add-before 'check 'fix-test-paths
1259 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1260 (("target/test-classes") "build/test-classes"))
1262 (add-before 'check 'fix-test-compilation
1264 ;; Tests are in the java/ subdir. Other subdirectories contain
1265 ;; additional test plugins, with duplicate classes, so we can't
1266 ;; compile them. Also, they are meant to be built with maven, to
1267 ;; test its build process.
1268 (substitute* "build.xml"
1269 (("srcdir=\"maven-embedder/src/test\"")
1270 "srcdir=\"maven-embedder/src/test/java\""))
1273 `(("maven-core" ,maven-core)
1274 ("maven-artifact" ,maven-artifact)
1275 ("maven-plugin-api" ,maven-plugin-api)
1276 ("maven-builder-support" ,maven-builder-support)
1277 ("maven-model" ,maven-model)
1278 ("maven-model-builder" ,maven-model-builder)
1279 ("maven-settings" ,maven-settings)
1280 ("maven-settings-builder" ,maven-settings-builder)
1281 ("maven-shared-utils" ,maven-shared-utils)
1282 ("java-plexus-classworlds" ,java-plexus-classworlds)
1283 ("java-plexus-util" ,java-plexus-utils)
1284 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1285 ("java-plexus-cipher" ,java-plexus-cipher)
1286 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1287 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1288 ("maven-resolevr-util" ,maven-resolver-util)
1289 ("maven-resolevr-api" ,maven-resolver-api)
1290 ("java-logback-core" ,java-logback-core)
1291 ("java-logback-classic" ,java-logback-classic)
1292 ("java-commons-cli" ,java-commons-cli)
1293 ("java-commons-io" ,java-commons-io)
1294 ("java-commons-lang3" ,java-commons-lang3)
1295 ("java-guava" ,java-guava)
1296 ("java-guice" ,java-guice)
1297 ("java-javax-inject" ,java-javax-inject)
1298 ("java-slf4j-api" ,java-slf4j-api)
1299 ("java-slf4j-simple" ,java-slf4j-simple)))
1301 `(("java-modello-core" ,java-modello-core)
1302 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1303 ("java-sisu-build-api" ,java-sisu-build-api)
1304 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1305 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1306 ("java-cglib" ,java-cglib)
1307 ("java-asm" ,java-asm)
1308 ("java-modello-plugins-java" ,java-modello-plugins-java)
1309 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1310 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1312 ("java-junit" ,java-junit)
1313 ("java-objenesis" ,java-objenesis)
1314 ("java-mockito-1" ,java-mockito-1)
1315 ("java-hamcrest-core" ,java-hamcrest-core)))
1316 (description "Apache Maven is a software project management and comprehension
1317 tool. This package contains a Maven embeddable component, with CLI and
1318 logging support.")))
1320 (define-public maven-compat
1322 (inherit maven-artifact)
1323 (name "maven-compat")
1325 `(#:jar-name "maven-compat.jar"
1326 #:source-dir "src/main/java"
1328 #:test-dir "src/test"
1330 (modify-phases %standard-phases
1331 ;; Tests assume we're in this directory
1332 (add-before 'configure 'chdir
1334 (chdir "maven-compat")
1336 (add-before 'build 'recreate-removed-jar
1338 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1340 (with-directory-excursion "src/test/resources"
1341 (with-output-to-file "artifact-install/artifact-1.0.jar"
1343 (format #t "dummy~%")))
1346 (with-output-to-file file
1348 (format #t "foo~%"))))
1349 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1350 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1351 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1352 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1353 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1354 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1355 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1356 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1357 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1358 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1359 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1360 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1361 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1362 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1363 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1364 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1365 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1366 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1367 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1368 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1369 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1370 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1371 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1372 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1373 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1374 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1375 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1376 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1377 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1378 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1379 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1380 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1381 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1382 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1383 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1384 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1385 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1386 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1387 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1388 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1389 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1390 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1391 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1392 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1393 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1394 (with-directory-excursion "local-repo/snapshot-test/jars"
1397 (with-output-to-file file
1400 (format #t "local"))))
1401 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1402 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1403 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1406 (with-directory-excursion
1407 (string-append "src/test/remote-repo/org/apache/maven/its/"
1409 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1412 (copy-file (string-append letter "-0.1.pom")
1413 (string-append dir "/pom.xml"))
1414 (with-output-to-file (string-append dir "/pom.properties")
1416 (format #t "version=0.1~%")
1417 (format #t "groupId=org.apache.maven.its")
1418 (format #t (string-append "artifactId=" letter))))
1419 (with-output-to-file "META-INF/MANIFEST.MF"
1421 (format #t "Manifest-Version: 1.0~%"))))
1422 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1423 (string-append letter "-0.1.jar") "META-INF")))
1426 (add-before 'build 'generate-models
1427 (lambda* (#:key inputs #:allow-other-keys)
1428 (define (modello-single-mode file version mode)
1429 (invoke "java" "org.codehaus.modello.ModelloCli"
1430 file mode "src/main/java" version
1432 (let ((file "src/main/mdo/profiles.mdo"))
1433 (modello-single-mode file "1.0.0" "java")
1434 (modello-single-mode file "1.0.0" "xpp3-reader")
1435 (modello-single-mode file "1.0.0" "xpp3-writer"))
1436 (let ((file "src/main/mdo/paramdoc.mdo"))
1437 (modello-single-mode file "1.0.0" "java")
1438 (modello-single-mode file "1.0.0" "xpp3-reader")
1439 (modello-single-mode file "1.0.0" "xpp3-writer"))
1441 (add-after 'build 'generate-metadata
1443 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1444 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1445 "--source" "src/main/java"
1446 "--output" "build/classes/META-INF/plexus/components.xml"
1447 "--classes" "build/classes"
1448 "--descriptors" "build/classes/META-INF")
1450 (add-before 'check 'build-tests
1452 (invoke "ant" "compile-tests")
1454 (add-after 'build-tests 'generate-test-metadata
1456 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1458 ":build/test-classes")
1459 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1460 "--source" "src/test/java"
1461 "--output" "build/test-classes/META-INF/plexus/components.xml"
1462 "--classes" "build/test-classes"
1463 "--descriptors" "build/test-classes/META-INF")
1465 (add-after 'generate-metadata 'rebuild
1467 (invoke "ant" "jar")
1470 `(("maven-artifact" ,maven-artifact)
1471 ("maven-repository-metadata" ,maven-repository-metadata)
1472 ("maven-builder-support" ,maven-builder-support)
1473 ("maven-model" ,maven-model)
1474 ("maven-model-builder" ,maven-model-builder)
1475 ("maven-settings" ,maven-settings)
1476 ("maven-settings-builder" ,maven-settings-builder)
1477 ("maven-core" ,maven-core)
1478 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1479 ("maven-wagon-file" ,maven-wagon-file)
1480 ("maven-resolver-api" ,maven-resolver-api)
1481 ("maven-resolver-util" ,maven-resolver-util)
1482 ("maven-resolver-spi" ,maven-resolver-spi)
1483 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1485 `(("java-modello-core" ,java-modello-core)
1486 ("java-plexus-utils" ,java-plexus-utils)
1487 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1488 ("java-plexus-classworlds" ,java-plexus-classworlds)
1489 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1490 ("java-sisu-build-api" ,java-sisu-build-api)
1491 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1492 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1493 ("java-javax-inject" ,java-javax-inject)
1494 ("java-guice" ,java-guice)
1495 ("java-guava" ,java-guava)
1496 ("java-cglib" ,java-cglib)
1497 ("java-asm" ,java-asm)
1498 ("java-modello-plugins-java" ,java-modello-plugins-java)
1499 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1500 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1502 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1503 ("java-commons-cli" ,java-commons-cli)
1504 ("java-plexus-cli" ,java-plexus-cli)
1505 ("java-jdom2" ,java-jdom2)
1506 ("maven-plugin-api" ,maven-plugin-api)
1507 ("java-qdox" ,java-qdox)
1509 ("java-plexus-cipher" ,java-plexus-cipher)
1510 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1511 ("java-jsr250" ,java-jsr250)
1512 ("java-cdi-api" ,java-cdi-api)
1513 ("java-junit" ,java-junit)
1514 ("maven-resolver-impl" ,maven-resolver-impl)
1515 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1516 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1517 ("java-commons-lang3" ,java-commons-lang3)
1518 ("java-aop" ,java-aopalliance)
1519 ("maven-resolver-provider" ,maven-resolver-provider)
1520 ("java-slf4j-api" ,java-slf4j-api)
1521 ("java-slf4j-simple" ,java-slf4j-simple)
1522 ,@(package-inputs java-slf4j-api)))
1523 (description "Apache Maven is a software project management and comprehension
1524 tool. This package contains Maven2 classes maintained as compatibility
1525 layer for plugins that need to keep Maven2 compatibility.")))
1527 (define-public maven
1529 (inherit maven-artifact)
1533 (modify-phases %standard-phases
1535 (lambda* (#:key inputs #:allow-other-keys)
1536 ;; Recreate the configuration for the loader
1537 (with-output-to-file "apache-maven/src/bin/m2.conf"
1539 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1541 (format #t "set maven.conf default ${maven.home}/conf~%")
1543 (format #t "[plexus.core]~%")
1544 (format #t "load ${maven.conf}/logging~%")
1545 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1546 ;; Reference every jar so plexus-classworlds can find them.
1548 (lambda (dependency)
1549 (format #t "load ~a/share/java/*.jar~%"
1550 (assoc-ref inputs dependency)))
1551 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1552 "maven-builder-support" "maven-model" "maven-model-builder"
1553 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1554 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1555 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1556 "maven-resolver-connector-basic" "maven-resolver-provider"
1557 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1558 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1559 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1560 "maven-wagon-http-shared" "maven-wagon-tck-http"
1561 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1562 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1563 "java-javax-inject" "java-plexus-component-annotations"
1564 "java-plexus-utils" "java-plexus-interpolation"
1565 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1566 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1567 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1568 "java-slf4j-simple"))))
1569 (substitute* "apache-maven/src/bin/mvn"
1574 (assoc-ref inputs "java-plexus-classworlds")
1577 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1581 (lambda* (#:key outputs #:allow-other-keys)
1582 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1583 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1584 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1585 (for-each (lambda (file)
1586 (install-file (string-append "apache-maven/src/bin/" file)
1588 (chmod (string-append bin file) #o755))
1589 '("mvn" "mvnDebug" "mvnyjp"))
1590 (install-file "apache-maven/src/bin/m2.conf" bin)
1591 (copy-recursively "apache-maven/src/conf" conf))
1594 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1595 ("maven-artifact" ,maven-artifact)
1596 ("maven-embedder" ,maven-embedder)
1597 ("maven-core" ,maven-core)
1598 ("maven-compat" ,maven-compat)
1599 ("maven-builder-support" ,maven-builder-support)
1600 ("maven-model" ,maven-model)
1601 ("maven-model-builder" ,maven-model-builder)
1602 ("maven-settings" ,maven-settings)
1603 ("maven-settings-builder" ,maven-settings-builder)
1604 ("maven-plugin-api" ,maven-plugin-api)
1605 ("maven-repository-metadata" ,maven-repository-metadata)
1606 ("maven-shared-utils" ,maven-shared-utils)
1607 ("maven-resolver-api" ,maven-resolver-api)
1608 ("maven-resolver-spi" ,maven-resolver-spi)
1609 ("maven-resolver-util" ,maven-resolver-util)
1610 ("maven-resolver-impl" ,maven-resolver-impl)
1611 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1612 ("maven-resolver-provider" ,maven-resolver-provider)
1613 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1614 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1615 ("maven-wagon-file" ,maven-wagon-file)
1616 ("maven-wagon-http" ,maven-wagon-http)
1617 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1618 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
1619 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
1620 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
1621 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
1622 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1623 ("java-guice" ,java-guice)
1624 ("java-aopalliance" ,java-aopalliance)
1625 ("java-cglib" ,java-cglib)
1626 ("java-asm" ,java-asm)
1627 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1628 ("java-javax-inject" ,java-javax-inject)
1629 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1630 ("java-plexus-utils" ,java-plexus-utils)
1631 ("java-plexus-interpolation" ,java-plexus-interpolation)
1632 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1633 ("java-plexus-cipher" ,java-plexus-cipher)
1634 ("java-guava" ,java-guava)
1635 ("java-jansi" ,java-jansi)
1636 ("java-jsr250" ,java-jsr250)
1637 ("java-cdi-api" ,java-cdi-api)
1638 ("java-commons-cli" ,java-commons-cli)
1639 ("java-commons-io" ,java-commons-io)
1640 ("java-commons-lang3" ,java-commons-lang3)
1641 ("java-slf4j-api" ,java-slf4j-api)
1642 ;; TODO: replace with maven-slf4j-provider
1643 ("java-slf4j-simple" ,java-slf4j-simple)))
1645 `(("coreutils" ,coreutils)
1647 (description "Apache Maven is a software project management and comprehension
1648 tool. Based on the concept of a project object model: builds, dependency
1649 management, documentation creation, site publication, and distribution
1650 publication are all controlled from the @file{pom.xml} declarative file. Maven
1651 can be extended by plugins to utilise a number of other development tools for
1652 reporting or the build process.")))