1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
3 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
6 ;;; This file is part of GNU Guix.
8 ;;; GNU Guix is free software; you can redistribute it and/or modify it
9 ;;; under the terms of the GNU General Public License as published by
10 ;;; the Free Software Foundation; either version 3 of the License, or (at
11 ;;; your option) any later version.
13 ;;; GNU Guix is distributed in the hope that it will be useful, but
14 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ;;; GNU General Public License for more details.
18 ;;; You should have received a copy of the GNU General Public License
19 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 (define-module (gnu packages maven)
22 #:use-module ((guix licenses) #:prefix license:)
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix git-download)
26 #:use-module (guix utils)
27 #:use-module (guix build-system ant)
28 #:use-module (gnu packages)
29 #:use-module (gnu packages base)
30 #:use-module (gnu packages compression)
31 #:use-module (gnu packages java)
32 #:use-module (gnu packages web)
33 #:use-module (gnu packages xml))
35 (define-public java-plexus-component-metadata
37 (inherit java-plexus-container-default)
38 (name "java-plexus-component-metadata")
40 `(#:jar-name "plexus-component-metadata.jar"
41 #:source-dir "src/main/java"
45 (modify-phases %standard-phases
46 (add-before 'configure 'chdir
48 (chdir "plexus-component-metadata")
50 (add-before 'build 'copy-resources
52 (copy-recursively "src/main/resources"
56 `(("java-plexus-container-default" ,java-plexus-container-default)
57 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
58 ("java-plexus-utils" ,java-plexus-utils)
59 ("java-plexus-cli" ,java-plexus-cli)
60 ("java-plexus-classworlds" ,java-plexus-classworlds)
61 ("maven-plugin-api" ,maven-plugin-api)
62 ("maven-plugin-annotations" ,maven-plugin-annotations)
63 ("maven-core-bootstrap" ,maven-core-bootstrap)
64 ("maven-model" ,maven-model)
65 ("java-commons-cli" ,java-commons-cli)
66 ("java-qdox" ,java-qdox)
67 ("java-jdom2" ,java-jdom2)
68 ("java-asm" ,java-asm)))
70 `(("java-junit" ,java-junit)
71 ("java-guava" ,java-guava)
72 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
73 (synopsis "Inversion-of-control container for Maven")
74 (description "The Plexus project provides a full software stack for creating
75 and executing software projects. Based on the Plexus container, the
76 applications can utilise component-oriented programming to build modular,
77 reusable components that can easily be assembled and reused. This package
78 provides the Maven plugin generating the component metadata.")))
80 (define-public maven-resolver-api
82 (name "maven-resolver-api")
87 (url "https://github.com/apache/maven-resolver.git")
88 (commit (string-append "maven-resolver-" version))))
89 (file-name (git-file-name name version))
92 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
93 (build-system ant-build-system)
95 `(#:jar-name "maven-resolver-api.jar"
96 #:source-dir "maven-resolver-api/src/main/java"
97 #:test-dir "maven-resolver-api/src/test"))
99 `(("java-asm" ,java-asm)
100 ("java-cglib" ,java-cglib)
101 ("java-hamcrest-core" ,java-hamcrest-core)
102 ("java-junit" ,java-junit)
103 ("java-mockito-1" ,java-mockito-1)
104 ("java-objenesis" ,java-objenesis)))
105 (home-page "https://github.com/apache/maven-resolver")
106 (synopsis "Maven repository system API")
107 (description "This package contains the API for the maven repository system.")
108 (license license:asl2.0)))
110 (define-public maven-resolver-spi
112 (inherit maven-resolver-api)
113 (name "maven-resolver-spi")
115 `(#:jar-name "maven-resolver-spi.jar"
116 #:source-dir "maven-resolver-spi/src/main/java"
117 #:test-dir "maven-resolver-spi/src/test"
120 `(("maven-resolver-api" ,maven-resolver-api)))
121 (synopsis "Maven repository system SPI")
122 (description "This package contains the service provider interface (SPI)
123 for repository system implementations and repository connectors.")))
125 (define-public maven-resolver-test-util
127 (inherit maven-resolver-api)
128 (name "maven-resolver-test-util")
130 `(#:jar-name "maven-resolver-test-util.jar"
131 #:source-dir "maven-resolver-test-util/src/main/java"
132 #:test-dir "maven-resolver-test-util/src/test"
135 `(("maven-resolver-api" ,maven-resolver-api)
136 ("maven-resolver-spi" ,maven-resolver-spi)))
137 (synopsis "Utility classes for testing the maven repository system")
138 (description "This package contains a collection of utility classes to
139 ease testing of the repository system.")))
141 (define-public maven-resolver-util
143 (inherit maven-resolver-api)
144 (name "maven-resolver-util")
146 `(#:jar-name "maven-resolver-util.jar"
147 #:source-dir "maven-resolver-util/src/main/java"
148 #:test-dir "maven-resolver-util/src/test"
151 `(("maven-resolver-api" ,maven-resolver-api)))
153 `(("java-junit" ,java-junit)
154 ("java-hamcrest-core" ,java-hamcrest-core)
155 ("maven-resolver-test-util" ,maven-resolver-test-util)))
156 (synopsis "Utility classes for the maven repository system")
157 (description "This package contains a collection of utility classes to
158 ease usage of the repository system.")))
160 (define-public maven-resolver-connector-basic
162 (inherit maven-resolver-api)
163 (name "maven-resolver-connector-basic")
165 `(#:jar-name "maven-resolver-connector-basic.jar"
166 #:source-dir "maven-resolver-connector-basic/src/main/java"
167 #:test-dir "maven-resolver-connector-basic/src/test"
170 (modify-phases %standard-phases
171 (add-before 'build 'generate-sisu
173 (mkdir-p "build/classes/META-INF/sisu")
174 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
176 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
179 `(("maven-resolver-api" ,maven-resolver-api)
180 ("maven-resolver-spi" ,maven-resolver-spi)
181 ("maven-resolver-util" ,maven-resolver-util)
182 ("java-javax-inject" ,java-javax-inject)
183 ("java-slf4j-api" ,java-slf4j-api)))
185 `(("java-junit" ,java-junit)
186 ("java-hamcrest-core" ,java-hamcrest-core)
187 ("maven-resolver-test-util" ,maven-resolver-test-util)))
188 (synopsis "Maven repository connector implementation")
189 (description "This package contains a repository connector implementation
190 for repositories using URI-based layouts.")))
192 (define-public maven-resolver-impl
194 (inherit maven-resolver-api)
195 (name "maven-resolver-impl")
197 `(#:jar-name "maven-resolver-impl.jar"
198 #:source-dir "maven-resolver-impl/src/main/java"
199 #:test-dir "maven-resolver-impl/src/test"
202 (modify-phases %standard-phases
203 (add-before 'build 'generate-sisu
205 (mkdir-p "build/classes/META-INF/sisu")
206 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
210 ;; Build this list by looking for files containing "@Named"
211 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
212 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
213 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
214 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
215 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
216 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
217 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
218 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
219 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
220 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
221 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
222 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
223 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
224 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
225 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
226 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
227 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
228 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
229 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
230 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
231 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
232 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
233 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
236 `(("maven-resolver-api" ,maven-resolver-api)
237 ("maven-resolver-spi" ,maven-resolver-spi)
238 ("maven-resolver-util" ,maven-resolver-util)
239 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
240 ("java-javax-inject" ,java-javax-inject)
241 ("java-guice" ,java-guice)
242 ("java-guava" ,java-guava)
243 ("java-cglib" ,java-cglib)
244 ("java-asm" ,java-asm)
245 ("jajva-aopalliance" ,java-aopalliance)
246 ("java-slf4j-api" ,java-slf4j-api)))
248 `(("java-junit" ,java-junit)
249 ("java-hamcrest-core" ,java-hamcrest-core)
250 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
252 (define-public maven-resolver-transport-wagon
254 (inherit maven-resolver-api)
255 (name "maven-resolver-transport-wagon")
257 `(#:jar-name "maven-resolver-transport-wagon.jar"
258 #:source-dir "maven-resolver-transport-wagon/src/main/java"
259 #:test-dir "maven-resolver-transport-wagon/src/test"
262 (modify-phases %standard-phases
263 (add-before 'build 'generate-sisu
265 (mkdir-p "build/classes/META-INF/sisu")
266 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
268 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
270 (add-before 'build 'generate-components.xml
272 (mkdir-p "build/classes/META-INF/plexus")
273 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
277 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
281 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
282 <role-hint>plexus</role-hint>
283 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
285 <isolated-realm>false</isolated-realm>
288 <role>org.codehaus.plexus.PlexusContainer</role>
290 <field-name>container</field-name>
295 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
296 <role-hint>plexus</role-hint>
297 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
299 <isolated-realm>false</isolated-realm>
302 <role>org.codehaus.plexus.PlexusContainer</role>
304 <field-name>container</field-name>
309 </component-set>\n"))))
312 `(("maven-resolver-api" ,maven-resolver-api)
313 ("maven-resolver-spi" ,maven-resolver-spi)
314 ("maven-resolver-util" ,maven-resolver-util)
315 ("java-javax-inject" ,java-javax-inject)
316 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
317 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
318 ("java-plexus-classworld" ,java-plexus-classworlds)
319 ("java-plexus-plexus-util" ,java-plexus-utils)
320 ("java-slf4j-api" ,java-slf4j-api)
321 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
322 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
324 `(("java-junit" ,java-junit)
325 ("java-hamcrest-core" ,java-hamcrest-core)
326 ("maven-resolver-test-util" ,maven-resolver-test-util)
327 ("java-guava" ,java-guava)
328 ("java-cglib" ,java-cglib)
329 ("java-asm" ,java-asm)
330 ("java-aopalliance" ,java-aopalliance)
331 ("java-guice" ,java-guice)))
332 (synopsis "Transport implementation for Maven")
333 (description "This package contains a transport implementation based on
334 Maven Wagon, for use in Maven.")))
336 (define-public maven-shared-utils
338 (name "maven-shared-utils")
342 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
343 "maven-shared-utils-" version "-source-release.zip"))
346 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
347 (build-system ant-build-system)
349 `(#:jar-name "maven-shared-utils.jar"
350 #:source-dir "src/main/java"
353 (modify-phases %standard-phases
354 (add-before 'check 'remove-cyclic-dep
357 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
360 `(("java-jansi" ,java-jansi)
361 ("java-commons-io" ,java-commons-io)
362 ("java-jsr305" ,java-jsr305)
363 ("java-plexus-container-default" ,java-plexus-container-default)))
366 ("java-junit" ,java-junit)
367 ("java-hamcrest-core" ,java-hamcrest-core)
368 ("java-commons-lang3" ,java-commons-lang3)))
369 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
370 (synopsis "Plexus-util replacement for maven")
371 (description "This project aims to be a functional replacement for
372 plexus-utils in Maven. It is not a 100% API compatible replacement but a
373 replacement with improvements.")
374 (license license:asl2.0)))
376 (define-public maven-plugin-annotations
378 (name "maven-plugin-annotations")
382 (uri (string-append "https://archive.apache.org/dist/maven/"
383 "plugin-tools/maven-plugin-tools-" version
384 "-source-release.zip"))
385 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
386 (build-system ant-build-system)
388 `(#:jar-name "maven-plugin-annotations.jar"
389 #:source-dir "maven-plugin-annotations/src/main/java"
392 `(("maven-artifact" ,maven-artifact)))
395 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
396 (synopsis "Java 5 annotations to use in Mojos")
397 (description "This package contains Java 5 annotations for use in Mojos.")
398 (license license:asl2.0)))
400 (define-public maven-wagon-provider-api
402 (name "maven-wagon-provider-api")
406 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
407 "wagon-" version "-source-release.zip"))
408 (sha256 (base32 "0r07j6xdzdnrvqnv8ida7dx1m05pznh5qgmcfcfpyvg9nxbj3l1n"))))
409 (build-system ant-build-system)
411 `(#:jar-name "maven-wagon-provider-api.jar"
412 #:source-dir "wagon-provider-api/src/main/java"
413 #:test-dir "wagon-provider-api/src/test"))
415 `(("java-plexus-utils" ,java-plexus-utils)))
418 ("java-junit" ,java-junit)
419 ("java-easymock" ,java-easymock)))
420 (home-page "https://maven.apache.org/wagon")
421 (synopsis "Transport abstraction for Maven")
422 (description "Maven Wagon is a transport abstraction that is used in Maven's
423 artifact and repository handling code.")
424 (license license:asl2.0)))
426 (define-public maven-wagon-provider-test
428 (inherit maven-wagon-provider-api)
429 (name "maven-wagon-provider-test")
431 `(#:jar-name "maven-wagon-provider-test.jar"
432 #:source-dir "wagon-provider-test/src/main/java"
433 #:tests? #f; no tests
436 `(("java-plexus-utils" ,java-plexus-utils)
437 ("java-plexus-container-default" ,java-plexus-container-default)
438 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
439 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
440 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
441 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
442 ("java-slf4j-api" ,java-slf4j-api)
443 ("java-javaee-servletapi" ,java-javaee-servletapi)
444 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
445 (synopsis "Test classes from maven-wagon")
446 (description "Maven Wagon is a transport abstraction that is used in Maven's
447 artifact and repository handling code. This package contains common test
448 classes used in multiple maven-wagon components.")))
450 (define-public maven-wagon-file
452 (inherit maven-wagon-provider-api)
453 (name "maven-wagon-file")
455 `(#:jar-name "maven-wagon-file.jar"
456 #:source-dir "wagon-providers/wagon-file/src/main/java"
457 #:test-dir "wagon-providers/wagon-file/src/test"
460 (modify-phases %standard-phases
461 (add-before 'check 'fix-paths
463 ;; Tests assume they are run by maven, which copies test resources
464 ;; to target. Our ant-build-system does the same, but with the
466 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
467 (("target") "build"))
469 (add-after 'build 'generate-metadata
471 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
472 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
473 "--source" "wagon-providers/wagon-file/src/main/java"
474 "--output" "build/classes/META-INF/plexus/components.xml"
475 "--classes" "build/classes"
476 "--descriptors" "build/classes/META-INF")
478 (add-after 'generate-metadata 'rebuild
483 `(("java-plexus-utils" ,java-plexus-utils)
484 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
486 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
487 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
488 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
489 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
490 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
491 ("java-plexus-classworlds" ,java-plexus-classworlds)
492 ("java-guava" ,java-guava)
493 ("java-guice" ,java-guice)
494 ("java-javax-inject" ,java-javax-inject)
495 ("java-cglib" ,java-cglib)
496 ("java-slf4j-api" ,java-slf4j-api)
497 ("java-plexus-utils" ,java-plexus-utils)
498 ("java-plexus-cli" ,java-plexus-cli)
499 ("maven-plugin-api" ,maven-plugin-api)
500 ("maven-plugin-annotations" ,maven-plugin-annotations)
501 ("maven-core" ,maven-core)
502 ("maven-model" ,maven-model)
503 ("java-commons-cli" ,java-commons-cli)
504 ("java-qdox" ,java-qdox)
505 ("java-jdom2" ,java-jdom2)
506 ("java-asm" ,java-asm)
507 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
508 ,@(package-native-inputs maven-wagon-provider-api)))
509 (synopsis "Wagon provider that gets and puts artifacts using the file system")
510 (description "Maven Wagon is a transport abstraction that is used in Maven's
511 artifact and repository handling code. It uses providers, that are tools to
512 manage artifacts and deployment. This package contains the file provider which
513 gets and puts artifacts using the file system.")))
515 (define-public maven-wagon-tck-http
517 (inherit maven-wagon-provider-api)
518 (name "maven-wagon-tck-http")
520 `(#:jar-name "maven-wagon-tck-http.jar"
521 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
522 #:tests? #f; no tests
525 `(("java-plexus-util" ,java-plexus-utils)
526 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
527 ("java-javaee-servletapi" ,java-javaee-servletapi)
528 ("java-slf4j-api" ,java-slf4j-api)
529 ("java-commons-codec" ,java-commons-codec)
530 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
531 ("java-plexus-classworlds" ,java-plexus-classworlds)
532 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
533 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
534 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
535 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
536 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
537 (synopsis "Wagon HTTP Test Compatibility Kit")
538 (description "Maven Wagon is a transport abstraction that is used in Maven's
539 artifact and repository handling code. This package contains the HTTP
540 Test Compatibility Kit.")))
542 (define-public maven-wagon-http-shared
544 (inherit maven-wagon-provider-api)
545 (name "maven-wagon-http-shared")
547 `(#:jar-name "maven-wagon-http-shared.jar"
548 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
549 #:test-dir "wagon-providers/wagon-http-shared/src/test"
552 (modify-phases %standard-phases
553 (add-after 'build 'generate-metadata
555 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
556 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
557 "--source" "wagon-providers/wagon-http-shared/src/main/java"
558 "--output" "build/classes/META-INF/plexus/components.xml"
559 "--classes" "build/classes"
560 "--descriptors" "build/classes/META-INF")
562 (add-after 'generate-metadata 'rebuild
567 `(("java-plexus-utils" ,java-plexus-utils)
568 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
569 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
570 ("java-commons-io" ,java-commons-io)
571 ("java-jsoup" ,java-jsoup)
572 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
574 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
575 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
576 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
577 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
578 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
579 ("java-plexus-classworlds" ,java-plexus-classworlds)
580 ("java-guava" ,java-guava)
581 ("java-guice" ,java-guice)
582 ("java-javax-inject" ,java-javax-inject)
583 ("java-cglib" ,java-cglib)
584 ("java-slf4j-api" ,java-slf4j-api)
585 ("java-plexus-utils" ,java-plexus-utils)
586 ("java-plexus-cli" ,java-plexus-cli)
587 ("maven-plugin-api" ,maven-plugin-api)
588 ("maven-plugin-annotations" ,maven-plugin-annotations)
589 ("maven-core" ,maven-core)
590 ("maven-model" ,maven-model)
591 ("java-commons-cli" ,java-commons-cli)
592 ("java-qdox" ,java-qdox)
593 ("java-jdom2" ,java-jdom2)
594 ("java-asm" ,java-asm)
595 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
596 ,@(package-native-inputs maven-wagon-provider-api)))
597 (synopsis "Shared Library for wagon providers supporting HTTP.")
598 (description "Maven Wagon is a transport abstraction that is used in Maven's
599 artifact and repository handling code. It uses providers, that are tools to
600 manage artifacts and deployment. This package contains a shared library for
601 wagon providers supporting HTTP.")))
603 (define-public maven-wagon-http
605 (inherit maven-wagon-provider-api)
606 (name "maven-wagon-http")
608 `(#:jar-name "maven-wagon-http.jar"
609 #:source-dir "wagon-providers/wagon-http/src/main/java"
610 #:test-dir "wagon-providers/wagon-http/src/test"
613 ;; FIXME: javax.net.ssl.SSLHandshakeException:
614 ;; sun.security.validator.ValidatorException:
615 ;; PKIX path building failed:
616 ;; sun.security.provider.certpath.SunCertPathBuilderException:
617 ;; unable to find valid certification path to requested target
618 "**/HttpsWagonPreemptiveTest.java"
619 "**/HttpsWagonTest.java"
624 (modify-phases %standard-phases
625 (add-before 'build 'copy-resources
627 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
628 "build/classes/META-INF/plexus")
630 (add-before 'check 'fix-resource-path
632 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
633 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
634 (("src/test") "wagon-providers/wagon-http/src/test"))
637 `(("java-plexus-utils" ,java-plexus-utils)
638 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
639 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
640 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
641 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
642 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
644 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
645 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
646 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
647 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
648 ("java-plexus-container-default" ,java-plexus-container-default)
649 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
650 ("java-plexus-classworlds" ,java-plexus-classworlds)
651 ("java-guava" ,java-guava)
652 ("java-guice" ,java-guice)
653 ("java-inject" ,java-javax-inject)
654 ("java-cglib" ,java-cglib)
655 ("java-slf4j-api" ,java-slf4j-api)
656 ("java-plexus-utils" ,java-plexus-utils)
657 ("java-plexus-cli" ,java-plexus-cli)
658 ("maven-plugin-api" ,maven-plugin-api)
659 ("maven-plugin-annotations" ,maven-plugin-annotations)
660 ("maven-core" ,maven-core)
661 ("maven-model" ,maven-model)
662 ("java-commons-cli" ,java-commons-cli)
663 ("java-qdox" ,java-qdox)
664 ("java-jdom2" ,java-jdom2)
665 ("java-asm" ,java-asm)
666 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
667 ("java-javaee-servletapi" ,java-javaee-servletapi)
668 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
669 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
670 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
671 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
672 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
673 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
674 ("java-hamcrest-core" ,java-hamcrest-core)
675 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
676 ("java-commons-codec" ,java-commons-codec)
677 ("java-commons-io" ,java-commons-io)
678 ("java-jsoup" ,java-jsoup)
679 ("java-slf4j-simple" ,java-slf4j-simple)
680 ,@(package-native-inputs maven-wagon-provider-api)))
681 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
682 (description "Maven Wagon is a transport abstraction that is used in Maven's
683 artifact and repository handling code. It uses providers, that are tools to
684 manage artifacts and deployment. This package contains a Wagon provider that
685 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
687 (define-public maven-artifact
689 (name "maven-artifact")
693 (uri (string-append "https://archive.apache.org/dist/maven/"
694 "maven-3/" version "/source/"
695 "apache-maven-" version "-src.tar.gz"))
696 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
697 (modules '((guix build utils)))
700 (for-each delete-file (find-files "." "\\.jar$"))
703 (search-patches "maven-generate-component-xml.patch"
704 "maven-generate-javax-inject-named.patch"))))
705 (build-system ant-build-system)
707 `(#:jar-name "maven-artifact.jar"
708 #:source-dir "maven-artifact/src/main/java"
709 #:test-dir "maven-artifact/src/test"
710 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"))
712 `(("java-plexus-utils" ,java-plexus-utils)
713 ("java-commons-lang3" ,java-commons-lang3)))
715 `(("java-junit" ,java-junit)))
716 (home-page "https://maven.apache.org/")
717 (synopsis "Build system")
718 (description "Apache Maven is a software project management and comprehension
719 tool. This package contains the Maven Artifact classes, providing the
720 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
721 jar file is executable and provides a little tool to display how Maven parses
722 and compares versions:")
723 (license license:asl2.0)))
725 (define-public maven-model
727 (inherit maven-artifact)
730 `(#:jar-name "maven-model.jar"
731 #:source-dir "maven-model/src/main/java"
732 #:test-dir "maven-model/src/test"
735 (modify-phases %standard-phases
736 (add-before 'build 'generate-models
737 (lambda* (#:key inputs #:allow-other-keys)
738 (define (modello-single-mode file version mode)
739 (invoke "java" "org.codehaus.modello.ModelloCli"
740 file mode "maven-model/src/main/java" version
742 (let ((file "maven-model/src/main/mdo/maven.mdo"))
743 (modello-single-mode file "4.0.0" "java")
744 (modello-single-mode file "4.0.0" "xpp3-reader")
745 (modello-single-mode file "4.0.0" "xpp3-writer")
746 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
749 `(("java-commons-lang3" ,java-commons-lang3)
750 ("java-plexus-utils" ,java-plexus-utils)))
752 `(("java-modello-core" ,java-modello-core)
754 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
755 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
756 ("java-guice" ,java-guice)
757 ("java-cglib" ,java-cglib)
758 ("java-asm" ,java-asm)
759 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
760 ("java-javax-inject" ,java-javax-inject)
761 ("java-plexus-classworlds" ,java-plexus-classworlds)
762 ("java-guava" ,java-guava)
763 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
764 ("java-sisu-build-api" ,java-sisu-build-api)
766 ("java-modello-plugins-java" ,java-modello-plugins-java)
767 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
768 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
770 ("java-junit" ,java-junit)))
771 (description "Apache Maven is a software project management and comprehension
772 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
773 so really just plain Java objects.")))
775 (define-public maven-builder-support
777 (inherit maven-artifact)
778 (name "maven-builder-support")
780 `(#:jar-name "maven-builder-support.jar"
781 #:source-dir "maven-builder-support/src/main/java"
783 #:test-dir "maven-builder-support/src/test"
785 (modify-phases %standard-phases
786 (add-before 'check 'fix-paths
788 (with-directory-excursion "maven-builder-support/src/test/java"
790 '("org/apache/maven/building/FileSourceTest.java"
791 "org/apache/maven/building/UrlSourceTest.java")
792 (("target/test-classes") "maven-builder-support/src/test/resources")))
795 `(("java-plexus-utils" ,java-plexus-utils)
796 ("java-commons-lang3" ,java-commons-lang3)))
798 `(("java-junit" ,java-junit)
799 ("java-hamcrest-core" ,java-hamcrest-core)))
800 (description "Apache Maven is a software project management and comprehension
801 tool. This package contains a support library for descriptor builders (model,
802 setting, toolchains)")))
804 (define-public maven-settings
806 (inherit maven-artifact)
807 (name "maven-settings")
809 `(#:jar-name "maven-settings.jar"
810 #:source-dir "maven-settings/src/main/java"
812 #:tests? #f; no tests
814 (modify-phases %standard-phases
815 (add-before 'build 'generate-models
816 (lambda* (#:key inputs #:allow-other-keys)
817 (define (modello-single-mode file version mode)
818 (invoke "java" "org.codehaus.modello.ModelloCli"
819 file mode "maven-settings/src/main/java" version
821 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
822 (modello-single-mode file "1.1.0" "java")
823 (modello-single-mode file "1.1.0" "xpp3-reader")
824 (modello-single-mode file "1.1.0" "xpp3-writer"))
828 `(("java-modello-core" ,java-modello-core)
830 ;("container" ,java-plexus-container-default)
831 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
832 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
833 ("java-guice" ,java-guice)
834 ("java-cglib" ,java-cglib)
835 ("java-asm" ,java-asm)
836 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
837 ("java-javax-inject" ,java-javax-inject)
838 ("java-plexus-classworlds" ,java-plexus-classworlds)
839 ("java-plexus-utils" ,java-plexus-utils)
840 ("java-guava" ,java-guava)
841 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
842 ("java-sisu-build-api" ,java-sisu-build-api)
844 ("java-modello-plugins-java" ,java-modello-plugins-java)
845 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
846 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
847 (description "Apache Maven is a software project management and comprehension
848 tool. This package contains strictly the model for Maven settings, that is
849 simply plain java objects.")))
851 (define-public maven-settings-builder
853 (inherit maven-artifact)
854 (name "maven-settings-builder")
856 `(#:jar-name "maven-settings-builder.jar"
857 #:source-dir "maven-settings-builder/src/main/java"
859 #:test-dir "maven-settings-builder/src/test"
861 (modify-phases %standard-phases
862 (add-before 'build 'generate-components.xml
864 (mkdir-p "build/classes/META-INF/plexus")
865 (chmod "components.sh" #o755)
866 (invoke "./components.sh" "maven-settings-builder/src/main/java"
867 "build/classes/META-INF/plexus/components.xml")
870 `(("java-plexus-utils" ,java-plexus-utils)
871 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
872 ("java-plexus-interpolation" ,java-plexus-interpolation)
873 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
874 ("maven-builder-support" ,maven-builder-support)
875 ("maven-settings" ,maven-settings)
876 ("java-commons-lang3" ,java-commons-lang3)))
878 `(("java-junit" ,java-junit)))
879 (description "Apache Maven is a software project management and comprehension
880 tool. This package contains the effective model builder, with profile activation,
881 inheritance, interpolation, @dots{}")))
883 (define-public maven-model-builder
885 (inherit maven-artifact)
886 (name "maven-model-builder")
888 `(#:jar-name "maven-model-builder.jar"
889 #:source-dir "maven-model-builder/src/main/java"
891 #:test-dir "maven-model-builder/src/test"
893 (modify-phases %standard-phases
894 (add-before 'build 'copy-resources
896 (copy-recursively "maven-model-builder/src/main/resources"
899 (add-before 'build 'generate-components.xml
901 (mkdir-p "build/classes/META-INF/plexus")
902 (chmod "components.sh" #o755)
903 (invoke "./components.sh" "maven-model-builder/src/main/java"
904 "build/classes/META-INF/plexus/components.xml")
906 (add-before 'check 'fix-paths
908 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
909 (("src/test") "maven-model-builder/src/test"))
912 `(("model" ,maven-model)
913 ("artifact" ,maven-artifact)
914 ("support" ,maven-builder-support)
915 ("annotations" ,java-plexus-component-annotations)
916 ("utils" ,java-plexus-utils)
917 ("interpolation" ,java-plexus-interpolation)
918 ("lang3" ,java-commons-lang3)
919 ("guava" ,java-guava)))
921 `(("java-junit" ,java-junit)
922 ("java-hamcrest-core" ,java-hamcrest-core)
923 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
924 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
925 ("guice" ,java-guice)
926 ("java-cglib" ,java-cglib)
927 ("java-asm" ,java-asm)
928 ("sisu-inject" ,java-eclipse-sisu-inject)
929 ("javax-inject" ,java-javax-inject)
930 ("java-xmlunit" ,java-xmlunit)
931 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
932 ("xbean" ,java-geronimo-xbean-reflect)
933 ("classworlds" ,java-plexus-classworlds)))
934 (description "Apache Maven is a software project management and comprehension
935 tool. This package contains the effective model builder, with profile activation,
936 inheritance, interpolation, @dots{}")))
938 (define-public maven-repository-metadata
940 (inherit maven-artifact)
941 (name "maven-repository-metadata")
943 `(#:jar-name "maven-repository-metadata.jar"
944 #:source-dir "maven-repository-metadata/src/main/java"
946 #:tests? #f; no tests
948 (modify-phases %standard-phases
949 (add-before 'build 'generate-models
950 (lambda* (#:key inputs #:allow-other-keys)
951 (define (modello-single-mode file version mode)
952 (invoke "java" "org.codehaus.modello.ModelloCli"
953 file mode "maven-repository-metadata/src/main/java" version
955 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
956 (modello-single-mode file "1.1.0" "java")
957 (modello-single-mode file "1.1.0" "xpp3-reader")
958 (modello-single-mode file "1.1.0" "xpp3-writer"))
962 `(("modello" ,java-modello-core)
964 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
965 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
966 ("java-guice" ,java-guice)
967 ("java-cglib" ,java-cglib)
968 ("java-asm" ,java-asm)
969 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
970 ("java-javax-inject" ,java-javax-inject)
971 ("java-plexus-utils" ,java-plexus-utils)
972 ("java-plexus-classworlds" ,java-plexus-classworlds)
973 ("java-guava" ,java-guava)
974 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
975 ("java-sisu-build-api" ,java-sisu-build-api)
977 ("java-modello-plugins-java" ,java-modello-plugins-java)
978 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
979 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
980 (description "Apache Maven is a software project management and comprehension
981 tool. This package contains strictly the model for Maven Repository Metadata,
982 so really just plain objects.")))
984 (define-public maven-resolver-provider
986 (inherit maven-artifact)
987 (name "maven-resolver-provider")
989 `(#:jar-name "maven-resolver-provider.jar"
990 #:source-dir "maven-resolver-provider/src/main/java"
991 #:test-dir "maven-resolver-provider/src/test"
993 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
995 (modify-phases %standard-phases
996 (add-before 'build 'generate-sisu-named
998 (mkdir-p "build/classes/META-INF/sisu")
999 (chmod "./sisu.sh" #o755)
1000 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1001 "build/classes/META-INF/sisu/javax.inject.Named")
1004 `(("maven-resolver-spi" ,maven-resolver-spi)
1005 ("maven-resolver-api" ,maven-resolver-api)
1006 ("maven-resolver-impl" ,maven-resolver-impl)
1007 ("maven-resolver-util" ,maven-resolver-util)
1008 ("maven-model" ,maven-model)
1009 ("maven-model-builder" ,maven-model-builder)
1010 ("maven-builder-support" ,maven-builder-support)
1011 ("maven-repository-metadata" ,maven-repository-metadata)
1012 ("java-plexus-utils" ,java-plexus-utils)
1013 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1014 ("java-commons-lang3" ,java-commons-lang3)
1015 ("java-guice" ,java-guice)
1016 ("java-guava" ,java-guava)
1017 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1018 ("java-javax-inject" ,java-javax-inject)))))
1020 (define-public maven-plugin-api
1022 (inherit maven-artifact)
1023 (name "maven-plugin-api")
1025 `(#:jar-name "maven-plugin-api.jar"
1026 #:source-dir "maven-plugin-api/src/main/java"
1028 #:test-dir "maven-plugin-api/src/test"
1030 (modify-phases %standard-phases
1031 (add-before 'build 'generate-models
1032 (lambda* (#:key inputs #:allow-other-keys)
1033 (define (modello-single-mode file version mode)
1034 (invoke "java" "org.codehaus.modello.ModelloCli"
1035 file mode "maven-plugin-api/src/main/java" version
1037 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1038 (modello-single-mode file "1.0.0" "java")
1039 (modello-single-mode file "1.0.0" "xpp3-reader")
1040 (modello-single-mode file "1.0.0" "xpp3-writer"))
1043 `(("maven-artifact" ,maven-artifact)
1044 ("maven-model" ,maven-model)
1045 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1046 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1047 ("guice" ,java-guice)
1048 ("java-cglib" ,java-cglib)
1049 ("java-asm" ,java-asm)
1050 ("sisu-inject" ,java-eclipse-sisu-inject)
1051 ("javax-inject" ,java-javax-inject)
1052 ("utils" ,java-plexus-utils)))
1054 `(("modello" ,java-modello-core)
1056 ("classworlds" ,java-plexus-classworlds)
1057 ("guava" ,java-guava)
1058 ("xbean" ,java-geronimo-xbean-reflect)
1059 ("build-api" ,java-sisu-build-api)
1061 ("java" ,java-modello-plugins-java)
1062 ("xml" ,java-modello-plugins-xml)
1063 ("xpp3" ,java-modello-plugins-xpp3)
1065 ("java-junit" ,java-junit)))
1066 (description "Apache Maven is a software project management and comprehension
1067 tool. This package contains strictly the API for plugins -- composed of goals
1068 implemented by Mojos -- development.
1070 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1071 generally generated from plugin sources using maven-plugin-plugin.")))
1073 (define maven-core-bootstrap
1075 (inherit maven-artifact)
1078 `(#:jar-name "maven-core.jar"
1079 #:source-dir "src/main/java"
1081 ;; Tests need maven-compat, which requires maven-core
1084 (modify-phases %standard-phases
1085 (add-before 'configure 'chdir
1087 ;; Required for generating components.xml in maven-core
1088 (chdir "maven-core")
1090 (add-before 'build 'copy-resources
1092 (mkdir-p "build/classes/")
1093 (copy-recursively "src/main/resources" "build/classes")
1095 (add-after 'copy-resources 'fill-properties
1097 ;; This file controls the output of some mvn subcommands, such as
1099 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1100 (("\\$\\{buildNumber\\}") "guix_build")
1101 (("\\$\\{timestamp\\}") "0")
1102 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1103 (("\\$\\{distributionId\\}") "apache-maven")
1104 (("\\$\\{distributionShortName\\}") "Maven")
1105 (("\\$\\{distributionName\\}") "Apache Maven"))
1107 (add-before 'build 'generate-sisu-named
1109 (mkdir-p "build/classes/META-INF/sisu")
1110 (chmod "../sisu.sh" #o755)
1111 (invoke "../sisu.sh" "src/main/java"
1112 "build/classes/META-INF/sisu/javax.inject.Named")
1114 (add-before 'build 'generate-models
1115 (lambda* (#:key inputs #:allow-other-keys)
1116 (define (modello-single-mode file version mode)
1117 (invoke "java" "org.codehaus.modello.ModelloCli"
1118 file mode "src/main/java" version
1120 (let ((file "src/main/mdo/toolchains.mdo"))
1121 (modello-single-mode file "1.1.0" "java")
1122 (modello-single-mode file "1.1.0" "xpp3-reader")
1123 (modello-single-mode file "1.1.0" "xpp3-writer"))
1126 `(("maven-artifact" ,maven-artifact)
1127 ("maven-resolver-provider" ,maven-resolver-provider)
1128 ("maven-builder-support" ,maven-builder-support)
1129 ("maven-model" ,maven-model)
1130 ("maven-model-builder" ,maven-model-builder)
1131 ("maven-settings" ,maven-settings)
1132 ("maven-settings-builder" ,maven-settings-builder)
1133 ("maven-plugin-api" ,maven-plugin-api)
1134 ("maven-repository-metadata" ,maven-repository-metadata)
1135 ("maven-shared-utils" ,maven-shared-utils)
1136 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1137 ("java-plexus-utils" ,java-plexus-utils)
1138 ("java-commons-lang3" ,java-commons-lang3)
1139 ("java-guava" ,java-guava)
1140 ("java-guice" ,java-guice)
1141 ("maven-resolver-api" ,maven-resolver-api)
1142 ("maven-resolver-spi" ,maven-resolver-spi)
1143 ("maven-resolver-util" ,maven-resolver-util)
1144 ("maven-resolver-impl" ,maven-resolver-impl)
1145 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1146 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1147 ("java-javax-inject" ,java-javax-inject)
1148 ("java-plexus-classworld" ,java-plexus-classworlds)))
1150 `(("java-modello-core" ,java-modello-core)
1151 ("java-cglib" ,java-cglib)
1152 ("java-asm" ,java-asm)
1153 ("java-plexus-classworlds" ,java-plexus-classworlds)
1154 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1155 ("java-sisu-build-api" ,java-sisu-build-api)
1156 ("java-modello-plugins-java" ,java-modello-plugins-java)
1157 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1158 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1160 ("java-junit" ,java-junit)
1161 ("java-mockito-1" ,java-mockito-1)
1162 ("java-commons-jxpath" ,java-commons-jxpath)))
1163 (description "Apache Maven is a software project management and comprehension
1164 tool. This package contains the maven core classes managing the whole build
1167 (define-public maven-core
1169 (inherit maven-core-bootstrap)
1171 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1173 `(modify-phases ,phases
1174 (add-before 'build 'modify-metainf
1176 (substitute* "build.xml"
1177 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1179 (add-before 'build 'add-maven-files
1181 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1182 (copy-file "pom.xml"
1183 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1184 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1186 (format #t "version=~a~%
1187 groupId=org.apache.maven~%
1188 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1190 (add-after 'build 'generate-metadata
1192 (define (components file)
1193 (let ((sxml (with-input-from-file file
1194 (lambda _ (xml->sxml (current-input-port)
1195 #:trim-whitespace? #t)))))
1196 ;; Select the list of <component>s inside the <component-set>
1197 ;; and <components>.
1198 ((@ (ice-9 match) match) sxml
1202 ('components x ...))) x))))
1203 (use-modules (sxml simple))
1204 (delete-file "build/classes/META-INF/plexus/components.xml")
1205 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1206 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1207 "--source" "build/classes/META-INF/plexus"
1208 "--output" "build/classes/META-INF/plexus/components.t.xml"
1209 "--classes" "build/classes"
1210 "--descriptors" "build/classes")
1211 ;; Now we merge all other components from hand-written xml
1212 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1213 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1214 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1215 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1216 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1218 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1222 ,@(append generated-xml components-xml
1223 default-bindings-xml
1224 artifact-handlers-xml)))))))
1226 (add-after 'generate-metadata 'rebuild
1228 (invoke "ant" "jar")
1231 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1232 ("java-commons-cli" ,java-commons-cli)
1233 ("java-plexus-cli" ,java-plexus-cli)
1234 ("java-jdom2" ,java-jdom2)
1235 ("java-qdox" ,java-qdox)
1236 ("maven-core-boot" ,maven-core-bootstrap)
1237 ,@(package-native-inputs maven-core-bootstrap)))))
1239 (define-public maven-embedder
1241 (inherit maven-artifact)
1242 (name "maven-embedder")
1244 `(#:jar-name "maven-embedder.jar"
1245 #:source-dir "maven-embedder/src/main/java"
1246 #:test-dir "maven-embedder/src/test"
1247 #:test-exclude (list "**/MavenCliTest.java")
1250 (modify-phases %standard-phases
1251 (add-before 'build 'generate-sisu-named
1253 (mkdir-p "build/classes/META-INF/sisu")
1254 (chmod "sisu.sh" #o755)
1255 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1256 "build/classes/META-INF/sisu/javax.inject.Named")
1258 (add-before 'build 'generate-models
1259 (lambda* (#:key inputs #:allow-other-keys)
1260 (define (modello-single-mode file version mode)
1261 (invoke "java" "org.codehaus.modello.ModelloCli"
1262 file mode "maven-embedder/src/main/java" version
1264 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1265 (modello-single-mode file "1.0.0" "java")
1266 (modello-single-mode file "1.0.0" "xpp3-reader")
1267 (modello-single-mode file "1.0.0" "xpp3-writer"))
1269 (add-before 'check 'fix-test-paths
1271 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1272 (("target/test-classes") "build/test-classes"))
1274 (add-before 'check 'fix-test-compilation
1276 ;; Tests are in the java/ subdir. Other subdirectories contain
1277 ;; additional test plugins, with duplicate classes, so we can't
1278 ;; compile them. Also, they are meant to be built with maven, to
1279 ;; test its build process.
1280 (substitute* "build.xml"
1281 (("srcdir=\"maven-embedder/src/test\"")
1282 "srcdir=\"maven-embedder/src/test/java\""))
1285 `(("maven-core" ,maven-core)
1286 ("maven-artifact" ,maven-artifact)
1287 ("maven-plugin-api" ,maven-plugin-api)
1288 ("maven-builder-support" ,maven-builder-support)
1289 ("maven-model" ,maven-model)
1290 ("maven-model-builder" ,maven-model-builder)
1291 ("maven-settings" ,maven-settings)
1292 ("maven-settings-builder" ,maven-settings-builder)
1293 ("maven-shared-utils" ,maven-shared-utils)
1294 ("java-plexus-classworlds" ,java-plexus-classworlds)
1295 ("java-plexus-util" ,java-plexus-utils)
1296 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1297 ("java-plexus-cipher" ,java-plexus-cipher)
1298 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1299 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1300 ("maven-resolevr-util" ,maven-resolver-util)
1301 ("maven-resolevr-api" ,maven-resolver-api)
1302 ("java-logback-core" ,java-logback-core)
1303 ("java-logback-classic" ,java-logback-classic)
1304 ("java-commons-cli" ,java-commons-cli)
1305 ("java-commons-io" ,java-commons-io)
1306 ("java-commons-lang3" ,java-commons-lang3)
1307 ("java-guava" ,java-guava)
1308 ("java-guice" ,java-guice)
1309 ("java-javax-inject" ,java-javax-inject)
1310 ("java-slf4j-api" ,java-slf4j-api)
1311 ("java-slf4j-simple" ,java-slf4j-simple)))
1313 `(("java-modello-core" ,java-modello-core)
1314 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1315 ("java-sisu-build-api" ,java-sisu-build-api)
1316 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1317 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1318 ("java-cglib" ,java-cglib)
1319 ("java-asm" ,java-asm)
1320 ("java-modello-plugins-java" ,java-modello-plugins-java)
1321 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1322 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1324 ("java-junit" ,java-junit)
1325 ("java-objenesis" ,java-objenesis)
1326 ("java-mockito-1" ,java-mockito-1)
1327 ("java-hamcrest-core" ,java-hamcrest-core)))
1328 (description "Apache Maven is a software project management and comprehension
1329 tool. This package contains a Maven embeddable component, with CLI and
1330 logging support.")))
1332 (define-public maven-compat
1334 (inherit maven-artifact)
1335 (name "maven-compat")
1337 `(#:jar-name "maven-compat.jar"
1338 #:source-dir "src/main/java"
1340 #:test-dir "src/test"
1342 (modify-phases %standard-phases
1343 ;; Tests assume we're in this directory
1344 (add-before 'configure 'chdir
1346 (chdir "maven-compat")
1348 (add-before 'build 'recreate-removed-jar
1350 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1352 (with-directory-excursion "src/test/resources"
1353 (with-output-to-file "artifact-install/artifact-1.0.jar"
1355 (format #t "dummy~%")))
1358 (with-output-to-file file
1360 (format #t "foo~%"))))
1361 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1362 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1363 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1364 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1365 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1366 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1367 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1368 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1369 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1370 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1371 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1372 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1373 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1374 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1375 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1376 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1377 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1378 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1379 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1380 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1381 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1382 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1383 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1384 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1385 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1386 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1387 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1388 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1389 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1390 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1391 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1392 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1393 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1394 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1395 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1396 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1397 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1398 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1399 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1400 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1401 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1402 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1403 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1404 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1405 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1406 (with-directory-excursion "local-repo/snapshot-test/jars"
1409 (with-output-to-file file
1412 (format #t "local"))))
1413 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1414 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1415 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1418 (with-directory-excursion
1419 (string-append "src/test/remote-repo/org/apache/maven/its/"
1421 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1424 (copy-file (string-append letter "-0.1.pom")
1425 (string-append dir "/pom.xml"))
1426 (with-output-to-file (string-append dir "/pom.properties")
1428 (format #t "version=0.1~%")
1429 (format #t "groupId=org.apache.maven.its")
1430 (format #t (string-append "artifactId=" letter))))
1431 (with-output-to-file "META-INF/MANIFEST.MF"
1433 (format #t "Manifest-Version: 1.0~%"))))
1434 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1435 (string-append letter "-0.1.jar") "META-INF")))
1438 (add-before 'build 'generate-models
1439 (lambda* (#:key inputs #:allow-other-keys)
1440 (define (modello-single-mode file version mode)
1441 (invoke "java" "org.codehaus.modello.ModelloCli"
1442 file mode "src/main/java" version
1444 (let ((file "src/main/mdo/profiles.mdo"))
1445 (modello-single-mode file "1.0.0" "java")
1446 (modello-single-mode file "1.0.0" "xpp3-reader")
1447 (modello-single-mode file "1.0.0" "xpp3-writer"))
1448 (let ((file "src/main/mdo/paramdoc.mdo"))
1449 (modello-single-mode file "1.0.0" "java")
1450 (modello-single-mode file "1.0.0" "xpp3-reader")
1451 (modello-single-mode file "1.0.0" "xpp3-writer"))
1453 (add-after 'build 'generate-metadata
1455 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1456 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1457 "--source" "src/main/java"
1458 "--output" "build/classes/META-INF/plexus/components.xml"
1459 "--classes" "build/classes"
1460 "--descriptors" "build/classes/META-INF")
1462 (add-before 'check 'build-tests
1464 (invoke "ant" "compile-tests")
1466 (add-after 'build-tests 'generate-test-metadata
1468 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1470 ":build/test-classes")
1471 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1472 "--source" "src/test/java"
1473 "--output" "build/test-classes/META-INF/plexus/components.xml"
1474 "--classes" "build/test-classes"
1475 "--descriptors" "build/test-classes/META-INF")
1477 (add-after 'generate-metadata 'rebuild
1479 (invoke "ant" "jar")
1482 `(("maven-artifact" ,maven-artifact)
1483 ("maven-repository-metadata" ,maven-repository-metadata)
1484 ("maven-builder-support" ,maven-builder-support)
1485 ("maven-model" ,maven-model)
1486 ("maven-model-builder" ,maven-model-builder)
1487 ("maven-settings" ,maven-settings)
1488 ("maven-settings-builder" ,maven-settings-builder)
1489 ("maven-core" ,maven-core)
1490 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1491 ("maven-wagon-file" ,maven-wagon-file)
1492 ("maven-resolver-api" ,maven-resolver-api)
1493 ("maven-resolver-util" ,maven-resolver-util)
1494 ("maven-resolver-spi" ,maven-resolver-spi)
1495 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1497 `(("java-modello-core" ,java-modello-core)
1498 ("java-plexus-utils" ,java-plexus-utils)
1499 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1500 ("java-plexus-classworlds" ,java-plexus-classworlds)
1501 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1502 ("java-sisu-build-api" ,java-sisu-build-api)
1503 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1504 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1505 ("java-javax-inject" ,java-javax-inject)
1506 ("java-guice" ,java-guice)
1507 ("java-guava" ,java-guava)
1508 ("java-cglib" ,java-cglib)
1509 ("java-asm" ,java-asm)
1510 ("java-modello-plugins-java" ,java-modello-plugins-java)
1511 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1512 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1514 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1515 ("java-commons-cli" ,java-commons-cli)
1516 ("java-plexus-cli" ,java-plexus-cli)
1517 ("java-jdom2" ,java-jdom2)
1518 ("maven-plugin-api" ,maven-plugin-api)
1519 ("java-qdox" ,java-qdox)
1521 ("java-plexus-cipher" ,java-plexus-cipher)
1522 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1523 ("java-jsr250" ,java-jsr250)
1524 ("java-cdi-api" ,java-cdi-api)
1525 ("java-junit" ,java-junit)
1526 ("maven-resolver-impl" ,maven-resolver-impl)
1527 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1528 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1529 ("java-commons-lang3" ,java-commons-lang3)
1530 ("java-aop" ,java-aopalliance)
1531 ("maven-resolver-provider" ,maven-resolver-provider)
1532 ("java-slf4j-api" ,java-slf4j-api)
1533 ("java-slf4j-simple" ,java-slf4j-simple)
1534 ,@(package-inputs java-slf4j-api)))
1535 (description "Apache Maven is a software project management and comprehension
1536 tool. This package contains Maven2 classes maintained as compatibility
1537 layer for plugins that need to keep Maven2 compatibility.")))
1539 (define-public maven
1541 (inherit maven-artifact)
1545 (modify-phases %standard-phases
1547 (lambda* (#:key inputs #:allow-other-keys)
1548 ;; Recreate the configuration for the loader
1549 (with-output-to-file "apache-maven/src/bin/m2.conf"
1551 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1553 (format #t "set maven.conf default ${maven.home}/conf~%")
1555 (format #t "[plexus.core]~%")
1556 (format #t "load ${maven.conf}/logging~%")
1557 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1558 ;; Reference every jar so plexus-classworlds can find them.
1560 (lambda (dependency)
1561 (format #t "load ~a/share/java/*.jar~%"
1562 (assoc-ref inputs dependency)))
1563 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1564 "maven-builder-support" "maven-model" "maven-model-builder"
1565 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1566 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1567 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1568 "maven-resolver-connector-basic" "maven-resolver-provider"
1569 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1570 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1571 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1572 "maven-wagon-http-shared" "maven-wagon-tck-http"
1573 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1574 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1575 "java-javax-inject" "java-plexus-component-annotations"
1576 "java-plexus-utils" "java-plexus-interpolation"
1577 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1578 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1579 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1580 "java-slf4j-simple"))))
1581 (substitute* "apache-maven/src/bin/mvn"
1586 (assoc-ref inputs "java-plexus-classworlds")
1589 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1593 (lambda* (#:key outputs #:allow-other-keys)
1594 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1595 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1596 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1597 (for-each (lambda (file)
1598 (install-file (string-append "apache-maven/src/bin/" file)
1600 (chmod (string-append bin file) #o755))
1601 '("mvn" "mvnDebug" "mvnyjp"))
1602 (install-file "apache-maven/src/bin/m2.conf" bin)
1603 (copy-recursively "apache-maven/src/conf" conf))
1606 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1607 ("maven-artifact" ,maven-artifact)
1608 ("maven-embedder" ,maven-embedder)
1609 ("maven-core" ,maven-core)
1610 ("maven-compat" ,maven-compat)
1611 ("maven-builder-support" ,maven-builder-support)
1612 ("maven-model" ,maven-model)
1613 ("maven-model-builder" ,maven-model-builder)
1614 ("maven-settings" ,maven-settings)
1615 ("maven-settings-builder" ,maven-settings-builder)
1616 ("maven-plugin-api" ,maven-plugin-api)
1617 ("maven-repository-metadata" ,maven-repository-metadata)
1618 ("maven-shared-utils" ,maven-shared-utils)
1619 ("maven-resolver-api" ,maven-resolver-api)
1620 ("maven-resolver-spi" ,maven-resolver-spi)
1621 ("maven-resolver-util" ,maven-resolver-util)
1622 ("maven-resolver-impl" ,maven-resolver-impl)
1623 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1624 ("maven-resolver-provider" ,maven-resolver-provider)
1625 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1626 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1627 ("maven-wagon-file" ,maven-wagon-file)
1628 ("maven-wagon-http" ,maven-wagon-http)
1629 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1630 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
1631 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
1632 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
1633 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
1634 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1635 ("java-guice" ,java-guice)
1636 ("java-aopalliance" ,java-aopalliance)
1637 ("java-cglib" ,java-cglib)
1638 ("java-asm" ,java-asm)
1639 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1640 ("java-javax-inject" ,java-javax-inject)
1641 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1642 ("java-plexus-utils" ,java-plexus-utils)
1643 ("java-plexus-interpolation" ,java-plexus-interpolation)
1644 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1645 ("java-plexus-cipher" ,java-plexus-cipher)
1646 ("java-guava" ,java-guava)
1647 ("java-jansi" ,java-jansi)
1648 ("java-jsr250" ,java-jsr250)
1649 ("java-cdi-api" ,java-cdi-api)
1650 ("java-commons-cli" ,java-commons-cli)
1651 ("java-commons-io" ,java-commons-io)
1652 ("java-commons-lang3" ,java-commons-lang3)
1653 ("java-slf4j-api" ,java-slf4j-api)
1654 ;; TODO: replace with maven-slf4j-provider
1655 ("java-slf4j-simple" ,java-slf4j-simple)))
1657 `(("coreutils" ,coreutils)
1659 (description "Apache Maven is a software project management and comprehension
1660 tool. Based on the concept of a project object model: builds, dependency
1661 management, documentation creation, site publication, and distribution
1662 publication are all controlled from the @file{pom.xml} declarative file. Maven
1663 can be extended by plugins to utilise a number of other development tools for
1664 reporting or the build process.")))