gnu: add maven-shared-io.
[jackhill/guix/guix.git] / gnu / packages / maven.scm
CommitLineData
41125eaf
JL
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu>
b7a34617 3;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
53ba191b 4;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
a0068742 5;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
41125eaf
JL
6;;;
7;;; This file is part of GNU Guix.
8;;;
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.
13;;;
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.
18;;;
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/>.
21
22(define-module (gnu packages maven)
23 #:use-module ((guix licenses) #:prefix license:)
24 #:use-module (guix packages)
25 #:use-module (guix download)
a661af5c 26 #:use-module (guix git-download)
41125eaf
JL
27 #:use-module (guix utils)
28 #:use-module (guix build-system ant)
29 #:use-module (gnu packages)
7504f3c3 30 #:use-module (gnu packages base)
b2185040 31 #:use-module (gnu packages compression)
9f25cba6 32 #:use-module (gnu packages java)
ff0496d0 33 #:use-module (gnu packages maven-parent-pom)
f216a9f9 34 #:use-module (gnu packages web)
b1cfac7a
JL
35 #:use-module (gnu packages xml)
36 #:use-module (ice-9 match))
9f25cba6
JL
37
38(define-public java-plexus-component-metadata
39 (package
40 (inherit java-plexus-container-default)
41 (name "java-plexus-component-metadata")
42 (arguments
43 `(#:jar-name "plexus-component-metadata.jar"
44 #:source-dir "src/main/java"
45 #:test-dir "src/test"
46 #:jdk ,icedtea-8
47 #:phases
48 (modify-phases %standard-phases
49 (add-before 'configure 'chdir
50 (lambda _
51 (chdir "plexus-component-metadata")
52 #t))
53 (add-before 'build 'copy-resources
54 (lambda _
55 (copy-recursively "src/main/resources"
56 "build/classes/")
57 #t)))))
540f3628 58 (propagated-inputs
9f25cba6
JL
59 `(("java-plexus-container-default" ,java-plexus-container-default)
60 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
61 ("java-plexus-utils" ,java-plexus-utils)
62 ("java-plexus-cli" ,java-plexus-cli)
63 ("java-plexus-classworlds" ,java-plexus-classworlds)
64 ("maven-plugin-api" ,maven-plugin-api)
65 ("maven-plugin-annotations" ,maven-plugin-annotations)
66 ("maven-core-bootstrap" ,maven-core-bootstrap)
67 ("maven-model" ,maven-model)
68 ("java-commons-cli" ,java-commons-cli)
69 ("java-qdox" ,java-qdox)
70 ("java-jdom2" ,java-jdom2)
71 ("java-asm" ,java-asm)))
72 (native-inputs
73 `(("java-junit" ,java-junit)
74 ("java-guava" ,java-guava)
75 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
76 (synopsis "Inversion-of-control container for Maven")
77 (description "The Plexus project provides a full software stack for creating
78and executing software projects. Based on the Plexus container, the
79applications can utilise component-oriented programming to build modular,
80reusable components that can easily be assembled and reused. This package
81provides the Maven plugin generating the component metadata.")))
41125eaf
JL
82
83(define-public maven-resolver-api
84 (package
85 (name "maven-resolver-api")
0eab9e13 86 (version "1.3.1")
41125eaf 87 (source (origin
a661af5c
TGR
88 (method git-fetch)
89 (uri (git-reference
b0e7b699 90 (url "https://github.com/apache/maven-resolver")
a661af5c
TGR
91 (commit (string-append "maven-resolver-" version))))
92 (file-name (git-file-name name version))
41125eaf
JL
93 (sha256
94 (base32
a661af5c 95 "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
41125eaf
JL
96 (build-system ant-build-system)
97 (arguments
98 `(#:jar-name "maven-resolver-api.jar"
99 #:source-dir "maven-resolver-api/src/main/java"
51087d51
JL
100 #:test-dir "maven-resolver-api/src/test"
101 #:phases
102 (modify-phases %standard-phases
103 (replace 'install
104 (install-from-pom "maven-resolver-api/pom.xml")))))
41125eaf 105 (native-inputs
0eab9e13
JL
106 `(("java-asm" ,java-asm)
107 ("java-cglib" ,java-cglib)
108 ("java-hamcrest-core" ,java-hamcrest-core)
109 ("java-junit" ,java-junit)
110 ("java-mockito-1" ,java-mockito-1)
111 ("java-objenesis" ,java-objenesis)))
51087d51
JL
112 (propagated-inputs
113 `(("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
41125eaf
JL
114 (home-page "https://github.com/apache/maven-resolver")
115 (synopsis "Maven repository system API")
116 (description "This package contains the API for the maven repository system.")
117 (license license:asl2.0)))
d85cb539 118
51087d51
JL
119(define maven-resolver-parent-pom
120 (package
121 (inherit maven-resolver-api)
122 (name "maven-resolver-parent-pom")
123 (arguments
124 `(#:tests? #f
125 #:phases
126 (modify-phases %standard-phases
127 (delete 'configure)
128 (delete 'build)
129 (add-before 'install 'fix-pom
130 (lambda _
131 (substitute* "pom.xml"
132 (("<classifier>no_aop</classifier>") ""))
133 #t))
134 (replace 'install
135 (install-pom-file "pom.xml")))))
136 (propagated-inputs '())))
137
d85cb539
JL
138(define-public maven-resolver-spi
139 (package
140 (inherit maven-resolver-api)
141 (name "maven-resolver-spi")
142 (arguments
143 `(#:jar-name "maven-resolver-spi.jar"
144 #:source-dir "maven-resolver-spi/src/main/java"
145 #:test-dir "maven-resolver-spi/src/test"
51087d51
JL
146 #:phases
147 (modify-phases %standard-phases
148 (replace 'install
149 (install-from-pom "maven-resolver-spi/pom.xml")))))
150 (propagated-inputs
d85cb539
JL
151 `(("maven-resolver-api" ,maven-resolver-api)))
152 (synopsis "Maven repository system SPI")
153 (description "This package contains the service provider interface (SPI)
154for repository system implementations and repository connectors.")))
36053783
JL
155
156(define-public maven-resolver-test-util
157 (package
158 (inherit maven-resolver-api)
159 (name "maven-resolver-test-util")
160 (arguments
161 `(#:jar-name "maven-resolver-test-util.jar"
162 #:source-dir "maven-resolver-test-util/src/main/java"
163 #:test-dir "maven-resolver-test-util/src/test"
164 #:jdk ,icedtea-8))
165 (inputs
166 `(("maven-resolver-api" ,maven-resolver-api)
167 ("maven-resolver-spi" ,maven-resolver-spi)))
168 (synopsis "Utility classes for testing the maven repository system")
169 (description "This package contains a collection of utility classes to
170ease testing of the repository system.")))
bca6cf54
JL
171
172(define-public maven-resolver-util
173 (package
174 (inherit maven-resolver-api)
175 (name "maven-resolver-util")
176 (arguments
177 `(#:jar-name "maven-resolver-util.jar"
178 #:source-dir "maven-resolver-util/src/main/java"
179 #:test-dir "maven-resolver-util/src/test"
51087d51
JL
180 #:phases
181 (modify-phases %standard-phases
182 (replace 'install
183 (install-from-pom "maven-resolver-util/pom.xml")))))
184 (propagated-inputs
bca6cf54
JL
185 `(("maven-resolver-api" ,maven-resolver-api)))
186 (native-inputs
187 `(("java-junit" ,java-junit)
188 ("java-hamcrest-core" ,java-hamcrest-core)
189 ("maven-resolver-test-util" ,maven-resolver-test-util)))
190 (synopsis "Utility classes for the maven repository system")
191 (description "This package contains a collection of utility classes to
192ease usage of the repository system.")))
f70666c9
JL
193
194(define-public maven-resolver-connector-basic
195 (package
196 (inherit maven-resolver-api)
197 (name "maven-resolver-connector-basic")
198 (arguments
199 `(#:jar-name "maven-resolver-connector-basic.jar"
200 #:source-dir "maven-resolver-connector-basic/src/main/java"
201 #:test-dir "maven-resolver-connector-basic/src/test"
202 #:jdk ,icedtea-8
203 #:phases
204 (modify-phases %standard-phases
205 (add-before 'build 'generate-sisu
206 (lambda _
207 (mkdir-p "build/classes/META-INF/sisu")
208 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
209 (lambda _
0eab9e13 210 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
51087d51
JL
211 #t))
212 (replace 'install
213 (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
214 (propagated-inputs
f70666c9
JL
215 `(("maven-resolver-api" ,maven-resolver-api)
216 ("maven-resolver-spi" ,maven-resolver-spi)
217 ("maven-resolver-util" ,maven-resolver-util)
0eab9e13 218 ("java-slf4j-api" ,java-slf4j-api)))
f70666c9 219 (native-inputs
51087d51
JL
220 `(("java-javax-inject" ,java-javax-inject)
221 ("java-junit" ,java-junit)
f70666c9
JL
222 ("maven-resolver-test-util" ,maven-resolver-test-util)))
223 (synopsis "Maven repository connector implementation")
224 (description "This package contains a repository connector implementation
225for repositories using URI-based layouts.")))
458687d5 226
90fe8797
JL
227(define-public maven-resolver-impl
228 (package
229 (inherit maven-resolver-api)
230 (name "maven-resolver-impl")
231 (arguments
232 `(#:jar-name "maven-resolver-impl.jar"
233 #:source-dir "maven-resolver-impl/src/main/java"
234 #:test-dir "maven-resolver-impl/src/test"
90fe8797
JL
235 #:phases
236 (modify-phases %standard-phases
237 (add-before 'build 'generate-sisu
238 (lambda _
239 (mkdir-p "build/classes/META-INF/sisu")
240 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
241 (lambda _
242 (display
243 (string-append
244 ;; Build this list by looking for files containing "@Named"
245 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
0eab9e13
JL
246 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
247 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
248 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
90fe8797 249 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
0eab9e13 250 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
90fe8797 251 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
90fe8797 252 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
90fe8797 253 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
90fe8797 254 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
90fe8797 255 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
0eab9e13
JL
256 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
257 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
258 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
259 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
260 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
90fe8797 261 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
0eab9e13
JL
262 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
263 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
264 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
265 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
266 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
267 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
51087d51
JL
268 #t))
269 (replace 'install
270 (install-from-pom "maven-resolver-impl/pom.xml")))))
271 (propagated-inputs
90fe8797
JL
272 `(("maven-resolver-api" ,maven-resolver-api)
273 ("maven-resolver-spi" ,maven-resolver-spi)
274 ("maven-resolver-util" ,maven-resolver-util)
275 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
276 ("java-javax-inject" ,java-javax-inject)
277 ("java-guice" ,java-guice)
51087d51
JL
278 ("java-slf4j-api" ,java-slf4j-api)
279 ("maven-resolver-parent-pom" ,maven-resolver-parent-pom)))
90fe8797
JL
280 (native-inputs
281 `(("java-junit" ,java-junit)
90fe8797
JL
282 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
283
19126bba
JL
284(define-public maven-resolver-transport-wagon
285 (package
286 (inherit maven-resolver-api)
287 (name "maven-resolver-transport-wagon")
288 (arguments
289 `(#:jar-name "maven-resolver-transport-wagon.jar"
290 #:source-dir "maven-resolver-transport-wagon/src/main/java"
291 #:test-dir "maven-resolver-transport-wagon/src/test"
292 #:jdk ,icedtea-8
293 #:phases
294 (modify-phases %standard-phases
295 (add-before 'build 'generate-sisu
296 (lambda _
297 (mkdir-p "build/classes/META-INF/sisu")
298 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
299 (lambda _
300 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
301 #t))
302 (add-before 'build 'generate-components.xml
303 (lambda _
304 (mkdir-p "build/classes/META-INF/plexus")
305 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
306 (lambda _
307 (display
308 (string-append
309 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
310<component-set>
311 <components>
312 <component>
313 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
314 <role-hint>plexus</role-hint>
315 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
316 <description />
317 <isolated-realm>false</isolated-realm>
318 <requirements>
319 <requirement>
320 <role>org.codehaus.plexus.PlexusContainer</role>
321 <role-hint />
322 <field-name>container</field-name>
323 </requirement>
324 </requirements>
325 </component>
326 <component>
327 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
328 <role-hint>plexus</role-hint>
329 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
330 <description />
331 <isolated-realm>false</isolated-realm>
332 <requirements>
333 <requirement>
334 <role>org.codehaus.plexus.PlexusContainer</role>
335 <role-hint />
336 <field-name>container</field-name>
337 </requirement>
338 </requirements>
339 </component>
340 </components>
341</component-set>\n"))))
342 #t)))))
343 (inputs
344 `(("maven-resolver-api" ,maven-resolver-api)
345 ("maven-resolver-spi" ,maven-resolver-spi)
346 ("maven-resolver-util" ,maven-resolver-util)
347 ("java-javax-inject" ,java-javax-inject)
348 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
349 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
350 ("java-plexus-classworld" ,java-plexus-classworlds)
351 ("java-plexus-plexus-util" ,java-plexus-utils)
0eab9e13 352 ("java-slf4j-api" ,java-slf4j-api)
19126bba
JL
353 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
354 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
355 (native-inputs
356 `(("java-junit" ,java-junit)
357 ("java-hamcrest-core" ,java-hamcrest-core)
358 ("maven-resolver-test-util" ,maven-resolver-test-util)
359 ("java-guava" ,java-guava)
360 ("java-cglib" ,java-cglib)
361 ("java-asm" ,java-asm)
362 ("java-aopalliance" ,java-aopalliance)
363 ("java-guice" ,java-guice)))
364 (synopsis "Transport implementation for Maven")
365 (description "This package contains a transport implementation based on
366Maven Wagon, for use in Maven.")))
367
a18f0a7f
JL
368;; aether is the parent project that was forked into maven-resolver. It used
369;; to be used with older versions of Maven, and is still required for some
370;; plugins and their dependencies. This version is required for the plugins,
371;; even though there are newer versions of this project.
372(define-public java-sonatype-aether-api
373 (package
374 (name "java-sonatype-aether-api")
375 (version "1.7")
376 (source (origin
377 (method git-fetch)
378 (uri (git-reference
379 (url "https://github.com/sonatype/sonatype-aether")
380 (commit (string-append "aether-" version))))
381 (file-name (git-file-name name version))
382 (sha256
383 (base32
384 "1wn9fv91n40bvlwbzy0dmh0xqibxl2mpzpnbibhqss3c0zlr1ccq"))))
385 (build-system ant-build-system)
386 (arguments
387 `(#:jar-name "aether-api.jar"
388 #:source-dir "aether-api/src/main/java"
389 #:test-dir "aether-api/src/test"
390 #:phases
391 (modify-phases %standard-phases
392 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
393 (replace 'install (install-from-pom "aether-api/pom.xml")))))
394 (propagated-inputs
395 `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-6)))
396 (native-inputs `(("java-junit" ,java-junit)))
397 (home-page "https://github.com/sonatype/sonatype-aether")
398 (synopsis "Maven repository system API")
399 (description "This package contains the API for the maven repository system.")
400 (license license:asl2.0)))
401
c68e3dc1
JL
402(define-public java-sonatype-aether-spi
403 (package
404 (inherit java-sonatype-aether-api)
405 (name "java-sonatype-aether-spi")
406 (arguments
407 `(#:jar-name "aether-spi.jar"
408 #:source-dir "aether-spi/src/main/java"
409 #:tests? #f; no tests
410 #:phases
411 (modify-phases %standard-phases
412 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
413 (propagated-inputs
414 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
415 (synopsis "Maven repository system SPI")
416 (description "This package contains the service provider interface (SPI)
417for repository system implementations and repository connectors.")))
418
a1ed7936
JL
419(define-public java-sonatype-aether-test-util
420 (package
421 (inherit java-sonatype-aether-api)
422 (name "java-sonatype-aether-test-util")
423 (arguments
424 `(#:jar-name "java-sonatype-aether-test-util.jar"
425 #:source-dir "aether-test-util/src/main/java"
426 #:test-dir "aether-test-util/src/test"))
427 (inputs
428 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
429 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)))
430 (synopsis "Utility classes for testing the maven repository system")
431 (description "This package contains a collection of utility classes to
432ease testing of the repository system.")))
433
8815719c
JL
434(define-public java-sonatype-aether-util
435 (package
436 (inherit java-sonatype-aether-api)
437 (name "java-sonatype-aether-util")
438 (arguments
439 `(#:jar-name "aether-util.jar"
440 #:source-dir "aether-util/src/main/java"
441 #:test-dir "aether-util/src/test"
442 #:phases
443 (modify-phases %standard-phases
444 (replace 'install (install-from-pom "aether-util/pom.xml")))))
445 (propagated-inputs
446 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)))
447 (native-inputs
448 `(("java-junit" ,java-junit)
449 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))
450 (synopsis "Utility classes for the maven repository system")
451 (description "This package contains a collection of utility classes to
452ease usage of the repository system.")))
453
540f3628
JL
454(define-public java-sonatype-aether-impl
455 (package
456 (inherit java-sonatype-aether-api)
457 (name "java-sonatype-aether-impl")
458 (arguments
459 `(#:jar-name "aether-impl.jar"
460 #:source-dir "aether-impl/src/main/java"
461 #:test-dir "aether-impl/src/test"
462 #:phases
463 (modify-phases %standard-phases
464 (add-before 'install 'fix-pom
465 (lambda _
466 (substitute* "aether-impl/pom.xml"
467 (("org.sonatype.sisu") "org.codehaus.plexus")
468 (("sisu-inject-plexus") "plexus-container-default"))
469 #t))
470 (add-after 'build 'generate-metadata
471 (lambda _
472 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
473 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
474 "--source" "src/main/java"
475 "--output" "build/classes/META-INF/plexus/components.xml"
476 "--classes" "build/classes"
477 "--descriptors" "build/classes/META-INF")
478 #t))
479 (add-after 'generate-metadata 'rebuild
480 (lambda _
481 (invoke "ant" "jar")
482 #t))
483 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
484 (propagated-inputs
485 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
486 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
487 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
488 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
489 ("java-plexus-container-default" ,java-plexus-container-default)
490 ("java-slf4j-api" ,java-slf4j-api)))
491 (native-inputs
492 `(("java-junit" ,java-junit)
493 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
494 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util)))))
495
9a7d55ee
JL
496;; Again, this old version is required by some maven plugins
497(define-public java-eclipse-aether-api
498 (package
499 (name "java-eclipse-aether-api")
500 (version "1.0.2")
501 (source (origin
502 (method git-fetch)
503 (uri (git-reference
504 (url "https://github.com/eclipse/aether-core")
505 (commit "aether-1.0.2.v20150114")))
506 (file-name (git-file-name name version))
507 (sha256
508 (base32
509 "14d336nn0kh5ddf23j37va3hd8gaai19llrpxhf4bcc7g7sgdqxs"))))
510 (build-system ant-build-system)
511 (arguments
512 `(#:jar-name "aether-api.jar"
513 #:source-dir "aether-api/src/main/java"
514 #:test-dir "aether-api/src/test"
515 #:phases
516 (modify-phases %standard-phases
517 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
518 (replace 'install (install-from-pom "aether-api/pom.xml")))))
519 (native-inputs `(("java-junit" ,java-junit)))
520 (home-page "https://github.com/sonatype/sonatype-aether")
521 (synopsis "Maven repository system API")
522 (description "This package contains the API for the maven repository system.")
523 (license license:asl2.0)))
524
5d1a24dd
JL
525(define-public java-eclipse-aether-spi
526 (package
527 (inherit java-eclipse-aether-api)
528 (name "java-eclipse-aether-spi")
529 (arguments
530 `(#:jar-name "aether-spi.jar"
531 #:source-dir "aether-spi/src/main/java"
532 #:test-dir "aether-spi/src/test"
533 #:phases
534 (modify-phases %standard-phases
535 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
536 (propagated-inputs
537 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
538 (synopsis "Maven repository system SPI")
539 (description "This package contains the service provider interface (SPI)
540for repository system implementations and repository connectors.")))
541
7a85b602
JL
542(define-public java-eclipse-aether-test-util
543 (package
544 (inherit java-eclipse-aether-api)
545 (name "java-eclipse-aether-test-util")
546 (arguments
547 `(#:jar-name "aether-test-util.jar"
548 #:source-dir "aether-test-util/src/main/java"
549 #:test-dir "aether-test-util/src/test"
550 #:phases
551 (modify-phases %standard-phases
552 (replace 'install (install-from-pom "aether-util/pom.xml")))))
553 (propagated-inputs
554 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
555 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)))
556 (synopsis "Utility classes for testing the maven repository system")
557 (description "This package contains a collection of utility classes to
558ease testing of the repository system.")))
559
47b4ed50
JL
560(define-public java-eclipse-aether-util
561 (package
562 (inherit java-eclipse-aether-api)
563 (name "java-eclipse-aether-util")
564 (arguments
565 `(#:jar-name "aether-util.jar"
566 #:source-dir "aether-util/src/main/java"
567 #:test-dir "aether-util/src/test"
568 #:phases
569 (modify-phases %standard-phases
570 (replace 'install (install-from-pom "aether-util/pom.xml")))))
571 (propagated-inputs
572 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)))
573 (native-inputs
574 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
575 ("java-junit" ,java-junit)))
576 (synopsis "Utility classes for the maven repository system")
577 (description "This package contains a collection of utility classes to
578ease usage of the repository system.")))
579
b277bd37
JL
580(define-public java-eclipse-aether-impl
581 (package
582 (inherit java-eclipse-aether-api)
583 (name "java-eclipse-aether-impl")
584 (arguments
585 `(#:jar-name "aether-impl.jar"
586 #:source-dir "aether-impl/src/main/java"
587 #:test-dir "aether-impl/src/test"
588 #:phases
589 (modify-phases %standard-phases
590 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
591 (propagated-inputs
592 `(("java-eclipse-aether-api" ,java-eclipse-aether-api)
593 ("java-eclipse-aether-spi" ,java-eclipse-aether-spi)
594 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
595 ("java-javax-inject" ,java-javax-inject)
596 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
597 ("java-guice" ,java-guice)
598 ("java-slf4j-api" ,java-slf4j-api)))
599 (native-inputs
600 `(("java-eclipse-aether-test-util" ,java-eclipse-aether-test-util)
601 ("java-junit" ,java-junit)))))
602
b2185040
JL
603(define-public maven-shared-utils
604 (package
605 (name "maven-shared-utils")
606 (version "3.2.1")
607 (source (origin
608 (method url-fetch)
9a01efa2 609 (uri (string-append "mirror://apache/maven/shared/"
b2185040
JL
610 "maven-shared-utils-" version "-source-release.zip"))
611 (sha256
612 (base32
613 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
614 (build-system ant-build-system)
615 (arguments
616 `(#:jar-name "maven-shared-utils.jar"
617 #:source-dir "src/main/java"
b2185040
JL
618 #:phases
619 (modify-phases %standard-phases
159e6d9f
JL
620 (add-before 'build 'fix-/bin/sh-invocation
621 (lambda _
622 (substitute* (find-files "src" ".*.java$")
623 (("/bin/sh") (which "sh")))
624 #t))
b2185040
JL
625 (add-before 'check 'remove-cyclic-dep
626 (lambda _
627 (delete-file
628 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
51087d51
JL
629 #t))
630 (replace 'install
631 (install-from-pom "pom.xml")))))
632 (propagated-inputs
b2185040
JL
633 `(("java-jansi" ,java-jansi)
634 ("java-commons-io" ,java-commons-io)
635 ("java-jsr305" ,java-jsr305)
51087d51
JL
636 ("java-plexus-container-default" ,java-plexus-container-default)
637 ("maven-parent-pom-30" ,maven-parent-pom-30)))
b2185040
JL
638 (native-inputs
639 `(("unzip" ,unzip)
640 ("java-junit" ,java-junit)
641 ("java-hamcrest-core" ,java-hamcrest-core)
642 ("java-commons-lang3" ,java-commons-lang3)))
643 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
644 (synopsis "Plexus-util replacement for maven")
645 (description "This project aims to be a functional replacement for
646plexus-utils in Maven. It is not a 100% API compatible replacement but a
647replacement with improvements.")
648 (license license:asl2.0)))
649
a59d5f35
JL
650(define-public maven-plugin-annotations
651 (package
652 (name "maven-plugin-annotations")
653 (version "3.5")
654 (source (origin
655 (method url-fetch)
9a01efa2 656 (uri (string-append "mirror://apache/maven/"
a59d5f35
JL
657 "plugin-tools/maven-plugin-tools-" version
658 "-source-release.zip"))
659 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
660 (build-system ant-build-system)
661 (arguments
662 `(#:jar-name "maven-plugin-annotations.jar"
663 #:source-dir "maven-plugin-annotations/src/main/java"
664 #:tests? #f))
665 (inputs
666 `(("maven-artifact" ,maven-artifact)))
667 (native-inputs
668 `(("unzip" ,unzip)))
669 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
670 (synopsis "Java 5 annotations to use in Mojos")
671 (description "This package contains Java 5 annotations for use in Mojos.")
672 (license license:asl2.0)))
673
ff7a0fcf
JL
674(define-public maven-wagon-provider-api
675 (package
676 (name "maven-wagon-provider-api")
ff0496d0 677 (version "3.3.4")
ff7a0fcf
JL
678 (source (origin
679 (method url-fetch)
51087d51 680 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
ff7a0fcf 681 "wagon-" version "-source-release.zip"))
ff0496d0
JL
682 (sha256
683 (base32
684 "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
ff7a0fcf
JL
685 (build-system ant-build-system)
686 (arguments
687 `(#:jar-name "maven-wagon-provider-api.jar"
688 #:source-dir "wagon-provider-api/src/main/java"
ff0496d0
JL
689 #:test-dir "wagon-provider-api/src/test"
690 #:phases
691 (modify-phases %standard-phases
692 (replace 'install
693 (install-from-pom "wagon-provider-api/pom.xml")))))
694 (propagated-inputs
695 `(("java-plexus-utils" ,java-plexus-utils)
696 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
ff7a0fcf
JL
697 (native-inputs
698 `(("unzip" ,unzip)
699 ("java-junit" ,java-junit)
700 ("java-easymock" ,java-easymock)))
701 (home-page "https://maven.apache.org/wagon")
702 (synopsis "Transport abstraction for Maven")
703 (description "Maven Wagon is a transport abstraction that is used in Maven's
704artifact and repository handling code.")
705 (license license:asl2.0)))
706
ff0496d0
JL
707(define maven-wagon-parent-pom
708 (package
709 (inherit maven-wagon-provider-api)
710 (arguments
711 `(#:tests? #f
712 #:phases
713 (modify-phases %standard-phases
714 (delete 'configure)
715 (delete 'build)
716 (replace 'install
717 (install-pom-file "pom.xml")))))
718 (propagated-inputs
719 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
720 (native-inputs
721 `(("unzip" ,unzip)))))
722
f216a9f9
JL
723(define-public maven-wagon-provider-test
724 (package
725 (inherit maven-wagon-provider-api)
726 (name "maven-wagon-provider-test")
727 (arguments
728 `(#:jar-name "maven-wagon-provider-test.jar"
729 #:source-dir "wagon-provider-test/src/main/java"
730 #:tests? #f; no tests
731 #:jdk ,icedtea-8))
732 (inputs
733 `(("java-plexus-utils" ,java-plexus-utils)
734 ("java-plexus-container-default" ,java-plexus-container-default)
ff0496d0 735 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
f216a9f9
JL
736 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
737 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
738 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
739 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
740 ("java-slf4j-api" ,java-slf4j-api)
4b472f6a 741 ("java-javaee-servletapi" ,java-javaee-servletapi)
f216a9f9
JL
742 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
743 (synopsis "Test classes from maven-wagon")
744 (description "Maven Wagon is a transport abstraction that is used in Maven's
745artifact and repository handling code. This package contains common test
746classes used in multiple maven-wagon components.")))
747
0d1b3b39
JL
748(define-public maven-wagon-file
749 (package
750 (inherit maven-wagon-provider-api)
751 (name "maven-wagon-file")
752 (arguments
753 `(#:jar-name "maven-wagon-file.jar"
754 #:source-dir "wagon-providers/wagon-file/src/main/java"
755 #:test-dir "wagon-providers/wagon-file/src/test"
756 #:jdk ,icedtea-8
757 #:phases
758 (modify-phases %standard-phases
759 (add-before 'check 'fix-paths
760 (lambda _
761 ;; Tests assume they are run by maven, which copies test resources
762 ;; to target. Our ant-build-system does the same, but with the
763 ;; build directory.
764 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
765 (("target") "build"))
766 #t))
767 (add-after 'build 'generate-metadata
768 (lambda _
769 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
770 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
771 "--source" "wagon-providers/wagon-file/src/main/java"
772 "--output" "build/classes/META-INF/plexus/components.xml"
773 "--classes" "build/classes"
774 "--descriptors" "build/classes/META-INF")
775 #t))
776 (add-after 'generate-metadata 'rebuild
777 (lambda _
778 (invoke "ant" "jar")
779 #t)))))
780 (inputs
781 `(("java-plexus-utils" ,java-plexus-utils)
782 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
783 (native-inputs
784 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
785 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
786 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
787 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
788 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
789 ("java-plexus-classworlds" ,java-plexus-classworlds)
790 ("java-guava" ,java-guava)
791 ("java-guice" ,java-guice)
792 ("java-javax-inject" ,java-javax-inject)
793 ("java-cglib" ,java-cglib)
794 ("java-slf4j-api" ,java-slf4j-api)
795 ("java-plexus-utils" ,java-plexus-utils)
796 ("java-plexus-cli" ,java-plexus-cli)
797 ("maven-plugin-api" ,maven-plugin-api)
798 ("maven-plugin-annotations" ,maven-plugin-annotations)
799 ("maven-core" ,maven-core)
800 ("maven-model" ,maven-model)
801 ("java-commons-cli" ,java-commons-cli)
802 ("java-qdox" ,java-qdox)
803 ("java-jdom2" ,java-jdom2)
804 ("java-asm" ,java-asm)
805 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
806 ,@(package-native-inputs maven-wagon-provider-api)))
807 (synopsis "Wagon provider that gets and puts artifacts using the file system")
808 (description "Maven Wagon is a transport abstraction that is used in Maven's
809artifact and repository handling code. It uses providers, that are tools to
810manage artifacts and deployment. This package contains the file provider which
811gets and puts artifacts using the file system.")))
812
53360e48
JL
813(define-public maven-wagon-tck-http
814 (package
815 (inherit maven-wagon-provider-api)
816 (name "maven-wagon-tck-http")
817 (arguments
818 `(#:jar-name "maven-wagon-tck-http.jar"
819 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
820 #:tests? #f; no tests
821 #:jdk ,icedtea-8))
822 (inputs
823 `(("java-plexus-util" ,java-plexus-utils)
824 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
53ba191b 825 ("java-javaee-servletapi" ,java-javaee-servletapi)
53360e48
JL
826 ("java-slf4j-api" ,java-slf4j-api)
827 ("java-commons-codec" ,java-commons-codec)
828 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
829 ("java-plexus-classworlds" ,java-plexus-classworlds)
830 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
831 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
832 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
833 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
834 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
835 (synopsis "Wagon HTTP Test Compatibility Kit")
836 (description "Maven Wagon is a transport abstraction that is used in Maven's
837artifact and repository handling code. This package contains the HTTP
838Test Compatibility Kit.")))
839
c3f5ec6e
JL
840(define-public maven-wagon-http-shared
841 (package
842 (inherit maven-wagon-provider-api)
843 (name "maven-wagon-http-shared")
844 (arguments
845 `(#:jar-name "maven-wagon-http-shared.jar"
846 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
847 #:test-dir "wagon-providers/wagon-http-shared/src/test"
848 #:jdk ,icedtea-8
849 #:phases
850 (modify-phases %standard-phases
851 (add-after 'build 'generate-metadata
852 (lambda _
853 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
854 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
855 "--source" "wagon-providers/wagon-http-shared/src/main/java"
856 "--output" "build/classes/META-INF/plexus/components.xml"
857 "--classes" "build/classes"
858 "--descriptors" "build/classes/META-INF")
859 #t))
860 (add-after 'generate-metadata 'rebuild
861 (lambda _
862 (invoke "ant" "jar")
863 #t)))))
864 (inputs
865 `(("java-plexus-utils" ,java-plexus-utils)
866 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
867 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
868 ("java-commons-io" ,java-commons-io)
869 ("java-jsoup" ,java-jsoup)
870 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
871 (native-inputs
872 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
873 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
874 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
875 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
876 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
877 ("java-plexus-classworlds" ,java-plexus-classworlds)
878 ("java-guava" ,java-guava)
879 ("java-guice" ,java-guice)
880 ("java-javax-inject" ,java-javax-inject)
881 ("java-cglib" ,java-cglib)
882 ("java-slf4j-api" ,java-slf4j-api)
883 ("java-plexus-utils" ,java-plexus-utils)
884 ("java-plexus-cli" ,java-plexus-cli)
885 ("maven-plugin-api" ,maven-plugin-api)
886 ("maven-plugin-annotations" ,maven-plugin-annotations)
887 ("maven-core" ,maven-core)
888 ("maven-model" ,maven-model)
889 ("java-commons-cli" ,java-commons-cli)
890 ("java-qdox" ,java-qdox)
891 ("java-jdom2" ,java-jdom2)
892 ("java-asm" ,java-asm)
893 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
894 ,@(package-native-inputs maven-wagon-provider-api)))
895 (synopsis "Shared Library for wagon providers supporting HTTP.")
896 (description "Maven Wagon is a transport abstraction that is used in Maven's
897artifact and repository handling code. It uses providers, that are tools to
898manage artifacts and deployment. This package contains a shared library for
899wagon providers supporting HTTP.")))
900
aa06dd0f
JL
901(define-public maven-wagon-http
902 (package
903 (inherit maven-wagon-provider-api)
904 (name "maven-wagon-http")
905 (arguments
906 `(#:jar-name "maven-wagon-http.jar"
907 #:source-dir "wagon-providers/wagon-http/src/main/java"
908 #:test-dir "wagon-providers/wagon-http/src/test"
909 #:test-exclude (list
910 "**/Abstract*.java"
911 ;; FIXME: javax.net.ssl.SSLHandshakeException:
912 ;; sun.security.validator.ValidatorException:
913 ;; PKIX path building failed:
914 ;; sun.security.provider.certpath.SunCertPathBuilderException:
915 ;; unable to find valid certification path to requested target
916 "**/HttpsWagonPreemptiveTest.java"
917 "**/HttpsWagonTest.java"
918 ;; Injection errors
919 "**/TckTest.java")
920 #:jdk ,icedtea-8
921 #:phases
922 (modify-phases %standard-phases
923 (add-before 'build 'copy-resources
924 (lambda _
925 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
926 "build/classes/META-INF/plexus")
927 #t))
928 (add-before 'check 'fix-resource-path
929 (lambda _
930 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
931 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
932 (("src/test") "wagon-providers/wagon-http/src/test"))
933 #t)))))
934 (inputs
935 `(("java-plexus-utils" ,java-plexus-utils)
936 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
937 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
938 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
939 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
940 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
941 (native-inputs
942 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
943 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
944 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
945 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
946 ("java-plexus-container-default" ,java-plexus-container-default)
947 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
948 ("java-plexus-classworlds" ,java-plexus-classworlds)
949 ("java-guava" ,java-guava)
950 ("java-guice" ,java-guice)
951 ("java-inject" ,java-javax-inject)
952 ("java-cglib" ,java-cglib)
953 ("java-slf4j-api" ,java-slf4j-api)
954 ("java-plexus-utils" ,java-plexus-utils)
955 ("java-plexus-cli" ,java-plexus-cli)
956 ("maven-plugin-api" ,maven-plugin-api)
957 ("maven-plugin-annotations" ,maven-plugin-annotations)
958 ("maven-core" ,maven-core)
959 ("maven-model" ,maven-model)
960 ("java-commons-cli" ,java-commons-cli)
961 ("java-qdox" ,java-qdox)
962 ("java-jdom2" ,java-jdom2)
963 ("java-asm" ,java-asm)
964 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
53ba191b 965 ("java-javaee-servletapi" ,java-javaee-servletapi)
aa06dd0f
JL
966 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
967 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
968 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
969 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
970 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
971 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
972 ("java-hamcrest-core" ,java-hamcrest-core)
973 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
974 ("java-commons-codec" ,java-commons-codec)
975 ("java-commons-io" ,java-commons-io)
976 ("java-jsoup" ,java-jsoup)
977 ("java-slf4j-simple" ,java-slf4j-simple)
978 ,@(package-native-inputs maven-wagon-provider-api)))
979 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
980 (description "Maven Wagon is a transport abstraction that is used in Maven's
981artifact and repository handling code. It uses providers, that are tools to
982manage artifacts and deployment. This package contains a Wagon provider that
983gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
984
51087d51 985(define maven-pom
458687d5 986 (package
51087d51 987 (name "maven-pom")
b77c8ddb 988 (version "3.6.1")
458687d5
JL
989 (source (origin
990 (method url-fetch)
9a01efa2 991 (uri (string-append "mirror://apache/maven/"
458687d5
JL
992 "maven-3/" version "/source/"
993 "apache-maven-" version "-src.tar.gz"))
b77c8ddb 994 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
458687d5
JL
995 (modules '((guix build utils)))
996 (snippet
997 '(begin
998 (for-each delete-file (find-files "." "\\.jar$"))
999 #t))
1000 (patches
1001 (search-patches "maven-generate-component-xml.patch"
1002 "maven-generate-javax-inject-named.patch"))))
1003 (build-system ant-build-system)
51087d51
JL
1004 (arguments
1005 `(#:tests? #f
1006 #:phases
1007 (modify-phases %standard-phases
1008 (delete 'configure)
1009 (delete 'build)
1010 (add-before 'install 'fix-dependencies
1011 (lambda _
1012 (substitute* "pom.xml"
1013 (("classWorldsVersion>.*")
1014 (string-append
1015 "classWorldsVersion>"
1016 ,(package-version java-plexus-classworlds)
1017 "</classWorldsVersion>\n"))
1018 (("commonsCliVersion>.*")
1019 (string-append
1020 "commonsCliVersion>"
1021 ,(package-version java-commons-cli)
1022 "</commonsCliVersion>\n"))
1023 (("commonsLangVersion>.*")
1024 (string-append
1025 "commonsLangVersion>"
1026 ,(package-version java-commons-lang3)
1027 "</commonsLangVersion>\n"))
1028 (("plexusUtilsVersion>.*")
1029 (string-append
1030 "plexusUtilsVersion>"
1031 ,(package-version java-plexus-utils)
1032 "</plexusUtilsVersion>\n"))
1033 (("plexusInterpolationVersion>.*")
1034 (string-append
1035 "plexusInterpolationVersion>"
1036 ,(package-version java-plexus-interpolation)
1037 "</plexusInterpolationVersion>\n"))
1038 (("guiceVersion>.*")
1039 (string-append
1040 "guiceVersion>"
1041 ,(package-version java-guice)
1042 "</guiceVersion>\n"))
1043 (("sisuInjectVersion>.*")
1044 (string-append
1045 "sisuInjectVersion>"
1046 ,(package-version java-eclipse-sisu-inject)
1047 "</sisuInjectVersion>\n"))
1048 (("securityDispatcherVersion>.*")
1049 (string-append
1050 "securityDispatcherVersion>"
1051 ,(package-version java-plexus-sec-dispatcher)
1052 "</securityDispatcherVersion>\n"))
1053 (("cipherVersion>.*")
1054 (string-append
1055 "cipherVersion>"
1056 ,(package-version java-plexus-cipher)
1057 "</cipherVersion>\n"))
1058 (("slf4jVersion>.*")
1059 (string-append
1060 "slf4jVersion>"
1061 ,(package-version java-slf4j-api)
1062 "</slf4jVersion>\n"))
1063 (("<classifier>no_aop</classifier>") ""))
1064 #t))
1065 (replace 'install
1066 (install-pom-file "pom.xml")))))
1067 (propagated-inputs
1068 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
1069 (home-page "https://maven.apache.org/")
1070 (synopsis "Build system")
1071 (description "Apache Maven is a software project management and comprehension
1072tool. This package contains the Maven pom file, used by all maven components.")
1073 (license license:asl2.0)))
1074
1075(define-public maven-artifact
1076 (package
1077 (inherit maven-pom)
1078 (name "maven-artifact")
458687d5
JL
1079 (arguments
1080 `(#:jar-name "maven-artifact.jar"
1081 #:source-dir "maven-artifact/src/main/java"
1082 #:test-dir "maven-artifact/src/test"
51087d51
JL
1083 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
1084 #:phases
1085 (modify-phases %standard-phases
1086 (replace 'install
1087 (install-from-pom "maven-artifact/pom.xml")))))
1088 (propagated-inputs
458687d5 1089 `(("java-plexus-utils" ,java-plexus-utils)
51087d51
JL
1090 ("java-commons-lang3" ,java-commons-lang3)
1091 ("maven-pom" ,maven-pom)))
458687d5
JL
1092 (native-inputs
1093 `(("java-junit" ,java-junit)))
458687d5
JL
1094 (description "Apache Maven is a software project management and comprehension
1095tool. This package contains the Maven Artifact classes, providing the
1096@code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
1097jar file is executable and provides a little tool to display how Maven parses
51087d51 1098and compares versions:")))
d55503a6
JL
1099
1100(define-public maven-model
1101 (package
1102 (inherit maven-artifact)
1103 (name "maven-model")
1104 (arguments
1105 `(#:jar-name "maven-model.jar"
1106 #:source-dir "maven-model/src/main/java"
1107 #:test-dir "maven-model/src/test"
d55503a6
JL
1108 #:phases
1109 (modify-phases %standard-phases
1110 (add-before 'build 'generate-models
1111 (lambda* (#:key inputs #:allow-other-keys)
1112 (define (modello-single-mode file version mode)
1113 (invoke "java" "org.codehaus.modello.ModelloCli"
1114 file mode "maven-model/src/main/java" version
1115 "false" "true"))
1116 (let ((file "maven-model/src/main/mdo/maven.mdo"))
1117 (modello-single-mode file "4.0.0" "java")
1118 (modello-single-mode file "4.0.0" "xpp3-reader")
1119 (modello-single-mode file "4.0.0" "xpp3-writer")
1120 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
51087d51
JL
1121 #t))
1122 (replace 'install (install-from-pom "maven-model/pom.xml")))))
1123 (propagated-inputs
d55503a6 1124 `(("java-commons-lang3" ,java-commons-lang3)
51087d51
JL
1125 ("java-plexus-utils" ,java-plexus-utils)
1126 ("maven-pom" ,maven-pom)))
d55503a6
JL
1127 (native-inputs
1128 `(("java-modello-core" ,java-modello-core)
1129 ;; for modello:
1130 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1131 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1132 ("java-guice" ,java-guice)
1133 ("java-cglib" ,java-cglib)
1134 ("java-asm" ,java-asm)
1135 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1136 ("java-javax-inject" ,java-javax-inject)
1137 ("java-plexus-classworlds" ,java-plexus-classworlds)
1138 ("java-guava" ,java-guava)
1139 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1140 ("java-sisu-build-api" ,java-sisu-build-api)
1141 ;; modello plugins:
1142 ("java-modello-plugins-java" ,java-modello-plugins-java)
1143 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1144 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1145 ;; for tests
1146 ("java-junit" ,java-junit)))
1147 (description "Apache Maven is a software project management and comprehension
1148tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
1149so really just plain Java objects.")))
f084641a
JL
1150
1151(define-public maven-builder-support
1152 (package
1153 (inherit maven-artifact)
1154 (name "maven-builder-support")
1155 (arguments
1156 `(#:jar-name "maven-builder-support.jar"
1157 #:source-dir "maven-builder-support/src/main/java"
1158 #:jdk ,icedtea-8
1159 #:test-dir "maven-builder-support/src/test"
1160 #:phases
1161 (modify-phases %standard-phases
1162 (add-before 'check 'fix-paths
1163 (lambda _
1164 (with-directory-excursion "maven-builder-support/src/test/java"
1165 (substitute*
1166 '("org/apache/maven/building/FileSourceTest.java"
1167 "org/apache/maven/building/UrlSourceTest.java")
1168 (("target/test-classes") "maven-builder-support/src/test/resources")))
51087d51
JL
1169 #t))
1170 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
1171 (propagated-inputs
1172 `(("maven-pom" ,maven-pom)))
f084641a 1173 (native-inputs
51087d51 1174 `(("java-junit" ,java-junit)))
f084641a
JL
1175 (description "Apache Maven is a software project management and comprehension
1176tool. This package contains a support library for descriptor builders (model,
1177setting, toolchains)")))
18110e45
JL
1178
1179(define-public maven-settings
1180 (package
1181 (inherit maven-artifact)
1182 (name "maven-settings")
1183 (arguments
1184 `(#:jar-name "maven-settings.jar"
1185 #:source-dir "maven-settings/src/main/java"
18110e45
JL
1186 #:tests? #f; no tests
1187 #:phases
1188 (modify-phases %standard-phases
1189 (add-before 'build 'generate-models
1190 (lambda* (#:key inputs #:allow-other-keys)
1191 (define (modello-single-mode file version mode)
1192 (invoke "java" "org.codehaus.modello.ModelloCli"
1193 file mode "maven-settings/src/main/java" version
1194 "false" "true"))
1195 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
1196 (modello-single-mode file "1.1.0" "java")
1197 (modello-single-mode file "1.1.0" "xpp3-reader")
1198 (modello-single-mode file "1.1.0" "xpp3-writer"))
51087d51
JL
1199 #t))
1200 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
1201 (propagated-inputs
1202 `(("java-plexus-utils" ,java-plexus-utils)
1203 ("maven-pom" ,maven-pom)))
18110e45
JL
1204 (native-inputs
1205 `(("java-modello-core" ,java-modello-core)
1206 ;; for modello:
1207 ;("container" ,java-plexus-container-default)
1208 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1209 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1210 ("java-guice" ,java-guice)
1211 ("java-cglib" ,java-cglib)
1212 ("java-asm" ,java-asm)
1213 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1214 ("java-javax-inject" ,java-javax-inject)
1215 ("java-plexus-classworlds" ,java-plexus-classworlds)
1216 ("java-plexus-utils" ,java-plexus-utils)
1217 ("java-guava" ,java-guava)
1218 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1219 ("java-sisu-build-api" ,java-sisu-build-api)
1220 ;; modello plugins:
1221 ("java-modello-plugins-java" ,java-modello-plugins-java)
1222 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1223 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1224 (description "Apache Maven is a software project management and comprehension
1225tool. This package contains strictly the model for Maven settings, that is
1226simply plain java objects.")))
3a5572ae
JL
1227
1228(define-public maven-settings-builder
1229 (package
1230 (inherit maven-artifact)
1231 (name "maven-settings-builder")
1232 (arguments
1233 `(#:jar-name "maven-settings-builder.jar"
1234 #:source-dir "maven-settings-builder/src/main/java"
1235 #:jdk ,icedtea-8
1236 #:test-dir "maven-settings-builder/src/test"
1237 #:phases
1238 (modify-phases %standard-phases
1239 (add-before 'build 'generate-components.xml
1240 (lambda _
1241 (mkdir-p "build/classes/META-INF/plexus")
1242 (chmod "components.sh" #o755)
1243 (invoke "./components.sh" "maven-settings-builder/src/main/java"
1244 "build/classes/META-INF/plexus/components.xml")
51087d51
JL
1245 #t))
1246 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1247 (propagated-inputs
3a5572ae 1248 `(("java-plexus-utils" ,java-plexus-utils)
3a5572ae
JL
1249 ("java-plexus-interpolation" ,java-plexus-interpolation)
1250 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1251 ("maven-builder-support" ,maven-builder-support)
1252 ("maven-settings" ,maven-settings)
51087d51 1253 ("maven-pom" ,maven-pom)))
3a5572ae 1254 (native-inputs
51087d51
JL
1255 `(("java-junit" ,java-junit)
1256 ("java-plexus-component-annotations" ,java-plexus-component-annotations)))
3a5572ae
JL
1257 (description "Apache Maven is a software project management and comprehension
1258tool. This package contains the effective model builder, with profile activation,
1259inheritance, interpolation, @dots{}")))
516db3b9
JL
1260
1261(define-public maven-model-builder
1262 (package
1263 (inherit maven-artifact)
1264 (name "maven-model-builder")
1265 (arguments
1266 `(#:jar-name "maven-model-builder.jar"
1267 #:source-dir "maven-model-builder/src/main/java"
1268 #:jdk ,icedtea-8
1269 #:test-dir "maven-model-builder/src/test"
1270 #:phases
1271 (modify-phases %standard-phases
1272 (add-before 'build 'copy-resources
1273 (lambda _
1274 (copy-recursively "maven-model-builder/src/main/resources"
1275 "build/classes")
1276 #t))
1277 (add-before 'build 'generate-components.xml
1278 (lambda _
1279 (mkdir-p "build/classes/META-INF/plexus")
1280 (chmod "components.sh" #o755)
1281 (invoke "./components.sh" "maven-model-builder/src/main/java"
1282 "build/classes/META-INF/plexus/components.xml")
1283 #t))
1284 (add-before 'check 'fix-paths
1285 (lambda _
1286 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
1287 (("src/test") "maven-model-builder/src/test"))
51087d51
JL
1288 #t))
1289 (replace 'install
1290 (install-from-pom "maven-model-builder/pom.xml")))))
1291 (propagated-inputs
1292 `(("java-plexus-interpolation" ,java-plexus-interpolation)
1293 ("java-plexus-utils" ,java-plexus-utils)
1294 ("maven-artifact" ,maven-artifact)
1295 ("maven-builder-support" ,maven-builder-support)
1296 ("maven-model" ,maven-model)
1297 ("maven-pom" ,maven-pom)))
516db3b9
JL
1298 (native-inputs
1299 `(("java-junit" ,java-junit)
51087d51 1300 ("java-guava" ,java-guava)
516db3b9
JL
1301 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1302 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1303 ("guice" ,java-guice)
1304 ("java-cglib" ,java-cglib)
1305 ("java-asm" ,java-asm)
1306 ("sisu-inject" ,java-eclipse-sisu-inject)
1307 ("javax-inject" ,java-javax-inject)
c5928211
JL
1308 ("java-xmlunit" ,java-xmlunit)
1309 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
516db3b9
JL
1310 ("xbean" ,java-geronimo-xbean-reflect)
1311 ("classworlds" ,java-plexus-classworlds)))
1312 (description "Apache Maven is a software project management and comprehension
1313tool. This package contains the effective model builder, with profile activation,
1314inheritance, interpolation, @dots{}")))
18736663
JL
1315
1316(define-public maven-repository-metadata
1317 (package
1318 (inherit maven-artifact)
1319 (name "maven-repository-metadata")
1320 (arguments
1321 `(#:jar-name "maven-repository-metadata.jar"
1322 #:source-dir "maven-repository-metadata/src/main/java"
1323 #:jdk ,icedtea-8
1324 #:tests? #f; no tests
1325 #:phases
1326 (modify-phases %standard-phases
1327 (add-before 'build 'generate-models
1328 (lambda* (#:key inputs #:allow-other-keys)
1329 (define (modello-single-mode file version mode)
1330 (invoke "java" "org.codehaus.modello.ModelloCli"
1331 file mode "maven-repository-metadata/src/main/java" version
1332 "false" "true"))
1333 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1334 (modello-single-mode file "1.1.0" "java")
1335 (modello-single-mode file "1.1.0" "xpp3-reader")
1336 (modello-single-mode file "1.1.0" "xpp3-writer"))
51087d51
JL
1337 #t))
1338 (replace 'install
1339 (install-from-pom "maven-repository-metadata/pom.xml")))))
1340 (propagated-inputs
1341 `(("java-plexus-utils" ,java-plexus-utils)
1342 ("maven-pom" ,maven-pom)))
18736663
JL
1343 (native-inputs
1344 `(("modello" ,java-modello-core)
1345 ;; for modello:
1346 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1347 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1348 ("java-guice" ,java-guice)
1349 ("java-cglib" ,java-cglib)
1350 ("java-asm" ,java-asm)
1351 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1352 ("java-javax-inject" ,java-javax-inject)
1353 ("java-plexus-utils" ,java-plexus-utils)
1354 ("java-plexus-classworlds" ,java-plexus-classworlds)
1355 ("java-guava" ,java-guava)
1356 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1357 ("java-sisu-build-api" ,java-sisu-build-api)
1358 ;; modello plugins:
1359 ("java-modello-plugins-java" ,java-modello-plugins-java)
1360 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1361 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1362 (description "Apache Maven is a software project management and comprehension
1363tool. This package contains strictly the model for Maven Repository Metadata,
1364so really just plain objects.")))
5aa4ea6a
JL
1365
1366(define-public maven-resolver-provider
1367 (package
1368 (inherit maven-artifact)
1369 (name "maven-resolver-provider")
1370 (arguments
1371 `(#:jar-name "maven-resolver-provider.jar"
1372 #:source-dir "maven-resolver-provider/src/main/java"
1373 #:test-dir "maven-resolver-provider/src/test"
1374 #:jdk ,icedtea-8
1375 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1376 #:phases
1377 (modify-phases %standard-phases
1378 (add-before 'build 'generate-sisu-named
1379 (lambda _
1380 (mkdir-p "build/classes/META-INF/sisu")
1381 (chmod "./sisu.sh" #o755)
1382 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1383 "build/classes/META-INF/sisu/javax.inject.Named")
51087d51
JL
1384 #t))
1385 (replace 'install
1386 (install-from-pom "maven-resolver-provider/pom.xml")))))
1387 (propagated-inputs
1388 `(("maven-model" ,maven-model)
1389 ("maven-model-builder" ,maven-model-builder)
1390 ("maven-resolver-spi" ,maven-resolver-spi)
5aa4ea6a
JL
1391 ("maven-resolver-api" ,maven-resolver-api)
1392 ("maven-resolver-impl" ,maven-resolver-impl)
1393 ("maven-resolver-util" ,maven-resolver-util)
5aa4ea6a
JL
1394 ("maven-builder-support" ,maven-builder-support)
1395 ("maven-repository-metadata" ,maven-repository-metadata)
1396 ("java-plexus-utils" ,java-plexus-utils)
1397 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5aa4ea6a 1398 ("java-guice" ,java-guice)
5aa4ea6a 1399 ("java-javax-inject" ,java-javax-inject)))))
8f5caf93
JL
1400
1401(define-public maven-plugin-api
1402 (package
1403 (inherit maven-artifact)
1404 (name "maven-plugin-api")
1405 (arguments
1406 `(#:jar-name "maven-plugin-api.jar"
1407 #:source-dir "maven-plugin-api/src/main/java"
1408 #:jdk ,icedtea-8
1409 #:test-dir "maven-plugin-api/src/test"
1410 #:phases
1411 (modify-phases %standard-phases
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-plugin-api/src/main/java" version
1417 "false" "true"))
1418 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.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"))
51087d51
JL
1422 #t))
1423 (replace 'install
1424 (install-from-pom "maven-plugin-api/pom.xml")))))
1425 (propagated-inputs
8f5caf93
JL
1426 `(("maven-artifact" ,maven-artifact)
1427 ("maven-model" ,maven-model)
1428 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1429 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1430 ("guice" ,java-guice)
1431 ("java-cglib" ,java-cglib)
1432 ("java-asm" ,java-asm)
1433 ("sisu-inject" ,java-eclipse-sisu-inject)
1434 ("javax-inject" ,java-javax-inject)
1435 ("utils" ,java-plexus-utils)))
1436 (native-inputs
1437 `(("modello" ,java-modello-core)
1438 ;; for modello:
1439 ("classworlds" ,java-plexus-classworlds)
1440 ("guava" ,java-guava)
1441 ("xbean" ,java-geronimo-xbean-reflect)
1442 ("build-api" ,java-sisu-build-api)
1443 ;; modello plugins:
1444 ("java" ,java-modello-plugins-java)
1445 ("xml" ,java-modello-plugins-xml)
1446 ("xpp3" ,java-modello-plugins-xpp3)
1447 ;; for tests
1448 ("java-junit" ,java-junit)))
1449 (description "Apache Maven is a software project management and comprehension
1450tool. This package contains strictly the API for plugins -- composed of goals
1451implemented by Mojos -- development.
1452
1453A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1454generally generated from plugin sources using maven-plugin-plugin.")))
7a42f058
JL
1455
1456(define maven-core-bootstrap
1457 (package
1458 (inherit maven-artifact)
1459 (name "maven-core")
1460 (arguments
1461 `(#:jar-name "maven-core.jar"
1462 #:source-dir "src/main/java"
1463 #:jdk ,icedtea-8
1464 ;; Tests need maven-compat, which requires maven-core
1465 #:tests? #f
1466 #:phases
1467 (modify-phases %standard-phases
1468 (add-before 'configure 'chdir
1469 (lambda _
1470 ;; Required for generating components.xml in maven-core
1471 (chdir "maven-core")
1472 #t))
1473 (add-before 'build 'copy-resources
1474 (lambda _
1475 (mkdir-p "build/classes/")
1476 (copy-recursively "src/main/resources" "build/classes")
1477 #t))
e27c43d9
JL
1478 (add-after 'copy-resources 'fill-properties
1479 (lambda _
1480 ;; This file controls the output of some mvn subcommands, such as
1481 ;; mvn -version.
1482 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1483 (("\\$\\{buildNumber\\}") "guix_build")
1484 (("\\$\\{timestamp\\}") "0")
1485 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1486 (("\\$\\{distributionId\\}") "apache-maven")
1487 (("\\$\\{distributionShortName\\}") "Maven")
1488 (("\\$\\{distributionName\\}") "Apache Maven"))
1489 #t))
7a42f058
JL
1490 (add-before 'build 'generate-sisu-named
1491 (lambda _
1492 (mkdir-p "build/classes/META-INF/sisu")
1493 (chmod "../sisu.sh" #o755)
1494 (invoke "../sisu.sh" "src/main/java"
1495 "build/classes/META-INF/sisu/javax.inject.Named")
1496 #t))
1497 (add-before 'build 'generate-models
1498 (lambda* (#:key inputs #:allow-other-keys)
1499 (define (modello-single-mode file version mode)
1500 (invoke "java" "org.codehaus.modello.ModelloCli"
1501 file mode "src/main/java" version
1502 "false" "true"))
1503 (let ((file "src/main/mdo/toolchains.mdo"))
1504 (modello-single-mode file "1.1.0" "java")
1505 (modello-single-mode file "1.1.0" "xpp3-reader")
1506 (modello-single-mode file "1.1.0" "xpp3-writer"))
51087d51
JL
1507 #t))
1508 (add-before 'install 'fix-pom
1509 (lambda _
1510 (substitute* "pom.xml"
1511 (("<classifier>no_aop</classifier>") ""))
1512 #t))
1513 (replace 'install
1514 (install-from-pom "pom.xml")))))
1515 (propagated-inputs
7a42f058
JL
1516 `(("maven-artifact" ,maven-artifact)
1517 ("maven-resolver-provider" ,maven-resolver-provider)
1518 ("maven-builder-support" ,maven-builder-support)
1519 ("maven-model" ,maven-model)
1520 ("maven-model-builder" ,maven-model-builder)
1521 ("maven-settings" ,maven-settings)
1522 ("maven-settings-builder" ,maven-settings-builder)
1523 ("maven-plugin-api" ,maven-plugin-api)
1524 ("maven-repository-metadata" ,maven-repository-metadata)
1525 ("maven-shared-utils" ,maven-shared-utils)
1526 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1527 ("java-plexus-utils" ,java-plexus-utils)
1528 ("java-commons-lang3" ,java-commons-lang3)
1529 ("java-guava" ,java-guava)
1530 ("java-guice" ,java-guice)
1531 ("maven-resolver-api" ,maven-resolver-api)
1532 ("maven-resolver-spi" ,maven-resolver-spi)
1533 ("maven-resolver-util" ,maven-resolver-util)
1534 ("maven-resolver-impl" ,maven-resolver-impl)
1535 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1536 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1537 ("java-javax-inject" ,java-javax-inject)
1538 ("java-plexus-classworld" ,java-plexus-classworlds)))
1539 (native-inputs
1540 `(("java-modello-core" ,java-modello-core)
1541 ("java-cglib" ,java-cglib)
1542 ("java-asm" ,java-asm)
1543 ("java-plexus-classworlds" ,java-plexus-classworlds)
1544 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1545 ("java-sisu-build-api" ,java-sisu-build-api)
1546 ("java-modello-plugins-java" ,java-modello-plugins-java)
1547 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1548 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1549 ;; tests
1550 ("java-junit" ,java-junit)
1551 ("java-mockito-1" ,java-mockito-1)
1552 ("java-commons-jxpath" ,java-commons-jxpath)))
1553 (description "Apache Maven is a software project management and comprehension
1554tool. This package contains the maven core classes managing the whole build
1555process.")))
b822544c
JL
1556
1557(define-public maven-core
1558 (package
1559 (inherit maven-core-bootstrap)
1560 (arguments
1561 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1562 ((#:phases phases)
1563 `(modify-phases ,phases
1564 (add-before 'build 'modify-metainf
1565 (lambda _
1566 (substitute* "build.xml"
d440df61 1567 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
b822544c
JL
1568 #t))
1569 (add-before 'build 'add-maven-files
1570 (lambda _
1571 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1572 (copy-file "pom.xml"
1573 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1574 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1575 (lambda _
1576 (format #t "version=~a~%
1577groupId=org.apache.maven~%
1578artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1579 #t))
1580 (add-after 'build 'generate-metadata
1581 (lambda _
1582 (define (components file)
1583 (let ((sxml (with-input-from-file file
1584 (lambda _ (xml->sxml (current-input-port)
1585 #:trim-whitespace? #t)))))
1586 ;; Select the list of <component>s inside the <component-set>
1587 ;; and <components>.
1588 ((@ (ice-9 match) match) sxml
1589 (('*TOP*
1590 ('*PI* foo ...)
1591 ('component-set
1592 ('components x ...))) x))))
1593 (use-modules (sxml simple))
1594 (delete-file "build/classes/META-INF/plexus/components.xml")
1595 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1596 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1597 "--source" "build/classes/META-INF/plexus"
1598 "--output" "build/classes/META-INF/plexus/components.t.xml"
1599 "--classes" "build/classes"
1600 "--descriptors" "build/classes")
1601 ;; Now we merge all other components from hand-written xml
1602 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1603 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1604 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1605 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1606 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1607 (lambda _
1608 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1609 (sxml->xml
1610 `(component-set
1611 (components
1612 ,@(append generated-xml components-xml
1613 default-bindings-xml
1614 artifact-handlers-xml)))))))
1615 #t))
1616 (add-after 'generate-metadata 'rebuild
1617 (lambda _
1618 (invoke "ant" "jar")
1619 #t))))))
1620 (native-inputs
1621 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1622 ("java-commons-cli" ,java-commons-cli)
1623 ("java-plexus-cli" ,java-plexus-cli)
1624 ("java-jdom2" ,java-jdom2)
1625 ("java-qdox" ,java-qdox)
1626 ("maven-core-boot" ,maven-core-bootstrap)
1627 ,@(package-native-inputs maven-core-bootstrap)))))
e2c7d329
JL
1628
1629(define-public maven-embedder
1630 (package
1631 (inherit maven-artifact)
1632 (name "maven-embedder")
1633 (arguments
1634 `(#:jar-name "maven-embedder.jar"
1635 #:source-dir "maven-embedder/src/main/java"
1636 #:test-dir "maven-embedder/src/test"
1637 #:test-exclude (list "**/MavenCliTest.java")
1638 #:jdk ,icedtea-8
1639 #:phases
1640 (modify-phases %standard-phases
1641 (add-before 'build 'generate-sisu-named
1642 (lambda _
1643 (mkdir-p "build/classes/META-INF/sisu")
1644 (chmod "sisu.sh" #o755)
1645 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1646 "build/classes/META-INF/sisu/javax.inject.Named")
1647 #t))
1648 (add-before 'build 'generate-models
1649 (lambda* (#:key inputs #:allow-other-keys)
1650 (define (modello-single-mode file version mode)
1651 (invoke "java" "org.codehaus.modello.ModelloCli"
1652 file mode "maven-embedder/src/main/java" version
1653 "false" "true"))
1654 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1655 (modello-single-mode file "1.0.0" "java")
1656 (modello-single-mode file "1.0.0" "xpp3-reader")
1657 (modello-single-mode file "1.0.0" "xpp3-writer"))
1658 #t))
1659 (add-before 'check 'fix-test-paths
1660 (lambda _
1661 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1662 (("target/test-classes") "build/test-classes"))
1663 #t))
1664 (add-before 'check 'fix-test-compilation
1665 (lambda _
1666 ;; Tests are in the java/ subdir. Other subdirectories contain
1667 ;; additional test plugins, with duplicate classes, so we can't
1668 ;; compile them. Also, they are meant to be built with maven, to
1669 ;; test its build process.
1670 (substitute* "build.xml"
1671 (("srcdir=\"maven-embedder/src/test\"")
1672 "srcdir=\"maven-embedder/src/test/java\""))
51087d51
JL
1673 #t))
1674 (replace 'install
1675 (install-from-pom "maven-embedder/pom.xml")))))
1676 (propagated-inputs
e2c7d329
JL
1677 `(("maven-core" ,maven-core)
1678 ("maven-artifact" ,maven-artifact)
1679 ("maven-plugin-api" ,maven-plugin-api)
1680 ("maven-builder-support" ,maven-builder-support)
1681 ("maven-model" ,maven-model)
1682 ("maven-model-builder" ,maven-model-builder)
1683 ("maven-settings" ,maven-settings)
1684 ("maven-settings-builder" ,maven-settings-builder)
1685 ("maven-shared-utils" ,maven-shared-utils)
1686 ("java-plexus-classworlds" ,java-plexus-classworlds)
1687 ("java-plexus-util" ,java-plexus-utils)
1688 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1689 ("java-plexus-cipher" ,java-plexus-cipher)
1690 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1691 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1692 ("maven-resolevr-util" ,maven-resolver-util)
1693 ("maven-resolevr-api" ,maven-resolver-api)
1694 ("java-logback-core" ,java-logback-core)
1695 ("java-logback-classic" ,java-logback-classic)
1696 ("java-commons-cli" ,java-commons-cli)
1697 ("java-commons-io" ,java-commons-io)
1698 ("java-commons-lang3" ,java-commons-lang3)
1699 ("java-guava" ,java-guava)
1700 ("java-guice" ,java-guice)
1701 ("java-javax-inject" ,java-javax-inject)
1702 ("java-slf4j-api" ,java-slf4j-api)
51087d51
JL
1703 ("java-slf4j-simple" ,java-slf4j-simple)
1704 ("java-jsr250" ,java-jsr250)))
e2c7d329
JL
1705 (native-inputs
1706 `(("java-modello-core" ,java-modello-core)
1707 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1708 ("java-sisu-build-api" ,java-sisu-build-api)
1709 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1710 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1711 ("java-cglib" ,java-cglib)
1712 ("java-asm" ,java-asm)
1713 ("java-modello-plugins-java" ,java-modello-plugins-java)
1714 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1715 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1716 ;; tests
1717 ("java-junit" ,java-junit)
1718 ("java-objenesis" ,java-objenesis)
1719 ("java-mockito-1" ,java-mockito-1)
1720 ("java-hamcrest-core" ,java-hamcrest-core)))
1721 (description "Apache Maven is a software project management and comprehension
1722tool. This package contains a Maven embeddable component, with CLI and
1723logging support.")))
0c1e98eb
JL
1724
1725(define-public maven-compat
1726 (package
1727 (inherit maven-artifact)
1728 (name "maven-compat")
1729 (arguments
1730 `(#:jar-name "maven-compat.jar"
1731 #:source-dir "src/main/java"
1732 #:jdk ,icedtea-8
1733 #:test-dir "src/test"
1734 #:phases
1735 (modify-phases %standard-phases
1736 ;; Tests assume we're in this directory
1737 (add-before 'configure 'chdir
1738 (lambda _
1739 (chdir "maven-compat")
1740 #t))
892a5647
JL
1741 (add-before 'build 'recreate-removed-jar
1742 (lambda _
1743 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1744 (const #t))
1745 (with-directory-excursion "src/test/resources"
1746 (with-output-to-file "artifact-install/artifact-1.0.jar"
1747 (lambda _
1748 (format #t "dummy~%")))
1749 (for-each
1750 (lambda (file)
1751 (with-output-to-file file
1752 (lambda _
1753 (format #t "foo~%"))))
1754 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1755 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1756 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1757 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1758 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1759 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1760 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1761 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1762 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1763 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1764 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1765 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1766 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1767 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1768 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1769 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1770 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1771 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1772 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1773 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1774 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1775 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1776 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1777 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1778 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1779 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1780 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1781 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1782 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1783 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1784 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1785 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1786 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1787 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1788 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1789 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1790 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1791 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1792 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1793 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1794 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1795 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1796 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1797 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1798 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1799 (with-directory-excursion "local-repo/snapshot-test/jars"
1800 (for-each
1801 (lambda (file)
1802 (with-output-to-file file
1803 (lambda _
1804 ;; No end-of-line
1805 (format #t "local"))))
1806 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1807 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1808 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1809 (for-each
1810 (lambda (letter)
1811 (with-directory-excursion
1812 (string-append "src/test/remote-repo/org/apache/maven/its/"
1813 letter "/0.1")
1814 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1815 letter)))
1816 (mkdir-p dir)
1817 (copy-file (string-append letter "-0.1.pom")
1818 (string-append dir "/pom.xml"))
1819 (with-output-to-file (string-append dir "/pom.properties")
1820 (lambda _
1821 (format #t "version=0.1~%")
1822 (format #t "groupId=org.apache.maven.its")
1823 (format #t (string-append "artifactId=" letter))))
1824 (with-output-to-file "META-INF/MANIFEST.MF"
1825 (lambda _
1826 (format #t "Manifest-Version: 1.0~%"))))
1827 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1828 (string-append letter "-0.1.jar") "META-INF")))
1829 '("a" "b"))
1830 #t))
0c1e98eb
JL
1831 (add-before 'build 'generate-models
1832 (lambda* (#:key inputs #:allow-other-keys)
1833 (define (modello-single-mode file version mode)
1834 (invoke "java" "org.codehaus.modello.ModelloCli"
1835 file mode "src/main/java" version
1836 "false" "true"))
1837 (let ((file "src/main/mdo/profiles.mdo"))
1838 (modello-single-mode file "1.0.0" "java")
1839 (modello-single-mode file "1.0.0" "xpp3-reader")
1840 (modello-single-mode file "1.0.0" "xpp3-writer"))
1841 (let ((file "src/main/mdo/paramdoc.mdo"))
1842 (modello-single-mode file "1.0.0" "java")
1843 (modello-single-mode file "1.0.0" "xpp3-reader")
1844 (modello-single-mode file "1.0.0" "xpp3-writer"))
1845 #t))
1846 (add-after 'build 'generate-metadata
1847 (lambda _
1848 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1849 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1850 "--source" "src/main/java"
1851 "--output" "build/classes/META-INF/plexus/components.xml"
1852 "--classes" "build/classes"
1853 "--descriptors" "build/classes/META-INF")
1854 #t))
1855 (add-before 'check 'build-tests
1856 (lambda _
1857 (invoke "ant" "compile-tests")
1858 #t))
1859 (add-after 'build-tests 'generate-test-metadata
1860 (lambda _
1861 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1862 ":build/classes"
1863 ":build/test-classes")
1864 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1865 "--source" "src/test/java"
1866 "--output" "build/test-classes/META-INF/plexus/components.xml"
1867 "--classes" "build/test-classes"
1868 "--descriptors" "build/test-classes/META-INF")
1869 #t))
1870 (add-after 'generate-metadata 'rebuild
1871 (lambda _
1872 (invoke "ant" "jar")
51087d51
JL
1873 #t))
1874 (replace 'install
1875 (install-from-pom "pom.xml")))))
1876 (propagated-inputs
0c1e98eb
JL
1877 `(("maven-artifact" ,maven-artifact)
1878 ("maven-repository-metadata" ,maven-repository-metadata)
1879 ("maven-builder-support" ,maven-builder-support)
1880 ("maven-model" ,maven-model)
1881 ("maven-model-builder" ,maven-model-builder)
1882 ("maven-settings" ,maven-settings)
1883 ("maven-settings-builder" ,maven-settings-builder)
1884 ("maven-core" ,maven-core)
1885 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1886 ("maven-wagon-file" ,maven-wagon-file)
1887 ("maven-resolver-api" ,maven-resolver-api)
1888 ("maven-resolver-util" ,maven-resolver-util)
1889 ("maven-resolver-spi" ,maven-resolver-spi)
1890 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1891 (native-inputs
1892 `(("java-modello-core" ,java-modello-core)
1893 ("java-plexus-utils" ,java-plexus-utils)
1894 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1895 ("java-plexus-classworlds" ,java-plexus-classworlds)
1896 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1897 ("java-sisu-build-api" ,java-sisu-build-api)
1898 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1899 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1900 ("java-javax-inject" ,java-javax-inject)
1901 ("java-guice" ,java-guice)
1902 ("java-guava" ,java-guava)
1903 ("java-cglib" ,java-cglib)
1904 ("java-asm" ,java-asm)
1905 ("java-modello-plugins-java" ,java-modello-plugins-java)
1906 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1907 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1908 ;; metadata
1909 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1910 ("java-commons-cli" ,java-commons-cli)
1911 ("java-plexus-cli" ,java-plexus-cli)
1912 ("java-jdom2" ,java-jdom2)
1913 ("maven-plugin-api" ,maven-plugin-api)
1914 ("java-qdox" ,java-qdox)
1915 ;; tests
1916 ("java-plexus-cipher" ,java-plexus-cipher)
1917 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
de99ba7e 1918 ("java-jsr250" ,java-jsr250)
0c1e98eb
JL
1919 ("java-cdi-api" ,java-cdi-api)
1920 ("java-junit" ,java-junit)
1921 ("maven-resolver-impl" ,maven-resolver-impl)
1922 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1923 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1924 ("java-commons-lang3" ,java-commons-lang3)
1925 ("java-aop" ,java-aopalliance)
1926 ("maven-resolver-provider" ,maven-resolver-provider)
1927 ("java-slf4j-api" ,java-slf4j-api)
1928 ("java-slf4j-simple" ,java-slf4j-simple)
1929 ,@(package-inputs java-slf4j-api)))
1930 (description "Apache Maven is a software project management and comprehension
1931tool. This package contains Maven2 classes maintained as compatibility
1932layer for plugins that need to keep Maven2 compatibility.")))
8c2c105c
JL
1933
1934(define-public maven
1935 (package
1936 (inherit maven-artifact)
1937 (name "maven")
1938 (arguments
1939 `(#:phases
1940 (modify-phases %standard-phases
1941 (replace 'build
137bd983
JL
1942 (lambda* (#:key inputs #:allow-other-keys)
1943 ;; Recreate the configuration for the loader
1944 (with-output-to-file "apache-maven/src/bin/m2.conf"
1945 (lambda _
1946 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1947 (format #t "~%")
1948 (format #t "set maven.conf default ${maven.home}/conf~%")
1949 (format #t "~%")
1950 (format #t "[plexus.core]~%")
1951 (format #t "load ${maven.conf}/logging~%")
1952 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1953 ;; Reference every jar so plexus-classworlds can find them.
1954 (for-each
1955 (lambda (dependency)
51087d51
JL
1956 (for-each
1957 (lambda (file)
1958 (format #t "load ~a~%" file))
1959 (find-files (assoc-ref inputs dependency) ".*.jar$")))
137bd983
JL
1960 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1961 "maven-builder-support" "maven-model" "maven-model-builder"
1962 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1963 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1964 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1965 "maven-resolver-connector-basic" "maven-resolver-provider"
1966 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1967 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1968 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1969 "maven-wagon-http-shared" "maven-wagon-tck-http"
1970 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1971 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1972 "java-javax-inject" "java-plexus-component-annotations"
1973 "java-plexus-utils" "java-plexus-interpolation"
1974 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1975 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1976 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1977 "java-slf4j-simple"))))
8c2c105c
JL
1978 (substitute* "apache-maven/src/bin/mvn"
1979 (("cygwin=false;")
1980 (string-append
137bd983
JL
1981 "CLASSPATH="
1982 (car (find-files
1983 (assoc-ref inputs "java-plexus-classworlds")
1984 ".*.jar"))
1985 "\ncygwin=false;"))
8c2c105c
JL
1986 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1987 #t))
1988 (delete 'check)
1989 (replace 'install
1990 (lambda* (#:key outputs #:allow-other-keys)
1991 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1992 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1993 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1994 (for-each (lambda (file)
1995 (install-file (string-append "apache-maven/src/bin/" file)
1996 bin)
1997 (chmod (string-append bin file) #o755))
1998 '("mvn" "mvnDebug" "mvnyjp"))
1999 (install-file "apache-maven/src/bin/m2.conf" bin)
2000 (copy-recursively "apache-maven/src/conf" conf))
2001 #t)))))
2002 (inputs
2003 `(("java-plexus-classworlds" ,java-plexus-classworlds)
2004 ("maven-artifact" ,maven-artifact)
2005 ("maven-embedder" ,maven-embedder)
2006 ("maven-core" ,maven-core)
2007 ("maven-compat" ,maven-compat)
2008 ("maven-builder-support" ,maven-builder-support)
2009 ("maven-model" ,maven-model)
2010 ("maven-model-builder" ,maven-model-builder)
2011 ("maven-settings" ,maven-settings)
2012 ("maven-settings-builder" ,maven-settings-builder)
2013 ("maven-plugin-api" ,maven-plugin-api)
de99ba7e 2014 ("maven-repository-metadata" ,maven-repository-metadata)
8c2c105c
JL
2015 ("maven-shared-utils" ,maven-shared-utils)
2016 ("maven-resolver-api" ,maven-resolver-api)
2017 ("maven-resolver-spi" ,maven-resolver-spi)
2018 ("maven-resolver-util" ,maven-resolver-util)
2019 ("maven-resolver-impl" ,maven-resolver-impl)
2020 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
2021 ("maven-resolver-provider" ,maven-resolver-provider)
2022 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
2023 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2024 ("maven-wagon-file" ,maven-wagon-file)
2025 ("maven-wagon-http" ,maven-wagon-http)
2026 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
2027 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
2028 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
2029 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
2030 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
2031 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2032 ("java-guice" ,java-guice)
2033 ("java-aopalliance" ,java-aopalliance)
2034 ("java-cglib" ,java-cglib)
2035 ("java-asm" ,java-asm)
2036 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
2037 ("java-javax-inject" ,java-javax-inject)
2038 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2039 ("java-plexus-utils" ,java-plexus-utils)
2040 ("java-plexus-interpolation" ,java-plexus-interpolation)
2041 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2042 ("java-plexus-cipher" ,java-plexus-cipher)
2043 ("java-guava" ,java-guava)
2044 ("java-jansi" ,java-jansi)
2045 ("java-jsr250" ,java-jsr250)
2046 ("java-cdi-api" ,java-cdi-api)
2047 ("java-commons-cli" ,java-commons-cli)
2048 ("java-commons-io" ,java-commons-io)
2049 ("java-commons-lang3" ,java-commons-lang3)
2050 ("java-slf4j-api" ,java-slf4j-api)
2051 ;; TODO: replace with maven-slf4j-provider
2052 ("java-slf4j-simple" ,java-slf4j-simple)))
7504f3c3
JL
2053 (propagated-inputs
2054 `(("coreutils" ,coreutils)
2055 ("which" ,which)))
8c2c105c
JL
2056 (description "Apache Maven is a software project management and comprehension
2057tool. Based on the concept of a project object model: builds, dependency
2058management, documentation creation, site publication, and distribution
2059publication are all controlled from the @file{pom.xml} declarative file. Maven
2060can be extended by plugins to utilise a number of other development tools for
2061reporting or the build process.")))
756e976e
JL
2062
2063;; Many plugins require maven 3.0 as a dependency.
2064(define maven-3.0-pom
2065 (package
2066 (inherit maven-pom)
2067 (version "3.0")
2068 (source (origin
2069 (method git-fetch)
2070 (uri (git-reference
2071 (url "https://github.com/apache/maven")
2072 (commit (string-append "maven-" version))))
2073 (file-name (git-file-name "maven" version))
2074 (sha256
2075 (base32
2076 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2077 (modules '((guix build utils)))
2078 (snippet
2079 '(begin
2080 (for-each delete-file (find-files "." "\\.jar$"))
2081 (for-each (lambda (file) (chmod file #o644))
2082 (find-files "." "."))
2083 #t))
2084 (patches
2085 (search-patches "maven-generate-component-xml.patch"
2086 "maven-generate-javax-inject-named.patch"))))
2087 (propagated-inputs
2088 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2089
2090(define-public maven-3.0-artifact
2091 (package
2092 (inherit maven-artifact)
2093 (version (package-version maven-3.0-pom))
2094 (source (package-source maven-3.0-pom))
2095 (propagated-inputs
2096 (map
2097 (lambda (input)
2098 (if (equal? (car input) "maven-pom")
2099 `("maven-pom" ,maven-3.0-pom)
2100 input))
2101 (package-propagated-inputs maven-artifact)))))
b909d584
JL
2102
2103(define-public maven-3.0-model
2104 (package
2105 (inherit maven-model)
2106 (version (package-version maven-3.0-pom))
2107 (source (package-source maven-3.0-pom))
2108 (propagated-inputs
2109 (map
2110 (lambda (input)
2111 (if (equal? (car input) "maven-pom")
2112 `("maven-pom" ,maven-3.0-pom)
2113 input))
2114 (package-propagated-inputs maven-artifact)))
2115 (arguments
2116 `(#:jar-name "maven-model.jar"
2117 #:source-dir "maven-model/src/main/java"
2118 #:test-dir "maven-model/src/test"
2119 #:modules
2120 ((guix build ant-build-system)
2121 (guix build java-utils)
2122 (guix build syscalls)
2123 (guix build utils))
2124 #:phases
2125 (modify-phases %standard-phases
2126 (add-after 'configure 'use-newer-model
2127 (lambda* (#:key inputs #:allow-other-keys)
2128 ;; The model has almost not changed, but the newer version is
2129 ;; needed to prevent an error in the newer modello we have
2130 (let ((source (assoc-ref inputs "maven-source"))
2131 (dir (mkdtemp! "maven-source-XXXXXXXX")))
2132 (with-directory-excursion dir
2133 (invoke "tar" "xf" source)
2134 (copy-file (car (find-files "." "maven.mdo"))
2135 "../maven-model/src/main/mdo/maven.mdo")))
2136 #t))
2137 (add-before 'build 'generate-models
2138 (lambda* (#:key inputs #:allow-other-keys)
2139 (define (modello-single-mode file version mode)
2140 (invoke "java" "org.codehaus.modello.ModelloCli"
2141 file mode "maven-model/src/main/java" version
2142 "false" "true" "UTF-8"))
2143 (let ((file "maven-model/src/main/mdo/maven.mdo"))
2144 (modello-single-mode file "4.0.0" "java")
2145 (modello-single-mode file "4.0.0" "xpp3-reader")
2146 (modello-single-mode file "4.0.0" "xpp3-writer")
2147 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
2148 #t))
2149 (replace 'install
2150 (install-from-pom "maven-model/pom.xml")))))
2151 (inputs
2152 `(("maven-source" ,(package-source maven-pom))
2153 ,@(package-inputs maven-model)))))
ba58d208
JL
2154
2155(define-public maven-3.0-settings
2156 (package
2157 (inherit maven-settings)
2158 (version (package-version maven-3.0-pom))
2159 (source (package-source maven-3.0-pom))
2160 (propagated-inputs
2161 (map
2162 (lambda (input)
2163 (if (equal? (car input) "maven-pom")
2164 `("maven-pom" ,maven-3.0-pom)
2165 input))
2166 (package-propagated-inputs maven-settings)))))
b1cfac7a
JL
2167
2168(define-public maven-3.0-settings-builder
2169 (package
2170 (inherit maven-settings-builder)
2171 (version (package-version maven-3.0-pom))
2172 (source (package-source maven-3.0-pom))
2173 (propagated-inputs
2174 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2175 ,@(filter
2176 (lambda (a) a)
2177 (map
2178 (lambda (input)
2179 (match (car input)
2180 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2181 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2182 ("maven-builder-support" #f)
2183 (_ input)))
2184 (package-propagated-inputs maven-settings-builder)))))))
279ec0c0
JL
2185
2186(define-public maven-3.0-model-builder
2187 (package
2188 (inherit maven-model-builder)
2189 (version (package-version maven-3.0-pom))
2190 (source (package-source maven-3.0-pom))
2191 (propagated-inputs
2192 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2193 ,@(filter
2194 (lambda (a) a)
2195 (map
2196 (lambda (input)
2197 (match (car input)
2198 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2199 ("maven-model" `("maven-model" ,maven-3.0-model))
2200 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2201 ("maven-builder-support" #f)
2202 (_ input)))
2203 (package-propagated-inputs maven-model-builder)))))))
457efe29
JL
2204
2205(define-public maven-3.0-plugin-api
2206 (package
2207 (inherit maven-plugin-api)
2208 (version (package-version maven-3.0-pom))
2209 (source (package-source maven-3.0-pom))
2210 (arguments
2211 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2212 ((#:phases phases)
2213 `(modify-phases ,phases
2214 (add-before 'install 'fix-pom
2215 (lambda _
2216 (substitute* "maven-plugin-api/pom.xml"
2217 (("org.sonatype.sisu") "org.codehaus.plexus")
2218 (("sisu-inject-plexus") "plexus-container-default"))
2219 #t))))))
2220 (propagated-inputs
2221 (map
2222 (lambda (input)
2223 (match (car input)
2224 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2225 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2226 ("maven-model" `("maven-model" ,maven-3.0-model))
2227 (_ input)))
2228 (package-propagated-inputs maven-model-builder)))
2229 (native-inputs
2230 `(("java-plexus-container-default" ,java-plexus-container-default)
2231 ,@(package-native-inputs maven-plugin-api)))))
721a00c0
JL
2232
2233(define-public maven-3.0-repository-metadata
2234 (package
2235 (inherit maven-repository-metadata)
2236 (version (package-version maven-3.0-pom))
2237 (source (package-source maven-3.0-pom))
2238 (propagated-inputs
2239 (map
2240 (lambda (input)
2241 (if (equal? (car input) "maven-pom")
2242 `("maven-pom" ,maven-3.0-pom)
2243 input))
2244 (package-propagated-inputs maven-repository-metadata)))))
65f0946a
JL
2245
2246(define-public maven-3.0-aether-provider
2247 (package
2248 (inherit maven-3.0-pom)
2249 (name "maven-aether-provider")
2250 (arguments
2251 `(#:jar-name "maven-aether-provider.jar"
2252 #:source-dir "maven-aether-provider/src/main/java"
2253 #:tests? #f; no tests in 3.0
2254 #:phases
2255 (modify-phases %standard-phases
2256 (add-after 'build 'generate-metadata
2257 (lambda _
2258 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2259 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2260 "--source" "src/main/java"
2261 "--output" "build/classes/META-INF/plexus/components.xml"
2262 "--classes" "build/classes"
2263 "--descriptors" "build/classes/META-INF")
2264 #t))
2265 (add-after 'generate-metadata 'rebuild
2266 (lambda _
2267 (invoke "ant" "jar")
2268 #t))
2269 (replace 'install
2270 (install-from-pom "maven-aether-provider/pom.xml")))))
2271 (propagated-inputs
2272 `(("maven-model" ,maven-3.0-model)
2273 ("maven-model-builder" ,maven-3.0-model-builder)
2274 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2275 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2276 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
2277 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2278 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
2279 ("java-plexus-utils" ,java-plexus-utils)
2280 ("maven-pom" ,maven-3.0-pom)))
2281 (native-inputs
2282 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))))
6f852f3b
JL
2283
2284(define-public maven-3.0-core
2285 (package
2286 (inherit maven-core)
2287 (version (package-version maven-3.0-pom))
2288 (source (package-source maven-3.0-pom))
2289 (arguments
2290 `(#:jar-name "maven-core.jar"
2291 #:source-dir "src/main/java"
2292 #:tests? #f
2293 #:phases
2294 (modify-phases %standard-phases
2295 (add-before 'configure 'chdir
2296 (lambda _
2297 ;; Required for generating components.xml in maven-core
2298 (chdir "maven-core")
2299 #t))
2300 (add-before 'build 'generate-models
2301 (lambda* (#:key inputs #:allow-other-keys)
2302 (define (modello-single-mode file version mode)
2303 (invoke "java" "org.codehaus.modello.ModelloCli"
2304 file mode "src/main/java" version
2305 "false" "true" "UTF-8"))
2306 (let ((file "src/main/mdo/toolchains.mdo"))
2307 (modello-single-mode file "1.0.0" "java")
2308 (modello-single-mode file "1.0.0" "xpp3-reader")
2309 (modello-single-mode file "1.0.0" "xpp3-writer"))
2310 #t))
2311 (add-before 'build 'copy-resources
2312 (lambda _
2313 (mkdir-p "build/classes/")
2314 (copy-recursively "src/main/resources" "build/classes")
2315 #t))
2316 (add-after 'build 'generate-metadata
2317 (lambda _
2318 (define (components file)
2319 (let ((sxml (with-input-from-file file
2320 (lambda _ (xml->sxml (current-input-port)
2321 #:trim-whitespace? #t)))))
2322 ;; Select the list of <component>s inside the <component-set>
2323 ;; and <components>.
2324 ((@ (ice-9 match) match) sxml
2325 (('*TOP*
2326 ('*PI* foo ...)
2327 ('component-set
2328 ('components x ...))) x))))
2329 (use-modules (sxml simple))
2330 (delete-file "build/classes/META-INF/plexus/components.xml")
2331 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2332 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2333 "--source" "build/classes/META-INF/plexus"
2334 "--output" "build/classes/META-INF/plexus/components.t.xml"
2335 "--classes" "build/classes"
2336 "--descriptors" "build/classes")
2337 ;; Now we merge all other components from hand-written xml
2338 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
2339 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
2340 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
2341 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
2342 (lambda _
2343 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2344 (sxml->xml
2345 `(component-set
2346 (components
2347 ,@(append generated-xml components-xml
2348 artifact-handlers-xml)))))))
2349 #t))
2350 (add-after 'generate-metadata 'rebuild
2351 (lambda _
2352 (invoke "ant" "jar")
2353 #t))
2354 (add-before 'install 'fix-pom
2355 (lambda _
2356 (substitute* "pom.xml"
2357 (("org.sonatype.sisu") "org.codehaus.plexus")
2358 (("sisu-inject-plexus") "plexus-container-default"))
2359 #t))
2360 (replace 'install
2361 (install-from-pom "pom.xml")))))
2362 (propagated-inputs
2363 `(("maven-model" ,maven-3.0-model)
2364 ("maven-settings" ,maven-3.0-settings)
2365 ("maven-settings-builder" ,maven-3.0-settings-builder)
2366 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2367 ("maven-artifact" ,maven-3.0-artifact)
2368 ("maven-model-builder" ,maven-3.0-model-builder)
2369 ("maven-aether-provider" ,maven-3.0-aether-provider)
2370 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2371 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2372 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2373 ("java-plexus-interpolation" ,java-plexus-interpolation)
2374 ("java-plexus-utils" ,java-plexus-utils)
2375 ("java-plexus-classworlds" ,java-plexus-classworlds)
2376 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2377 ("java-plexus-container-default" ,java-plexus-container-default)
2378 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2379 ("maven-pom" ,maven-3.0-pom)))))
1203b94f
JL
2380
2381(define-public maven-3.0-compat
2382 (package
2383 (inherit maven-compat)
2384 (version (package-version maven-3.0-pom))
2385 (source (package-source maven-3.0-pom))
2386 (arguments
2387 `(#:tests? #f ;require an old version of java-easymock
2388 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2389 ((#:phases phases)
2390 `(modify-phases ,phases
2391 (add-before 'install 'fix-pom
2392 (lambda _
2393 (substitute* "pom.xml"
2394 (("org.sonatype.sisu") "org.codehaus.plexus")
2395 (("sisu-inject-plexus") "plexus-container-default"))
2396 #t))
2397 (delete 'build-tests))))))
2398 (propagated-inputs
2399 `(("maven-model" ,maven-3.0-model)
2400 ("maven-model-builder" ,maven-3.0-model-builder)
2401 ("maven-settings" ,maven-3.0-settings)
2402 ("maven-settings-builder" ,maven-3.0-settings-builder)
2403 ("maven-artifact" ,maven-3.0-artifact)
2404 ("maven-core" ,maven-3.0-core)
2405 ("maven-aether-provider" ,maven-3.0-aether-provider)
2406 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2407 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2408 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2409 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2410 ("java-plexus-utils" ,java-plexus-utils)
2411 ("java-plexus-interpolation" ,java-plexus-interpolation)
2412 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2413 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2414 ("java-plexus-container-default" ,java-plexus-container-default)
2415 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2416 ("maven-pom" ,maven-3.0-pom)))))
708e0e1d
JL
2417
2418(define-public maven-shared-utils-3.0
2419 (package
2420 (inherit maven-shared-utils)
2421 (version "3.0.0")
2422 (source (origin
2423 (method url-fetch)
2424 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2425 "maven-shared-utils-" version "-source-release.zip"))
2426 (sha256
2427 (base32
2428 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2429 (propagated-inputs
2430 `(("maven-core" ,maven-3.0-core)
2431 ("maven-components-parent-pom" ,maven-components-parent-pom-21)
2432 ,@(package-propagated-inputs maven-shared-utils)))))
ebaaad1d
JL
2433
2434(define-public maven-shared-io
2435 (package
2436 (name "maven-shared-io")
2437 (version "3.0.0")
2438 (source (origin
2439 (method url-fetch)
2440 (uri (string-append "mirror://apache/maven/shared/"
2441 "maven-shared-io-" version
2442 "-source-release.zip"))
2443 (sha256
2444 (base32
2445 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2446 (build-system ant-build-system)
2447 (arguments
2448 `(#:jar-name "maven-shared-io.jar"
2449 #:source-dir "src/main/java"
2450 #:test-dir "src/test"
2451 #:phases
2452 (modify-phases %standard-phases
2453 (add-before 'build 'copy-resources
2454 (lambda _
2455 (copy-recursively "src/main/resources" "build/classes/")
2456 (copy-recursively "src/test/resources" "build/test-classes/")
2457 #t))
2458 (replace 'install
2459 (install-from-pom "pom.xml")))))
2460 (propagated-inputs
2461 `(("maven-artifact" ,maven-3.0-artifact)
2462 ("maven-compat" ,maven-3.0-compat)
2463 ("maven-plugin-api" ,maven-3.0-plugin-api)
2464 ("maven-shared-utils" ,maven-shared-utils)
2465 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2466 ("java-plexus-utils" ,java-plexus-utils)
2467 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2468 (native-inputs
2469 `(("unzip" ,unzip)
2470 ("java-junit" ,java-junit)
2471 ("java-easymock" ,java-easymock)))
2472 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2473 (synopsis "Tree-based API for resolution of Maven project dependencies")
2474 (description "This package provides a tree-based API for resolution of
2475Maven project dependencies.")
2476 (license license:asl2.0)))