1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
3 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
5 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
7 ;;; This file is part of GNU Guix.
9 ;;; GNU Guix is free software; you can redistribute it and/or modify it
10 ;;; under the terms of the GNU General Public License as published by
11 ;;; the Free Software Foundation; either version 3 of the License, or (at
12 ;;; your option) any later version.
14 ;;; GNU Guix is distributed in the hope that it will be useful, but
15 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ;;; GNU General Public License for more details.
19 ;;; You should have received a copy of the GNU General Public License
20 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22 (define-module (gnu packages maven)
23 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix git-download)
27 #:use-module (guix utils)
28 #:use-module (guix build-system ant)
29 #:use-module (gnu packages)
30 #:use-module (gnu packages base)
31 #:use-module (gnu packages compression)
32 #:use-module (gnu packages java)
33 #:use-module (gnu packages maven-parent-pom)
34 #:use-module (gnu packages web)
35 #:use-module (gnu packages xml))
37 (define-public java-plexus-component-metadata
39 (inherit java-plexus-container-default)
40 (name "java-plexus-component-metadata")
42 `(#:jar-name "plexus-component-metadata.jar"
43 #:source-dir "src/main/java"
47 (modify-phases %standard-phases
48 (add-before 'configure 'chdir
50 (chdir "plexus-component-metadata")
52 (add-before 'build 'copy-resources
54 (copy-recursively "src/main/resources"
58 `(("java-plexus-container-default" ,java-plexus-container-default)
59 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
60 ("java-plexus-utils" ,java-plexus-utils)
61 ("java-plexus-cli" ,java-plexus-cli)
62 ("java-plexus-classworlds" ,java-plexus-classworlds)
63 ("maven-plugin-api" ,maven-plugin-api)
64 ("maven-plugin-annotations" ,maven-plugin-annotations)
65 ("maven-core-bootstrap" ,maven-core-bootstrap)
66 ("maven-model" ,maven-model)
67 ("java-commons-cli" ,java-commons-cli)
68 ("java-qdox" ,java-qdox)
69 ("java-jdom2" ,java-jdom2)
70 ("java-asm" ,java-asm)))
72 `(("java-junit" ,java-junit)
73 ("java-guava" ,java-guava)
74 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
75 (synopsis "Inversion-of-control container for Maven")
76 (description "The Plexus project provides a full software stack for creating
77 and executing software projects. Based on the Plexus container, the
78 applications can utilise component-oriented programming to build modular,
79 reusable components that can easily be assembled and reused. This package
80 provides the Maven plugin generating the component metadata.")))
82 (define-public maven-resolver-api
84 (name "maven-resolver-api")
89 (url "https://github.com/apache/maven-resolver")
90 (commit (string-append "maven-resolver-" version))))
91 (file-name (git-file-name name version))
94 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
95 (build-system ant-build-system)
97 `(#:jar-name "maven-resolver-api.jar"
98 #:source-dir "maven-resolver-api/src/main/java"
99 #:test-dir "maven-resolver-api/src/test"
101 (modify-phases %standard-phases
103 (install-from-pom "maven-resolver-api/pom.xml")))))
105 `(("java-asm" ,java-asm)
106 ("java-cglib" ,java-cglib)
107 ("java-hamcrest-core" ,java-hamcrest-core)
108 ("java-junit" ,java-junit)
109 ("java-mockito-1" ,java-mockito-1)
110 ("java-objenesis" ,java-objenesis)))
112 `(("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
113 (home-page "https://github.com/apache/maven-resolver")
114 (synopsis "Maven repository system API")
115 (description "This package contains the API for the maven repository system.")
116 (license license:asl2.0)))
118 (define maven-resolver-parent-pom
120 (inherit maven-resolver-api)
121 (name "maven-resolver-parent-pom")
125 (modify-phases %standard-phases
128 (add-before 'install 'fix-pom
130 (substitute* "pom.xml"
131 (("<classifier>no_aop</classifier>") ""))
134 (install-pom-file "pom.xml")))))
135 (propagated-inputs '())))
137 (define-public maven-resolver-spi
139 (inherit maven-resolver-api)
140 (name "maven-resolver-spi")
142 `(#:jar-name "maven-resolver-spi.jar"
143 #:source-dir "maven-resolver-spi/src/main/java"
144 #:test-dir "maven-resolver-spi/src/test"
146 (modify-phases %standard-phases
148 (install-from-pom "maven-resolver-spi/pom.xml")))))
150 `(("maven-resolver-api" ,maven-resolver-api)))
151 (synopsis "Maven repository system SPI")
152 (description "This package contains the service provider interface (SPI)
153 for repository system implementations and repository connectors.")))
155 (define-public maven-resolver-test-util
157 (inherit maven-resolver-api)
158 (name "maven-resolver-test-util")
160 `(#:jar-name "maven-resolver-test-util.jar"
161 #:source-dir "maven-resolver-test-util/src/main/java"
162 #:test-dir "maven-resolver-test-util/src/test"
165 `(("maven-resolver-api" ,maven-resolver-api)
166 ("maven-resolver-spi" ,maven-resolver-spi)))
167 (synopsis "Utility classes for testing the maven repository system")
168 (description "This package contains a collection of utility classes to
169 ease testing of the repository system.")))
171 (define-public maven-resolver-util
173 (inherit maven-resolver-api)
174 (name "maven-resolver-util")
176 `(#:jar-name "maven-resolver-util.jar"
177 #:source-dir "maven-resolver-util/src/main/java"
178 #:test-dir "maven-resolver-util/src/test"
180 (modify-phases %standard-phases
182 (install-from-pom "maven-resolver-util/pom.xml")))))
184 `(("maven-resolver-api" ,maven-resolver-api)))
186 `(("java-junit" ,java-junit)
187 ("java-hamcrest-core" ,java-hamcrest-core)
188 ("maven-resolver-test-util" ,maven-resolver-test-util)))
189 (synopsis "Utility classes for the maven repository system")
190 (description "This package contains a collection of utility classes to
191 ease usage of the repository system.")))
193 (define-public maven-resolver-connector-basic
195 (inherit maven-resolver-api)
196 (name "maven-resolver-connector-basic")
198 `(#:jar-name "maven-resolver-connector-basic.jar"
199 #:source-dir "maven-resolver-connector-basic/src/main/java"
200 #:test-dir "maven-resolver-connector-basic/src/test"
203 (modify-phases %standard-phases
204 (add-before 'build 'generate-sisu
206 (mkdir-p "build/classes/META-INF/sisu")
207 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
209 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
212 (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
214 `(("maven-resolver-api" ,maven-resolver-api)
215 ("maven-resolver-spi" ,maven-resolver-spi)
216 ("maven-resolver-util" ,maven-resolver-util)
217 ("java-slf4j-api" ,java-slf4j-api)))
219 `(("java-javax-inject" ,java-javax-inject)
220 ("java-junit" ,java-junit)
221 ("maven-resolver-test-util" ,maven-resolver-test-util)))
222 (synopsis "Maven repository connector implementation")
223 (description "This package contains a repository connector implementation
224 for repositories using URI-based layouts.")))
226 (define-public maven-resolver-impl
228 (inherit maven-resolver-api)
229 (name "maven-resolver-impl")
231 `(#:jar-name "maven-resolver-impl.jar"
232 #:source-dir "maven-resolver-impl/src/main/java"
233 #:test-dir "maven-resolver-impl/src/test"
235 (modify-phases %standard-phases
236 (add-before 'build 'generate-sisu
238 (mkdir-p "build/classes/META-INF/sisu")
239 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
243 ;; Build this list by looking for files containing "@Named"
244 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
245 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
246 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
247 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
248 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
249 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
250 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
251 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
252 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
253 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
254 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
255 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
256 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
257 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
258 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
259 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
260 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
261 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
262 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
263 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
264 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
265 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
266 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
269 (install-from-pom "maven-resolver-impl/pom.xml")))))
271 `(("maven-resolver-api" ,maven-resolver-api)
272 ("maven-resolver-spi" ,maven-resolver-spi)
273 ("maven-resolver-util" ,maven-resolver-util)
274 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
275 ("java-javax-inject" ,java-javax-inject)
276 ("java-guice" ,java-guice)
277 ("java-slf4j-api" ,java-slf4j-api)
278 ("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
280 `(("java-junit" ,java-junit)
281 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
283 (define-public maven-resolver-transport-wagon
285 (inherit maven-resolver-api)
286 (name "maven-resolver-transport-wagon")
288 `(#:jar-name "maven-resolver-transport-wagon.jar"
289 #:source-dir "maven-resolver-transport-wagon/src/main/java"
290 #:test-dir "maven-resolver-transport-wagon/src/test"
293 (modify-phases %standard-phases
294 (add-before 'build 'generate-sisu
296 (mkdir-p "build/classes/META-INF/sisu")
297 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
299 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
301 (add-before 'build 'generate-components.xml
303 (mkdir-p "build/classes/META-INF/plexus")
304 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
308 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
312 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
313 <role-hint>plexus</role-hint>
314 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
316 <isolated-realm>false</isolated-realm>
319 <role>org.codehaus.plexus.PlexusContainer</role>
321 <field-name>container</field-name>
326 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
327 <role-hint>plexus</role-hint>
328 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
330 <isolated-realm>false</isolated-realm>
333 <role>org.codehaus.plexus.PlexusContainer</role>
335 <field-name>container</field-name>
340 </component-set>\n"))))
343 `(("maven-resolver-api" ,maven-resolver-api)
344 ("maven-resolver-spi" ,maven-resolver-spi)
345 ("maven-resolver-util" ,maven-resolver-util)
346 ("java-javax-inject" ,java-javax-inject)
347 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
348 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
349 ("java-plexus-classworld" ,java-plexus-classworlds)
350 ("java-plexus-plexus-util" ,java-plexus-utils)
351 ("java-slf4j-api" ,java-slf4j-api)
352 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
353 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
355 `(("java-junit" ,java-junit)
356 ("java-hamcrest-core" ,java-hamcrest-core)
357 ("maven-resolver-test-util" ,maven-resolver-test-util)
358 ("java-guava" ,java-guava)
359 ("java-cglib" ,java-cglib)
360 ("java-asm" ,java-asm)
361 ("java-aopalliance" ,java-aopalliance)
362 ("java-guice" ,java-guice)))
363 (synopsis "Transport implementation for Maven")
364 (description "This package contains a transport implementation based on
365 Maven Wagon, for use in Maven.")))
367 (define-public maven-shared-utils
369 (name "maven-shared-utils")
373 (uri (string-append "mirror://apache/maven/shared/"
374 "maven-shared-utils-" version "-source-release.zip"))
377 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
378 (build-system ant-build-system)
380 `(#:jar-name "maven-shared-utils.jar"
381 #:source-dir "src/main/java"
383 (modify-phases %standard-phases
384 (add-before 'build 'fix-/bin/sh-invocation
386 (substitute* (find-files "src" ".*.java$")
387 (("/bin/sh") (which "sh")))
389 (add-before 'check 'remove-cyclic-dep
392 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
395 (install-from-pom "pom.xml")))))
397 `(("java-jansi" ,java-jansi)
398 ("java-commons-io" ,java-commons-io)
399 ("java-jsr305" ,java-jsr305)
400 ("java-plexus-container-default" ,java-plexus-container-default)
401 ("maven-parent-pom-30" ,maven-parent-pom-30)))
404 ("java-junit" ,java-junit)
405 ("java-hamcrest-core" ,java-hamcrest-core)
406 ("java-commons-lang3" ,java-commons-lang3)))
407 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
408 (synopsis "Plexus-util replacement for maven")
409 (description "This project aims to be a functional replacement for
410 plexus-utils in Maven. It is not a 100% API compatible replacement but a
411 replacement with improvements.")
412 (license license:asl2.0)))
414 (define-public maven-plugin-annotations
416 (name "maven-plugin-annotations")
420 (uri (string-append "mirror://apache/maven/"
421 "plugin-tools/maven-plugin-tools-" version
422 "-source-release.zip"))
423 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
424 (build-system ant-build-system)
426 `(#:jar-name "maven-plugin-annotations.jar"
427 #:source-dir "maven-plugin-annotations/src/main/java"
430 `(("maven-artifact" ,maven-artifact)))
433 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
434 (synopsis "Java 5 annotations to use in Mojos")
435 (description "This package contains Java 5 annotations for use in Mojos.")
436 (license license:asl2.0)))
438 (define-public maven-wagon-provider-api
440 (name "maven-wagon-provider-api")
444 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
445 "wagon-" version "-source-release.zip"))
448 "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
449 (build-system ant-build-system)
451 `(#:jar-name "maven-wagon-provider-api.jar"
452 #:source-dir "wagon-provider-api/src/main/java"
453 #:test-dir "wagon-provider-api/src/test"
455 (modify-phases %standard-phases
457 (install-from-pom "wagon-provider-api/pom.xml")))))
459 `(("java-plexus-utils" ,java-plexus-utils)
460 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
463 ("java-junit" ,java-junit)
464 ("java-easymock" ,java-easymock)))
465 (home-page "https://maven.apache.org/wagon")
466 (synopsis "Transport abstraction for Maven")
467 (description "Maven Wagon is a transport abstraction that is used in Maven's
468 artifact and repository handling code.")
469 (license license:asl2.0)))
471 (define maven-wagon-parent-pom
473 (inherit maven-wagon-provider-api)
477 (modify-phases %standard-phases
481 (install-pom-file "pom.xml")))))
483 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
485 `(("unzip" ,unzip)))))
487 (define-public maven-wagon-provider-test
489 (inherit maven-wagon-provider-api)
490 (name "maven-wagon-provider-test")
492 `(#:jar-name "maven-wagon-provider-test.jar"
493 #:source-dir "wagon-provider-test/src/main/java"
494 #:tests? #f; no tests
497 `(("java-plexus-utils" ,java-plexus-utils)
498 ("java-plexus-container-default" ,java-plexus-container-default)
499 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
500 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
501 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
502 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
503 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
504 ("java-slf4j-api" ,java-slf4j-api)
505 ("java-javaee-servletapi" ,java-javaee-servletapi)
506 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
507 (synopsis "Test classes from maven-wagon")
508 (description "Maven Wagon is a transport abstraction that is used in Maven's
509 artifact and repository handling code. This package contains common test
510 classes used in multiple maven-wagon components.")))
512 (define-public maven-wagon-file
514 (inherit maven-wagon-provider-api)
515 (name "maven-wagon-file")
517 `(#:jar-name "maven-wagon-file.jar"
518 #:source-dir "wagon-providers/wagon-file/src/main/java"
519 #:test-dir "wagon-providers/wagon-file/src/test"
522 (modify-phases %standard-phases
523 (add-before 'check 'fix-paths
525 ;; Tests assume they are run by maven, which copies test resources
526 ;; to target. Our ant-build-system does the same, but with the
528 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
529 (("target") "build"))
531 (add-after 'build 'generate-metadata
533 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
534 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
535 "--source" "wagon-providers/wagon-file/src/main/java"
536 "--output" "build/classes/META-INF/plexus/components.xml"
537 "--classes" "build/classes"
538 "--descriptors" "build/classes/META-INF")
540 (add-after 'generate-metadata 'rebuild
545 `(("java-plexus-utils" ,java-plexus-utils)
546 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
548 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
549 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
550 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
551 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
552 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
553 ("java-plexus-classworlds" ,java-plexus-classworlds)
554 ("java-guava" ,java-guava)
555 ("java-guice" ,java-guice)
556 ("java-javax-inject" ,java-javax-inject)
557 ("java-cglib" ,java-cglib)
558 ("java-slf4j-api" ,java-slf4j-api)
559 ("java-plexus-utils" ,java-plexus-utils)
560 ("java-plexus-cli" ,java-plexus-cli)
561 ("maven-plugin-api" ,maven-plugin-api)
562 ("maven-plugin-annotations" ,maven-plugin-annotations)
563 ("maven-core" ,maven-core)
564 ("maven-model" ,maven-model)
565 ("java-commons-cli" ,java-commons-cli)
566 ("java-qdox" ,java-qdox)
567 ("java-jdom2" ,java-jdom2)
568 ("java-asm" ,java-asm)
569 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
570 ,@(package-native-inputs maven-wagon-provider-api)))
571 (synopsis "Wagon provider that gets and puts artifacts using the file system")
572 (description "Maven Wagon is a transport abstraction that is used in Maven's
573 artifact and repository handling code. It uses providers, that are tools to
574 manage artifacts and deployment. This package contains the file provider which
575 gets and puts artifacts using the file system.")))
577 (define-public maven-wagon-tck-http
579 (inherit maven-wagon-provider-api)
580 (name "maven-wagon-tck-http")
582 `(#:jar-name "maven-wagon-tck-http.jar"
583 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
584 #:tests? #f; no tests
587 `(("java-plexus-util" ,java-plexus-utils)
588 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
589 ("java-javaee-servletapi" ,java-javaee-servletapi)
590 ("java-slf4j-api" ,java-slf4j-api)
591 ("java-commons-codec" ,java-commons-codec)
592 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
593 ("java-plexus-classworlds" ,java-plexus-classworlds)
594 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
595 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
596 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
597 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
598 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
599 (synopsis "Wagon HTTP Test Compatibility Kit")
600 (description "Maven Wagon is a transport abstraction that is used in Maven's
601 artifact and repository handling code. This package contains the HTTP
602 Test Compatibility Kit.")))
604 (define-public maven-wagon-http-shared
606 (inherit maven-wagon-provider-api)
607 (name "maven-wagon-http-shared")
609 `(#:jar-name "maven-wagon-http-shared.jar"
610 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
611 #:test-dir "wagon-providers/wagon-http-shared/src/test"
614 (modify-phases %standard-phases
615 (add-after 'build 'generate-metadata
617 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
618 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
619 "--source" "wagon-providers/wagon-http-shared/src/main/java"
620 "--output" "build/classes/META-INF/plexus/components.xml"
621 "--classes" "build/classes"
622 "--descriptors" "build/classes/META-INF")
624 (add-after 'generate-metadata 'rebuild
629 `(("java-plexus-utils" ,java-plexus-utils)
630 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
631 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
632 ("java-commons-io" ,java-commons-io)
633 ("java-jsoup" ,java-jsoup)
634 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
636 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
637 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
638 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
639 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
640 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
641 ("java-plexus-classworlds" ,java-plexus-classworlds)
642 ("java-guava" ,java-guava)
643 ("java-guice" ,java-guice)
644 ("java-javax-inject" ,java-javax-inject)
645 ("java-cglib" ,java-cglib)
646 ("java-slf4j-api" ,java-slf4j-api)
647 ("java-plexus-utils" ,java-plexus-utils)
648 ("java-plexus-cli" ,java-plexus-cli)
649 ("maven-plugin-api" ,maven-plugin-api)
650 ("maven-plugin-annotations" ,maven-plugin-annotations)
651 ("maven-core" ,maven-core)
652 ("maven-model" ,maven-model)
653 ("java-commons-cli" ,java-commons-cli)
654 ("java-qdox" ,java-qdox)
655 ("java-jdom2" ,java-jdom2)
656 ("java-asm" ,java-asm)
657 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
658 ,@(package-native-inputs maven-wagon-provider-api)))
659 (synopsis "Shared Library for wagon providers supporting HTTP.")
660 (description "Maven Wagon is a transport abstraction that is used in Maven's
661 artifact and repository handling code. It uses providers, that are tools to
662 manage artifacts and deployment. This package contains a shared library for
663 wagon providers supporting HTTP.")))
665 (define-public maven-wagon-http
667 (inherit maven-wagon-provider-api)
668 (name "maven-wagon-http")
670 `(#:jar-name "maven-wagon-http.jar"
671 #:source-dir "wagon-providers/wagon-http/src/main/java"
672 #:test-dir "wagon-providers/wagon-http/src/test"
675 ;; FIXME: javax.net.ssl.SSLHandshakeException:
676 ;; sun.security.validator.ValidatorException:
677 ;; PKIX path building failed:
678 ;; sun.security.provider.certpath.SunCertPathBuilderException:
679 ;; unable to find valid certification path to requested target
680 "**/HttpsWagonPreemptiveTest.java"
681 "**/HttpsWagonTest.java"
686 (modify-phases %standard-phases
687 (add-before 'build 'copy-resources
689 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
690 "build/classes/META-INF/plexus")
692 (add-before 'check 'fix-resource-path
694 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
695 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
696 (("src/test") "wagon-providers/wagon-http/src/test"))
699 `(("java-plexus-utils" ,java-plexus-utils)
700 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
701 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
702 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
703 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
704 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
706 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
707 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
708 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
709 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
710 ("java-plexus-container-default" ,java-plexus-container-default)
711 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
712 ("java-plexus-classworlds" ,java-plexus-classworlds)
713 ("java-guava" ,java-guava)
714 ("java-guice" ,java-guice)
715 ("java-inject" ,java-javax-inject)
716 ("java-cglib" ,java-cglib)
717 ("java-slf4j-api" ,java-slf4j-api)
718 ("java-plexus-utils" ,java-plexus-utils)
719 ("java-plexus-cli" ,java-plexus-cli)
720 ("maven-plugin-api" ,maven-plugin-api)
721 ("maven-plugin-annotations" ,maven-plugin-annotations)
722 ("maven-core" ,maven-core)
723 ("maven-model" ,maven-model)
724 ("java-commons-cli" ,java-commons-cli)
725 ("java-qdox" ,java-qdox)
726 ("java-jdom2" ,java-jdom2)
727 ("java-asm" ,java-asm)
728 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
729 ("java-javaee-servletapi" ,java-javaee-servletapi)
730 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
731 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
732 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
733 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
734 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
735 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
736 ("java-hamcrest-core" ,java-hamcrest-core)
737 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
738 ("java-commons-codec" ,java-commons-codec)
739 ("java-commons-io" ,java-commons-io)
740 ("java-jsoup" ,java-jsoup)
741 ("java-slf4j-simple" ,java-slf4j-simple)
742 ,@(package-native-inputs maven-wagon-provider-api)))
743 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
744 (description "Maven Wagon is a transport abstraction that is used in Maven's
745 artifact and repository handling code. It uses providers, that are tools to
746 manage artifacts and deployment. This package contains a Wagon provider that
747 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
755 (uri (string-append "mirror://apache/maven/"
756 "maven-3/" version "/source/"
757 "apache-maven-" version "-src.tar.gz"))
758 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
759 (modules '((guix build utils)))
762 (for-each delete-file (find-files "." "\\.jar$"))
765 (search-patches "maven-generate-component-xml.patch"
766 "maven-generate-javax-inject-named.patch"))))
767 (build-system ant-build-system)
771 (modify-phases %standard-phases
774 (add-before 'install 'fix-dependencies
776 (substitute* "pom.xml"
777 (("classWorldsVersion>.*")
779 "classWorldsVersion>"
780 ,(package-version java-plexus-classworlds)
781 "</classWorldsVersion>\n"))
782 (("commonsCliVersion>.*")
785 ,(package-version java-commons-cli)
786 "</commonsCliVersion>\n"))
787 (("commonsLangVersion>.*")
789 "commonsLangVersion>"
790 ,(package-version java-commons-lang3)
791 "</commonsLangVersion>\n"))
792 (("plexusUtilsVersion>.*")
794 "plexusUtilsVersion>"
795 ,(package-version java-plexus-utils)
796 "</plexusUtilsVersion>\n"))
797 (("plexusInterpolationVersion>.*")
799 "plexusInterpolationVersion>"
800 ,(package-version java-plexus-interpolation)
801 "</plexusInterpolationVersion>\n"))
805 ,(package-version java-guice)
806 "</guiceVersion>\n"))
807 (("sisuInjectVersion>.*")
810 ,(package-version java-eclipse-sisu-inject)
811 "</sisuInjectVersion>\n"))
812 (("securityDispatcherVersion>.*")
814 "securityDispatcherVersion>"
815 ,(package-version java-plexus-sec-dispatcher)
816 "</securityDispatcherVersion>\n"))
817 (("cipherVersion>.*")
820 ,(package-version java-plexus-cipher)
821 "</cipherVersion>\n"))
825 ,(package-version java-slf4j-api)
826 "</slf4jVersion>\n"))
827 (("<classifier>no_aop</classifier>") ""))
830 (install-pom-file "pom.xml")))))
832 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
833 (home-page "https://maven.apache.org/")
834 (synopsis "Build system")
835 (description "Apache Maven is a software project management and comprehension
836 tool. This package contains the Maven pom file, used by all maven components.")
837 (license license:asl2.0)))
839 (define-public maven-artifact
842 (name "maven-artifact")
844 `(#:jar-name "maven-artifact.jar"
845 #:source-dir "maven-artifact/src/main/java"
846 #:test-dir "maven-artifact/src/test"
847 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
849 (modify-phases %standard-phases
851 (install-from-pom "maven-artifact/pom.xml")))))
853 `(("java-plexus-utils" ,java-plexus-utils)
854 ("java-commons-lang3" ,java-commons-lang3)
855 ("maven-pom" ,maven-pom)))
857 `(("java-junit" ,java-junit)))
858 (description "Apache Maven is a software project management and comprehension
859 tool. This package contains the Maven Artifact classes, providing the
860 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
861 jar file is executable and provides a little tool to display how Maven parses
862 and compares versions:")))
864 (define-public maven-model
866 (inherit maven-artifact)
869 `(#:jar-name "maven-model.jar"
870 #:source-dir "maven-model/src/main/java"
871 #:test-dir "maven-model/src/test"
873 (modify-phases %standard-phases
874 (add-before 'build 'generate-models
875 (lambda* (#:key inputs #:allow-other-keys)
876 (define (modello-single-mode file version mode)
877 (invoke "java" "org.codehaus.modello.ModelloCli"
878 file mode "maven-model/src/main/java" version
880 (let ((file "maven-model/src/main/mdo/maven.mdo"))
881 (modello-single-mode file "4.0.0" "java")
882 (modello-single-mode file "4.0.0" "xpp3-reader")
883 (modello-single-mode file "4.0.0" "xpp3-writer")
884 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
886 (replace 'install (install-from-pom "maven-model/pom.xml")))))
888 `(("java-commons-lang3" ,java-commons-lang3)
889 ("java-plexus-utils" ,java-plexus-utils)
890 ("maven-pom" ,maven-pom)))
892 `(("java-modello-core" ,java-modello-core)
894 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
895 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
896 ("java-guice" ,java-guice)
897 ("java-cglib" ,java-cglib)
898 ("java-asm" ,java-asm)
899 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
900 ("java-javax-inject" ,java-javax-inject)
901 ("java-plexus-classworlds" ,java-plexus-classworlds)
902 ("java-guava" ,java-guava)
903 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
904 ("java-sisu-build-api" ,java-sisu-build-api)
906 ("java-modello-plugins-java" ,java-modello-plugins-java)
907 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
908 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
910 ("java-junit" ,java-junit)))
911 (description "Apache Maven is a software project management and comprehension
912 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
913 so really just plain Java objects.")))
915 (define-public maven-builder-support
917 (inherit maven-artifact)
918 (name "maven-builder-support")
920 `(#:jar-name "maven-builder-support.jar"
921 #:source-dir "maven-builder-support/src/main/java"
923 #:test-dir "maven-builder-support/src/test"
925 (modify-phases %standard-phases
926 (add-before 'check 'fix-paths
928 (with-directory-excursion "maven-builder-support/src/test/java"
930 '("org/apache/maven/building/FileSourceTest.java"
931 "org/apache/maven/building/UrlSourceTest.java")
932 (("target/test-classes") "maven-builder-support/src/test/resources")))
934 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
936 `(("maven-pom" ,maven-pom)))
938 `(("java-junit" ,java-junit)))
939 (description "Apache Maven is a software project management and comprehension
940 tool. This package contains a support library for descriptor builders (model,
941 setting, toolchains)")))
943 (define-public maven-settings
945 (inherit maven-artifact)
946 (name "maven-settings")
948 `(#:jar-name "maven-settings.jar"
949 #:source-dir "maven-settings/src/main/java"
950 #:tests? #f; no tests
952 (modify-phases %standard-phases
953 (add-before 'build 'generate-models
954 (lambda* (#:key inputs #:allow-other-keys)
955 (define (modello-single-mode file version mode)
956 (invoke "java" "org.codehaus.modello.ModelloCli"
957 file mode "maven-settings/src/main/java" version
959 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
960 (modello-single-mode file "1.1.0" "java")
961 (modello-single-mode file "1.1.0" "xpp3-reader")
962 (modello-single-mode file "1.1.0" "xpp3-writer"))
964 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
966 `(("java-plexus-utils" ,java-plexus-utils)
967 ("maven-pom" ,maven-pom)))
969 `(("java-modello-core" ,java-modello-core)
971 ;("container" ,java-plexus-container-default)
972 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
973 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
974 ("java-guice" ,java-guice)
975 ("java-cglib" ,java-cglib)
976 ("java-asm" ,java-asm)
977 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
978 ("java-javax-inject" ,java-javax-inject)
979 ("java-plexus-classworlds" ,java-plexus-classworlds)
980 ("java-plexus-utils" ,java-plexus-utils)
981 ("java-guava" ,java-guava)
982 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
983 ("java-sisu-build-api" ,java-sisu-build-api)
985 ("java-modello-plugins-java" ,java-modello-plugins-java)
986 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
987 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
988 (description "Apache Maven is a software project management and comprehension
989 tool. This package contains strictly the model for Maven settings, that is
990 simply plain java objects.")))
992 (define-public maven-settings-builder
994 (inherit maven-artifact)
995 (name "maven-settings-builder")
997 `(#:jar-name "maven-settings-builder.jar"
998 #:source-dir "maven-settings-builder/src/main/java"
1000 #:test-dir "maven-settings-builder/src/test"
1002 (modify-phases %standard-phases
1003 (add-before 'build 'generate-components.xml
1005 (mkdir-p "build/classes/META-INF/plexus")
1006 (chmod "components.sh" #o755)
1007 (invoke "./components.sh" "maven-settings-builder/src/main/java"
1008 "build/classes/META-INF/plexus/components.xml")
1010 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1012 `(("java-plexus-utils" ,java-plexus-utils)
1013 ("java-plexus-interpolation" ,java-plexus-interpolation)
1014 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1015 ("maven-builder-support" ,maven-builder-support)
1016 ("maven-settings" ,maven-settings)
1017 ("maven-pom" ,maven-pom)))
1019 `(("java-junit" ,java-junit)
1020 ("java-plexus-component-annotations" ,java-plexus-component-annotations)))
1021 (description "Apache Maven is a software project management and comprehension
1022 tool. This package contains the effective model builder, with profile activation,
1023 inheritance, interpolation, @dots{}")))
1025 (define-public maven-model-builder
1027 (inherit maven-artifact)
1028 (name "maven-model-builder")
1030 `(#:jar-name "maven-model-builder.jar"
1031 #:source-dir "maven-model-builder/src/main/java"
1033 #:test-dir "maven-model-builder/src/test"
1035 (modify-phases %standard-phases
1036 (add-before 'build 'copy-resources
1038 (copy-recursively "maven-model-builder/src/main/resources"
1041 (add-before 'build 'generate-components.xml
1043 (mkdir-p "build/classes/META-INF/plexus")
1044 (chmod "components.sh" #o755)
1045 (invoke "./components.sh" "maven-model-builder/src/main/java"
1046 "build/classes/META-INF/plexus/components.xml")
1048 (add-before 'check 'fix-paths
1050 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
1051 (("src/test") "maven-model-builder/src/test"))
1054 (install-from-pom "maven-model-builder/pom.xml")))))
1056 `(("java-plexus-interpolation" ,java-plexus-interpolation)
1057 ("java-plexus-utils" ,java-plexus-utils)
1058 ("maven-artifact" ,maven-artifact)
1059 ("maven-builder-support" ,maven-builder-support)
1060 ("maven-model" ,maven-model)
1061 ("maven-pom" ,maven-pom)))
1063 `(("java-junit" ,java-junit)
1064 ("java-guava" ,java-guava)
1065 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1066 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1067 ("guice" ,java-guice)
1068 ("java-cglib" ,java-cglib)
1069 ("java-asm" ,java-asm)
1070 ("sisu-inject" ,java-eclipse-sisu-inject)
1071 ("javax-inject" ,java-javax-inject)
1072 ("java-xmlunit" ,java-xmlunit)
1073 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
1074 ("xbean" ,java-geronimo-xbean-reflect)
1075 ("classworlds" ,java-plexus-classworlds)))
1076 (description "Apache Maven is a software project management and comprehension
1077 tool. This package contains the effective model builder, with profile activation,
1078 inheritance, interpolation, @dots{}")))
1080 (define-public maven-repository-metadata
1082 (inherit maven-artifact)
1083 (name "maven-repository-metadata")
1085 `(#:jar-name "maven-repository-metadata.jar"
1086 #:source-dir "maven-repository-metadata/src/main/java"
1088 #:tests? #f; no tests
1090 (modify-phases %standard-phases
1091 (add-before 'build 'generate-models
1092 (lambda* (#:key inputs #:allow-other-keys)
1093 (define (modello-single-mode file version mode)
1094 (invoke "java" "org.codehaus.modello.ModelloCli"
1095 file mode "maven-repository-metadata/src/main/java" version
1097 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1098 (modello-single-mode file "1.1.0" "java")
1099 (modello-single-mode file "1.1.0" "xpp3-reader")
1100 (modello-single-mode file "1.1.0" "xpp3-writer"))
1103 (install-from-pom "maven-repository-metadata/pom.xml")))))
1105 `(("java-plexus-utils" ,java-plexus-utils)
1106 ("maven-pom" ,maven-pom)))
1108 `(("modello" ,java-modello-core)
1110 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1111 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1112 ("java-guice" ,java-guice)
1113 ("java-cglib" ,java-cglib)
1114 ("java-asm" ,java-asm)
1115 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1116 ("java-javax-inject" ,java-javax-inject)
1117 ("java-plexus-utils" ,java-plexus-utils)
1118 ("java-plexus-classworlds" ,java-plexus-classworlds)
1119 ("java-guava" ,java-guava)
1120 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1121 ("java-sisu-build-api" ,java-sisu-build-api)
1123 ("java-modello-plugins-java" ,java-modello-plugins-java)
1124 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1125 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1126 (description "Apache Maven is a software project management and comprehension
1127 tool. This package contains strictly the model for Maven Repository Metadata,
1128 so really just plain objects.")))
1130 (define-public maven-resolver-provider
1132 (inherit maven-artifact)
1133 (name "maven-resolver-provider")
1135 `(#:jar-name "maven-resolver-provider.jar"
1136 #:source-dir "maven-resolver-provider/src/main/java"
1137 #:test-dir "maven-resolver-provider/src/test"
1139 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1141 (modify-phases %standard-phases
1142 (add-before 'build 'generate-sisu-named
1144 (mkdir-p "build/classes/META-INF/sisu")
1145 (chmod "./sisu.sh" #o755)
1146 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1147 "build/classes/META-INF/sisu/javax.inject.Named")
1150 (install-from-pom "maven-resolver-provider/pom.xml")))))
1152 `(("maven-model" ,maven-model)
1153 ("maven-model-builder" ,maven-model-builder)
1154 ("maven-resolver-spi" ,maven-resolver-spi)
1155 ("maven-resolver-api" ,maven-resolver-api)
1156 ("maven-resolver-impl" ,maven-resolver-impl)
1157 ("maven-resolver-util" ,maven-resolver-util)
1158 ("maven-builder-support" ,maven-builder-support)
1159 ("maven-repository-metadata" ,maven-repository-metadata)
1160 ("java-plexus-utils" ,java-plexus-utils)
1161 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1162 ("java-guice" ,java-guice)
1163 ("java-javax-inject" ,java-javax-inject)))))
1165 (define-public maven-plugin-api
1167 (inherit maven-artifact)
1168 (name "maven-plugin-api")
1170 `(#:jar-name "maven-plugin-api.jar"
1171 #:source-dir "maven-plugin-api/src/main/java"
1173 #:test-dir "maven-plugin-api/src/test"
1175 (modify-phases %standard-phases
1176 (add-before 'build 'generate-models
1177 (lambda* (#:key inputs #:allow-other-keys)
1178 (define (modello-single-mode file version mode)
1179 (invoke "java" "org.codehaus.modello.ModelloCli"
1180 file mode "maven-plugin-api/src/main/java" version
1182 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1183 (modello-single-mode file "1.0.0" "java")
1184 (modello-single-mode file "1.0.0" "xpp3-reader")
1185 (modello-single-mode file "1.0.0" "xpp3-writer"))
1188 (install-from-pom "maven-plugin-api/pom.xml")))))
1190 `(("maven-artifact" ,maven-artifact)
1191 ("maven-model" ,maven-model)
1192 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1193 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1194 ("guice" ,java-guice)
1195 ("java-cglib" ,java-cglib)
1196 ("java-asm" ,java-asm)
1197 ("sisu-inject" ,java-eclipse-sisu-inject)
1198 ("javax-inject" ,java-javax-inject)
1199 ("utils" ,java-plexus-utils)))
1201 `(("modello" ,java-modello-core)
1203 ("classworlds" ,java-plexus-classworlds)
1204 ("guava" ,java-guava)
1205 ("xbean" ,java-geronimo-xbean-reflect)
1206 ("build-api" ,java-sisu-build-api)
1208 ("java" ,java-modello-plugins-java)
1209 ("xml" ,java-modello-plugins-xml)
1210 ("xpp3" ,java-modello-plugins-xpp3)
1212 ("java-junit" ,java-junit)))
1213 (description "Apache Maven is a software project management and comprehension
1214 tool. This package contains strictly the API for plugins -- composed of goals
1215 implemented by Mojos -- development.
1217 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1218 generally generated from plugin sources using maven-plugin-plugin.")))
1220 (define maven-core-bootstrap
1222 (inherit maven-artifact)
1225 `(#:jar-name "maven-core.jar"
1226 #:source-dir "src/main/java"
1228 ;; Tests need maven-compat, which requires maven-core
1231 (modify-phases %standard-phases
1232 (add-before 'configure 'chdir
1234 ;; Required for generating components.xml in maven-core
1235 (chdir "maven-core")
1237 (add-before 'build 'copy-resources
1239 (mkdir-p "build/classes/")
1240 (copy-recursively "src/main/resources" "build/classes")
1242 (add-after 'copy-resources 'fill-properties
1244 ;; This file controls the output of some mvn subcommands, such as
1246 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1247 (("\\$\\{buildNumber\\}") "guix_build")
1248 (("\\$\\{timestamp\\}") "0")
1249 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1250 (("\\$\\{distributionId\\}") "apache-maven")
1251 (("\\$\\{distributionShortName\\}") "Maven")
1252 (("\\$\\{distributionName\\}") "Apache Maven"))
1254 (add-before 'build 'generate-sisu-named
1256 (mkdir-p "build/classes/META-INF/sisu")
1257 (chmod "../sisu.sh" #o755)
1258 (invoke "../sisu.sh" "src/main/java"
1259 "build/classes/META-INF/sisu/javax.inject.Named")
1261 (add-before 'build 'generate-models
1262 (lambda* (#:key inputs #:allow-other-keys)
1263 (define (modello-single-mode file version mode)
1264 (invoke "java" "org.codehaus.modello.ModelloCli"
1265 file mode "src/main/java" version
1267 (let ((file "src/main/mdo/toolchains.mdo"))
1268 (modello-single-mode file "1.1.0" "java")
1269 (modello-single-mode file "1.1.0" "xpp3-reader")
1270 (modello-single-mode file "1.1.0" "xpp3-writer"))
1272 (add-before 'install 'fix-pom
1274 (substitute* "pom.xml"
1275 (("<classifier>no_aop</classifier>") ""))
1278 (install-from-pom "pom.xml")))))
1280 `(("maven-artifact" ,maven-artifact)
1281 ("maven-resolver-provider" ,maven-resolver-provider)
1282 ("maven-builder-support" ,maven-builder-support)
1283 ("maven-model" ,maven-model)
1284 ("maven-model-builder" ,maven-model-builder)
1285 ("maven-settings" ,maven-settings)
1286 ("maven-settings-builder" ,maven-settings-builder)
1287 ("maven-plugin-api" ,maven-plugin-api)
1288 ("maven-repository-metadata" ,maven-repository-metadata)
1289 ("maven-shared-utils" ,maven-shared-utils)
1290 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1291 ("java-plexus-utils" ,java-plexus-utils)
1292 ("java-commons-lang3" ,java-commons-lang3)
1293 ("java-guava" ,java-guava)
1294 ("java-guice" ,java-guice)
1295 ("maven-resolver-api" ,maven-resolver-api)
1296 ("maven-resolver-spi" ,maven-resolver-spi)
1297 ("maven-resolver-util" ,maven-resolver-util)
1298 ("maven-resolver-impl" ,maven-resolver-impl)
1299 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1300 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1301 ("java-javax-inject" ,java-javax-inject)
1302 ("java-plexus-classworld" ,java-plexus-classworlds)))
1304 `(("java-modello-core" ,java-modello-core)
1305 ("java-cglib" ,java-cglib)
1306 ("java-asm" ,java-asm)
1307 ("java-plexus-classworlds" ,java-plexus-classworlds)
1308 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1309 ("java-sisu-build-api" ,java-sisu-build-api)
1310 ("java-modello-plugins-java" ,java-modello-plugins-java)
1311 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1312 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1314 ("java-junit" ,java-junit)
1315 ("java-mockito-1" ,java-mockito-1)
1316 ("java-commons-jxpath" ,java-commons-jxpath)))
1317 (description "Apache Maven is a software project management and comprehension
1318 tool. This package contains the maven core classes managing the whole build
1321 (define-public maven-core
1323 (inherit maven-core-bootstrap)
1325 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1327 `(modify-phases ,phases
1328 (add-before 'build 'modify-metainf
1330 (substitute* "build.xml"
1331 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
1333 (add-before 'build 'add-maven-files
1335 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1336 (copy-file "pom.xml"
1337 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1338 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1340 (format #t "version=~a~%
1341 groupId=org.apache.maven~%
1342 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1344 (add-after 'build 'generate-metadata
1346 (define (components file)
1347 (let ((sxml (with-input-from-file file
1348 (lambda _ (xml->sxml (current-input-port)
1349 #:trim-whitespace? #t)))))
1350 ;; Select the list of <component>s inside the <component-set>
1351 ;; and <components>.
1352 ((@ (ice-9 match) match) sxml
1356 ('components x ...))) x))))
1357 (use-modules (sxml simple))
1358 (delete-file "build/classes/META-INF/plexus/components.xml")
1359 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1360 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1361 "--source" "build/classes/META-INF/plexus"
1362 "--output" "build/classes/META-INF/plexus/components.t.xml"
1363 "--classes" "build/classes"
1364 "--descriptors" "build/classes")
1365 ;; Now we merge all other components from hand-written xml
1366 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1367 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1368 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1369 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1370 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1372 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1376 ,@(append generated-xml components-xml
1377 default-bindings-xml
1378 artifact-handlers-xml)))))))
1380 (add-after 'generate-metadata 'rebuild
1382 (invoke "ant" "jar")
1385 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1386 ("java-commons-cli" ,java-commons-cli)
1387 ("java-plexus-cli" ,java-plexus-cli)
1388 ("java-jdom2" ,java-jdom2)
1389 ("java-qdox" ,java-qdox)
1390 ("maven-core-boot" ,maven-core-bootstrap)
1391 ,@(package-native-inputs maven-core-bootstrap)))))
1393 (define-public maven-embedder
1395 (inherit maven-artifact)
1396 (name "maven-embedder")
1398 `(#:jar-name "maven-embedder.jar"
1399 #:source-dir "maven-embedder/src/main/java"
1400 #:test-dir "maven-embedder/src/test"
1401 #:test-exclude (list "**/MavenCliTest.java")
1404 (modify-phases %standard-phases
1405 (add-before 'build 'generate-sisu-named
1407 (mkdir-p "build/classes/META-INF/sisu")
1408 (chmod "sisu.sh" #o755)
1409 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1410 "build/classes/META-INF/sisu/javax.inject.Named")
1412 (add-before 'build 'generate-models
1413 (lambda* (#:key inputs #:allow-other-keys)
1414 (define (modello-single-mode file version mode)
1415 (invoke "java" "org.codehaus.modello.ModelloCli"
1416 file mode "maven-embedder/src/main/java" version
1418 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1419 (modello-single-mode file "1.0.0" "java")
1420 (modello-single-mode file "1.0.0" "xpp3-reader")
1421 (modello-single-mode file "1.0.0" "xpp3-writer"))
1423 (add-before 'check 'fix-test-paths
1425 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1426 (("target/test-classes") "build/test-classes"))
1428 (add-before 'check 'fix-test-compilation
1430 ;; Tests are in the java/ subdir. Other subdirectories contain
1431 ;; additional test plugins, with duplicate classes, so we can't
1432 ;; compile them. Also, they are meant to be built with maven, to
1433 ;; test its build process.
1434 (substitute* "build.xml"
1435 (("srcdir=\"maven-embedder/src/test\"")
1436 "srcdir=\"maven-embedder/src/test/java\""))
1439 (install-from-pom "maven-embedder/pom.xml")))))
1441 `(("maven-core" ,maven-core)
1442 ("maven-artifact" ,maven-artifact)
1443 ("maven-plugin-api" ,maven-plugin-api)
1444 ("maven-builder-support" ,maven-builder-support)
1445 ("maven-model" ,maven-model)
1446 ("maven-model-builder" ,maven-model-builder)
1447 ("maven-settings" ,maven-settings)
1448 ("maven-settings-builder" ,maven-settings-builder)
1449 ("maven-shared-utils" ,maven-shared-utils)
1450 ("java-plexus-classworlds" ,java-plexus-classworlds)
1451 ("java-plexus-util" ,java-plexus-utils)
1452 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1453 ("java-plexus-cipher" ,java-plexus-cipher)
1454 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1455 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1456 ("maven-resolevr-util" ,maven-resolver-util)
1457 ("maven-resolevr-api" ,maven-resolver-api)
1458 ("java-logback-core" ,java-logback-core)
1459 ("java-logback-classic" ,java-logback-classic)
1460 ("java-commons-cli" ,java-commons-cli)
1461 ("java-commons-io" ,java-commons-io)
1462 ("java-commons-lang3" ,java-commons-lang3)
1463 ("java-guava" ,java-guava)
1464 ("java-guice" ,java-guice)
1465 ("java-javax-inject" ,java-javax-inject)
1466 ("java-slf4j-api" ,java-slf4j-api)
1467 ("java-slf4j-simple" ,java-slf4j-simple)
1468 ("java-jsr250" ,java-jsr250)))
1470 `(("java-modello-core" ,java-modello-core)
1471 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1472 ("java-sisu-build-api" ,java-sisu-build-api)
1473 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1474 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1475 ("java-cglib" ,java-cglib)
1476 ("java-asm" ,java-asm)
1477 ("java-modello-plugins-java" ,java-modello-plugins-java)
1478 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1479 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1481 ("java-junit" ,java-junit)
1482 ("java-objenesis" ,java-objenesis)
1483 ("java-mockito-1" ,java-mockito-1)
1484 ("java-hamcrest-core" ,java-hamcrest-core)))
1485 (description "Apache Maven is a software project management and comprehension
1486 tool. This package contains a Maven embeddable component, with CLI and
1487 logging support.")))
1489 (define-public maven-compat
1491 (inherit maven-artifact)
1492 (name "maven-compat")
1494 `(#:jar-name "maven-compat.jar"
1495 #:source-dir "src/main/java"
1497 #:test-dir "src/test"
1499 (modify-phases %standard-phases
1500 ;; Tests assume we're in this directory
1501 (add-before 'configure 'chdir
1503 (chdir "maven-compat")
1505 (add-before 'build 'recreate-removed-jar
1507 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1509 (with-directory-excursion "src/test/resources"
1510 (with-output-to-file "artifact-install/artifact-1.0.jar"
1512 (format #t "dummy~%")))
1515 (with-output-to-file file
1517 (format #t "foo~%"))))
1518 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1519 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1520 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1521 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1522 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1523 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1524 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1525 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1526 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1527 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1528 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1529 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1530 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1531 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1532 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1533 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1534 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1535 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1536 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1537 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1538 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1539 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1540 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1541 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1542 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1543 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1544 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1545 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1546 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1547 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1548 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1549 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1550 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1551 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1552 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1553 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1554 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1555 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1556 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1557 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1558 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1559 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1560 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1561 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1562 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1563 (with-directory-excursion "local-repo/snapshot-test/jars"
1566 (with-output-to-file file
1569 (format #t "local"))))
1570 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1571 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1572 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1575 (with-directory-excursion
1576 (string-append "src/test/remote-repo/org/apache/maven/its/"
1578 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1581 (copy-file (string-append letter "-0.1.pom")
1582 (string-append dir "/pom.xml"))
1583 (with-output-to-file (string-append dir "/pom.properties")
1585 (format #t "version=0.1~%")
1586 (format #t "groupId=org.apache.maven.its")
1587 (format #t (string-append "artifactId=" letter))))
1588 (with-output-to-file "META-INF/MANIFEST.MF"
1590 (format #t "Manifest-Version: 1.0~%"))))
1591 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1592 (string-append letter "-0.1.jar") "META-INF")))
1595 (add-before 'build 'generate-models
1596 (lambda* (#:key inputs #:allow-other-keys)
1597 (define (modello-single-mode file version mode)
1598 (invoke "java" "org.codehaus.modello.ModelloCli"
1599 file mode "src/main/java" version
1601 (let ((file "src/main/mdo/profiles.mdo"))
1602 (modello-single-mode file "1.0.0" "java")
1603 (modello-single-mode file "1.0.0" "xpp3-reader")
1604 (modello-single-mode file "1.0.0" "xpp3-writer"))
1605 (let ((file "src/main/mdo/paramdoc.mdo"))
1606 (modello-single-mode file "1.0.0" "java")
1607 (modello-single-mode file "1.0.0" "xpp3-reader")
1608 (modello-single-mode file "1.0.0" "xpp3-writer"))
1610 (add-after 'build 'generate-metadata
1612 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1613 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1614 "--source" "src/main/java"
1615 "--output" "build/classes/META-INF/plexus/components.xml"
1616 "--classes" "build/classes"
1617 "--descriptors" "build/classes/META-INF")
1619 (add-before 'check 'build-tests
1621 (invoke "ant" "compile-tests")
1623 (add-after 'build-tests 'generate-test-metadata
1625 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1627 ":build/test-classes")
1628 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1629 "--source" "src/test/java"
1630 "--output" "build/test-classes/META-INF/plexus/components.xml"
1631 "--classes" "build/test-classes"
1632 "--descriptors" "build/test-classes/META-INF")
1634 (add-after 'generate-metadata 'rebuild
1636 (invoke "ant" "jar")
1639 (install-from-pom "pom.xml")))))
1641 `(("maven-artifact" ,maven-artifact)
1642 ("maven-repository-metadata" ,maven-repository-metadata)
1643 ("maven-builder-support" ,maven-builder-support)
1644 ("maven-model" ,maven-model)
1645 ("maven-model-builder" ,maven-model-builder)
1646 ("maven-settings" ,maven-settings)
1647 ("maven-settings-builder" ,maven-settings-builder)
1648 ("maven-core" ,maven-core)
1649 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1650 ("maven-wagon-file" ,maven-wagon-file)
1651 ("maven-resolver-api" ,maven-resolver-api)
1652 ("maven-resolver-util" ,maven-resolver-util)
1653 ("maven-resolver-spi" ,maven-resolver-spi)
1654 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1656 `(("java-modello-core" ,java-modello-core)
1657 ("java-plexus-utils" ,java-plexus-utils)
1658 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1659 ("java-plexus-classworlds" ,java-plexus-classworlds)
1660 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1661 ("java-sisu-build-api" ,java-sisu-build-api)
1662 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1663 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1664 ("java-javax-inject" ,java-javax-inject)
1665 ("java-guice" ,java-guice)
1666 ("java-guava" ,java-guava)
1667 ("java-cglib" ,java-cglib)
1668 ("java-asm" ,java-asm)
1669 ("java-modello-plugins-java" ,java-modello-plugins-java)
1670 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1671 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1673 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1674 ("java-commons-cli" ,java-commons-cli)
1675 ("java-plexus-cli" ,java-plexus-cli)
1676 ("java-jdom2" ,java-jdom2)
1677 ("maven-plugin-api" ,maven-plugin-api)
1678 ("java-qdox" ,java-qdox)
1680 ("java-plexus-cipher" ,java-plexus-cipher)
1681 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1682 ("java-jsr250" ,java-jsr250)
1683 ("java-cdi-api" ,java-cdi-api)
1684 ("java-junit" ,java-junit)
1685 ("maven-resolver-impl" ,maven-resolver-impl)
1686 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1687 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1688 ("java-commons-lang3" ,java-commons-lang3)
1689 ("java-aop" ,java-aopalliance)
1690 ("maven-resolver-provider" ,maven-resolver-provider)
1691 ("java-slf4j-api" ,java-slf4j-api)
1692 ("java-slf4j-simple" ,java-slf4j-simple)
1693 ,@(package-inputs java-slf4j-api)))
1694 (description "Apache Maven is a software project management and comprehension
1695 tool. This package contains Maven2 classes maintained as compatibility
1696 layer for plugins that need to keep Maven2 compatibility.")))
1698 (define-public maven
1700 (inherit maven-artifact)
1704 (modify-phases %standard-phases
1706 (lambda* (#:key inputs #:allow-other-keys)
1707 ;; Recreate the configuration for the loader
1708 (with-output-to-file "apache-maven/src/bin/m2.conf"
1710 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1712 (format #t "set maven.conf default ${maven.home}/conf~%")
1714 (format #t "[plexus.core]~%")
1715 (format #t "load ${maven.conf}/logging~%")
1716 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1717 ;; Reference every jar so plexus-classworlds can find them.
1719 (lambda (dependency)
1722 (format #t "load ~a~%" file))
1723 (find-files (assoc-ref inputs dependency) ".*.jar$")))
1724 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1725 "maven-builder-support" "maven-model" "maven-model-builder"
1726 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1727 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1728 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1729 "maven-resolver-connector-basic" "maven-resolver-provider"
1730 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1731 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1732 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1733 "maven-wagon-http-shared" "maven-wagon-tck-http"
1734 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1735 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1736 "java-javax-inject" "java-plexus-component-annotations"
1737 "java-plexus-utils" "java-plexus-interpolation"
1738 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1739 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1740 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1741 "java-slf4j-simple"))))
1742 (substitute* "apache-maven/src/bin/mvn"
1747 (assoc-ref inputs "java-plexus-classworlds")
1750 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1754 (lambda* (#:key outputs #:allow-other-keys)
1755 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1756 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1757 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1758 (for-each (lambda (file)
1759 (install-file (string-append "apache-maven/src/bin/" file)
1761 (chmod (string-append bin file) #o755))
1762 '("mvn" "mvnDebug" "mvnyjp"))
1763 (install-file "apache-maven/src/bin/m2.conf" bin)
1764 (copy-recursively "apache-maven/src/conf" conf))
1767 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1768 ("maven-artifact" ,maven-artifact)
1769 ("maven-embedder" ,maven-embedder)
1770 ("maven-core" ,maven-core)
1771 ("maven-compat" ,maven-compat)
1772 ("maven-builder-support" ,maven-builder-support)
1773 ("maven-model" ,maven-model)
1774 ("maven-model-builder" ,maven-model-builder)
1775 ("maven-settings" ,maven-settings)
1776 ("maven-settings-builder" ,maven-settings-builder)
1777 ("maven-plugin-api" ,maven-plugin-api)
1778 ("maven-repository-metadata" ,maven-repository-metadata)
1779 ("maven-shared-utils" ,maven-shared-utils)
1780 ("maven-resolver-api" ,maven-resolver-api)
1781 ("maven-resolver-spi" ,maven-resolver-spi)
1782 ("maven-resolver-util" ,maven-resolver-util)
1783 ("maven-resolver-impl" ,maven-resolver-impl)
1784 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1785 ("maven-resolver-provider" ,maven-resolver-provider)
1786 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1787 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1788 ("maven-wagon-file" ,maven-wagon-file)
1789 ("maven-wagon-http" ,maven-wagon-http)
1790 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1791 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
1792 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
1793 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
1794 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
1795 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1796 ("java-guice" ,java-guice)
1797 ("java-aopalliance" ,java-aopalliance)
1798 ("java-cglib" ,java-cglib)
1799 ("java-asm" ,java-asm)
1800 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1801 ("java-javax-inject" ,java-javax-inject)
1802 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1803 ("java-plexus-utils" ,java-plexus-utils)
1804 ("java-plexus-interpolation" ,java-plexus-interpolation)
1805 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1806 ("java-plexus-cipher" ,java-plexus-cipher)
1807 ("java-guava" ,java-guava)
1808 ("java-jansi" ,java-jansi)
1809 ("java-jsr250" ,java-jsr250)
1810 ("java-cdi-api" ,java-cdi-api)
1811 ("java-commons-cli" ,java-commons-cli)
1812 ("java-commons-io" ,java-commons-io)
1813 ("java-commons-lang3" ,java-commons-lang3)
1814 ("java-slf4j-api" ,java-slf4j-api)
1815 ;; TODO: replace with maven-slf4j-provider
1816 ("java-slf4j-simple" ,java-slf4j-simple)))
1818 `(("coreutils" ,coreutils)
1820 (description "Apache Maven is a software project management and comprehension
1821 tool. Based on the concept of a project object model: builds, dependency
1822 management, documentation creation, site publication, and distribution
1823 publication are all controlled from the @file{pom.xml} declarative file. Maven
1824 can be extended by plugins to utilise a number of other development tools for
1825 reporting or the build process.")))