Fix some more lonely unquotes.
[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>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages maven)
20 #:use-module ((guix licenses) #:prefix license:)
21 #:use-module (guix packages)
22 #:use-module (guix download)
23 #:use-module (guix utils)
24 #:use-module (guix build-system ant)
25 #:use-module (gnu packages)
b2185040 26 #:use-module (gnu packages compression)
9f25cba6 27 #:use-module (gnu packages java)
f216a9f9 28 #:use-module (gnu packages web)
9f25cba6
JL
29 #:use-module (gnu packages xml))
30
31(define-public java-plexus-component-metadata
32 (package
33 (inherit java-plexus-container-default)
34 (name "java-plexus-component-metadata")
35 (arguments
36 `(#:jar-name "plexus-component-metadata.jar"
37 #:source-dir "src/main/java"
38 #:test-dir "src/test"
39 #:jdk ,icedtea-8
40 #:phases
41 (modify-phases %standard-phases
42 (add-before 'configure 'chdir
43 (lambda _
44 (chdir "plexus-component-metadata")
45 #t))
46 (add-before 'build 'copy-resources
47 (lambda _
48 (copy-recursively "src/main/resources"
49 "build/classes/")
50 #t)))))
51 (inputs
52 `(("java-plexus-container-default" ,java-plexus-container-default)
53 ("java-plexu-component-annotations" ,java-plexus-component-annotations)
54 ("java-plexus-utils" ,java-plexus-utils)
55 ("java-plexus-cli" ,java-plexus-cli)
56 ("java-plexus-classworlds" ,java-plexus-classworlds)
57 ("maven-plugin-api" ,maven-plugin-api)
58 ("maven-plugin-annotations" ,maven-plugin-annotations)
59 ("maven-core-bootstrap" ,maven-core-bootstrap)
60 ("maven-model" ,maven-model)
61 ("java-commons-cli" ,java-commons-cli)
62 ("java-qdox" ,java-qdox)
63 ("java-jdom2" ,java-jdom2)
64 ("java-asm" ,java-asm)))
65 (native-inputs
66 `(("java-junit" ,java-junit)
67 ("java-guava" ,java-guava)
68 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)))
69 (synopsis "Inversion-of-control container for Maven")
70 (description "The Plexus project provides a full software stack for creating
71and executing software projects. Based on the Plexus container, the
72applications can utilise component-oriented programming to build modular,
73reusable components that can easily be assembled and reused. This package
74provides the Maven plugin generating the component metadata.")))
41125eaf
JL
75
76(define-public maven-resolver-api
77 (package
78 (name "maven-resolver-api")
79 (version "1.1.1")
80 (source (origin
81 (method url-fetch)
82 (uri (string-append "https://github.com/apache/maven-resolver/"
83 "archive/maven-resolver-" version ".tar.gz"))
84 (sha256
85 (base32
86 "0rpvdg3qr1j88gw0ankf0wnwfyq6238mdlm7s39vf5jrcvhdgwcl"))))
87 (build-system ant-build-system)
88 (arguments
89 `(#:jar-name "maven-resolver-api.jar"
90 #:source-dir "maven-resolver-api/src/main/java"
91 #:test-dir "maven-resolver-api/src/test"))
92 (native-inputs
93 `(("java-junit" ,java-junit)
94 ("java-hamcrest-core" ,java-hamcrest-core)))
95 (home-page "https://github.com/apache/maven-resolver")
96 (synopsis "Maven repository system API")
97 (description "This package contains the API for the maven repository system.")
98 (license license:asl2.0)))
d85cb539
JL
99
100(define-public maven-resolver-spi
101 (package
102 (inherit maven-resolver-api)
103 (name "maven-resolver-spi")
104 (arguments
105 `(#:jar-name "maven-resolver-spi.jar"
106 #:source-dir "maven-resolver-spi/src/main/java"
107 #:test-dir "maven-resolver-spi/src/test"
108 #:jdk ,icedtea-8))
109 (inputs
110 `(("maven-resolver-api" ,maven-resolver-api)))
111 (synopsis "Maven repository system SPI")
112 (description "This package contains the service provider interface (SPI)
113for repository system implementations and repository connectors.")))
36053783
JL
114
115(define-public maven-resolver-test-util
116 (package
117 (inherit maven-resolver-api)
118 (name "maven-resolver-test-util")
119 (arguments
120 `(#:jar-name "maven-resolver-test-util.jar"
121 #:source-dir "maven-resolver-test-util/src/main/java"
122 #:test-dir "maven-resolver-test-util/src/test"
123 #:jdk ,icedtea-8))
124 (inputs
125 `(("maven-resolver-api" ,maven-resolver-api)
126 ("maven-resolver-spi" ,maven-resolver-spi)))
127 (synopsis "Utility classes for testing the maven repository system")
128 (description "This package contains a collection of utility classes to
129ease testing of the repository system.")))
bca6cf54
JL
130
131(define-public maven-resolver-util
132 (package
133 (inherit maven-resolver-api)
134 (name "maven-resolver-util")
135 (arguments
136 `(#:jar-name "maven-resolver-util.jar"
137 #:source-dir "maven-resolver-util/src/main/java"
138 #:test-dir "maven-resolver-util/src/test"
139 #:jdk ,icedtea-8))
140 (inputs
141 `(("maven-resolver-api" ,maven-resolver-api)))
142 (native-inputs
143 `(("java-junit" ,java-junit)
144 ("java-hamcrest-core" ,java-hamcrest-core)
145 ("maven-resolver-test-util" ,maven-resolver-test-util)))
146 (synopsis "Utility classes for the maven repository system")
147 (description "This package contains a collection of utility classes to
148ease usage of the repository system.")))
f70666c9
JL
149
150(define-public maven-resolver-connector-basic
151 (package
152 (inherit maven-resolver-api)
153 (name "maven-resolver-connector-basic")
154 (arguments
155 `(#:jar-name "maven-resolver-connector-basic.jar"
156 #:source-dir "maven-resolver-connector-basic/src/main/java"
157 #:test-dir "maven-resolver-connector-basic/src/test"
158 #:jdk ,icedtea-8
159 #:phases
160 (modify-phases %standard-phases
161 (add-before 'build 'generate-sisu
162 (lambda _
163 (mkdir-p "build/classes/META-INF/sisu")
164 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
165 (lambda _
166 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n"))))))))
167 (inputs
168 `(("maven-resolver-api" ,maven-resolver-api)
169 ("maven-resolver-spi" ,maven-resolver-spi)
170 ("maven-resolver-util" ,maven-resolver-util)
171 ("java-javax-inject" ,java-javax-inject)))
172 (native-inputs
173 `(("java-junit" ,java-junit)
174 ("java-hamcrest-core" ,java-hamcrest-core)
175 ("maven-resolver-test-util" ,maven-resolver-test-util)))
176 (synopsis "Maven repository connector implementation")
177 (description "This package contains a repository connector implementation
178for repositories using URI-based layouts.")))
458687d5 179
90fe8797
JL
180(define-public maven-resolver-impl
181 (package
182 (inherit maven-resolver-api)
183 (name "maven-resolver-impl")
184 (arguments
185 `(#:jar-name "maven-resolver-impl.jar"
186 #:source-dir "maven-resolver-impl/src/main/java"
187 #:test-dir "maven-resolver-impl/src/test"
188 #:jdk ,icedtea-8
189 #:phases
190 (modify-phases %standard-phases
191 (add-before 'build 'generate-sisu
192 (lambda _
193 (mkdir-p "build/classes/META-INF/sisu")
194 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
195 (lambda _
196 (display
197 (string-append
198 ;; Build this list by looking for files containing "@Named"
199 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
200 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
201 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
202 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory\n"
203 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
204 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
205 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
206 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
207 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
208 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
209 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
210 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
211 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
212 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
213 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
214 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
215 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
216 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
217 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
218 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
219 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
220 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
221 "org.eclipse.aether.internal.impl.DefaultDependencyCollector\n"))))
222 #t)))))
223 (inputs
224 `(("maven-resolver-api" ,maven-resolver-api)
225 ("maven-resolver-spi" ,maven-resolver-spi)
226 ("maven-resolver-util" ,maven-resolver-util)
227 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
228 ("java-javax-inject" ,java-javax-inject)
229 ("java-guice" ,java-guice)
230 ("java-guava" ,java-guava)
231 ("java-cglib" ,java-cglib)
232 ("java-asm" ,java-asm)
233 ("jajva-aopalliance" ,java-aopalliance)
234 ("java-slf4j-api" ,java-slf4j-api)))
235 (native-inputs
236 `(("java-junit" ,java-junit)
237 ("java-hamcrest-core" ,java-hamcrest-core)
238 ("maven-resolver-test-util" ,maven-resolver-test-util)))))
239
19126bba
JL
240(define-public maven-resolver-transport-wagon
241 (package
242 (inherit maven-resolver-api)
243 (name "maven-resolver-transport-wagon")
244 (arguments
245 `(#:jar-name "maven-resolver-transport-wagon.jar"
246 #:source-dir "maven-resolver-transport-wagon/src/main/java"
247 #:test-dir "maven-resolver-transport-wagon/src/test"
248 #:jdk ,icedtea-8
249 #:phases
250 (modify-phases %standard-phases
251 (add-before 'build 'generate-sisu
252 (lambda _
253 (mkdir-p "build/classes/META-INF/sisu")
254 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
255 (lambda _
256 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
257 #t))
258 (add-before 'build 'generate-components.xml
259 (lambda _
260 (mkdir-p "build/classes/META-INF/plexus")
261 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
262 (lambda _
263 (display
264 (string-append
265 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
266<component-set>
267 <components>
268 <component>
269 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
270 <role-hint>plexus</role-hint>
271 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
272 <description />
273 <isolated-realm>false</isolated-realm>
274 <requirements>
275 <requirement>
276 <role>org.codehaus.plexus.PlexusContainer</role>
277 <role-hint />
278 <field-name>container</field-name>
279 </requirement>
280 </requirements>
281 </component>
282 <component>
283 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
284 <role-hint>plexus</role-hint>
285 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
286 <description />
287 <isolated-realm>false</isolated-realm>
288 <requirements>
289 <requirement>
290 <role>org.codehaus.plexus.PlexusContainer</role>
291 <role-hint />
292 <field-name>container</field-name>
293 </requirement>
294 </requirements>
295 </component>
296 </components>
297</component-set>\n"))))
298 #t)))))
299 (inputs
300 `(("maven-resolver-api" ,maven-resolver-api)
301 ("maven-resolver-spi" ,maven-resolver-spi)
302 ("maven-resolver-util" ,maven-resolver-util)
303 ("java-javax-inject" ,java-javax-inject)
304 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
305 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
306 ("java-plexus-classworld" ,java-plexus-classworlds)
307 ("java-plexus-plexus-util" ,java-plexus-utils)
308 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
309 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
310 (native-inputs
311 `(("java-junit" ,java-junit)
312 ("java-hamcrest-core" ,java-hamcrest-core)
313 ("maven-resolver-test-util" ,maven-resolver-test-util)
314 ("java-guava" ,java-guava)
315 ("java-cglib" ,java-cglib)
316 ("java-asm" ,java-asm)
317 ("java-aopalliance" ,java-aopalliance)
318 ("java-guice" ,java-guice)))
319 (synopsis "Transport implementation for Maven")
320 (description "This package contains a transport implementation based on
321Maven Wagon, for use in Maven.")))
322
b2185040
JL
323(define-public maven-shared-utils
324 (package
325 (name "maven-shared-utils")
326 (version "3.2.1")
327 (source (origin
328 (method url-fetch)
329 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
330 "maven-shared-utils-" version "-source-release.zip"))
331 (sha256
332 (base32
333 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
334 (build-system ant-build-system)
335 (arguments
336 `(#:jar-name "maven-shared-utils.jar"
337 #:source-dir "src/main/java"
338 #:jdk ,icedtea-8
339 #:phases
340 (modify-phases %standard-phases
341 (add-before 'check 'remove-cyclic-dep
342 (lambda _
343 (delete-file
344 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
345 #t)))))
346 (inputs
347 `(("java-jansi" ,java-jansi)
348 ("java-commons-io" ,java-commons-io)
349 ("java-jsr305" ,java-jsr305)
350 ("java-plexus-container-default" ,java-plexus-container-default)))
351 (native-inputs
352 `(("unzip" ,unzip)
353 ("java-junit" ,java-junit)
354 ("java-hamcrest-core" ,java-hamcrest-core)
355 ("java-commons-lang3" ,java-commons-lang3)))
356 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
357 (synopsis "Plexus-util replacement for maven")
358 (description "This project aims to be a functional replacement for
359plexus-utils in Maven. It is not a 100% API compatible replacement but a
360replacement with improvements.")
361 (license license:asl2.0)))
362
a59d5f35
JL
363(define-public maven-plugin-annotations
364 (package
365 (name "maven-plugin-annotations")
366 (version "3.5")
367 (source (origin
368 (method url-fetch)
369 (uri (string-append "https://archive.apache.org/dist/maven/"
370 "plugin-tools/maven-plugin-tools-" version
371 "-source-release.zip"))
372 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
373 (build-system ant-build-system)
374 (arguments
375 `(#:jar-name "maven-plugin-annotations.jar"
376 #:source-dir "maven-plugin-annotations/src/main/java"
377 #:tests? #f))
378 (inputs
379 `(("maven-artifact" ,maven-artifact)))
380 (native-inputs
381 `(("unzip" ,unzip)))
382 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
383 (synopsis "Java 5 annotations to use in Mojos")
384 (description "This package contains Java 5 annotations for use in Mojos.")
385 (license license:asl2.0)))
386
ff7a0fcf
JL
387(define-public maven-wagon-provider-api
388 (package
389 (name "maven-wagon-provider-api")
390 (version "3.0.0")
391 (source (origin
392 (method url-fetch)
393 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
394 "wagon-" version "-source-release.zip"))
395 (sha256 (base32 "1qb0q4m7vmf290xp3fnfdi3pwl3hkskia5g3z2v82q1ch3y2knqv"))))
396 (build-system ant-build-system)
397 (arguments
398 `(#:jar-name "maven-wagon-provider-api.jar"
399 #:source-dir "wagon-provider-api/src/main/java"
400 #:test-dir "wagon-provider-api/src/test"))
401 (inputs
402 `(("java-plexus-utils" ,java-plexus-utils)))
403 (native-inputs
404 `(("unzip" ,unzip)
405 ("java-junit" ,java-junit)
406 ("java-easymock" ,java-easymock)))
407 (home-page "https://maven.apache.org/wagon")
408 (synopsis "Transport abstraction for Maven")
409 (description "Maven Wagon is a transport abstraction that is used in Maven's
410artifact and repository handling code.")
411 (license license:asl2.0)))
412
f216a9f9
JL
413(define-public maven-wagon-provider-test
414 (package
415 (inherit maven-wagon-provider-api)
416 (name "maven-wagon-provider-test")
417 (arguments
418 `(#:jar-name "maven-wagon-provider-test.jar"
419 #:source-dir "wagon-provider-test/src/main/java"
420 #:tests? #f; no tests
421 #:jdk ,icedtea-8))
422 (inputs
423 `(("java-plexus-utils" ,java-plexus-utils)
424 ("java-plexus-container-default" ,java-plexus-container-default)
425 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
426 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
427 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
428 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
429 ("java-slf4j-api" ,java-slf4j-api)
430 ("java-tomcat" ,java-tomcat)
431 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
432 (synopsis "Test classes from maven-wagon")
433 (description "Maven Wagon is a transport abstraction that is used in Maven's
434artifact and repository handling code. This package contains common test
435classes used in multiple maven-wagon components.")))
436
0d1b3b39
JL
437(define-public maven-wagon-file
438 (package
439 (inherit maven-wagon-provider-api)
440 (name "maven-wagon-file")
441 (arguments
442 `(#:jar-name "maven-wagon-file.jar"
443 #:source-dir "wagon-providers/wagon-file/src/main/java"
444 #:test-dir "wagon-providers/wagon-file/src/test"
445 #:jdk ,icedtea-8
446 #:phases
447 (modify-phases %standard-phases
448 (add-before 'check 'fix-paths
449 (lambda _
450 ;; Tests assume they are run by maven, which copies test resources
451 ;; to target. Our ant-build-system does the same, but with the
452 ;; build directory.
453 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
454 (("target") "build"))
455 #t))
456 (add-after 'build 'generate-metadata
457 (lambda _
458 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
459 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
460 "--source" "wagon-providers/wagon-file/src/main/java"
461 "--output" "build/classes/META-INF/plexus/components.xml"
462 "--classes" "build/classes"
463 "--descriptors" "build/classes/META-INF")
464 #t))
465 (add-after 'generate-metadata 'rebuild
466 (lambda _
467 (invoke "ant" "jar")
468 #t)))))
469 (inputs
470 `(("java-plexus-utils" ,java-plexus-utils)
471 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
472 (native-inputs
473 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
474 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
475 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
476 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
477 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
478 ("java-plexus-classworlds" ,java-plexus-classworlds)
479 ("java-guava" ,java-guava)
480 ("java-guice" ,java-guice)
481 ("java-javax-inject" ,java-javax-inject)
482 ("java-cglib" ,java-cglib)
483 ("java-slf4j-api" ,java-slf4j-api)
484 ("java-plexus-utils" ,java-plexus-utils)
485 ("java-plexus-cli" ,java-plexus-cli)
486 ("maven-plugin-api" ,maven-plugin-api)
487 ("maven-plugin-annotations" ,maven-plugin-annotations)
488 ("maven-core" ,maven-core)
489 ("maven-model" ,maven-model)
490 ("java-commons-cli" ,java-commons-cli)
491 ("java-qdox" ,java-qdox)
492 ("java-jdom2" ,java-jdom2)
493 ("java-asm" ,java-asm)
494 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
495 ,@(package-native-inputs maven-wagon-provider-api)))
496 (synopsis "Wagon provider that gets and puts artifacts using the file system")
497 (description "Maven Wagon is a transport abstraction that is used in Maven's
498artifact and repository handling code. It uses providers, that are tools to
499manage artifacts and deployment. This package contains the file provider which
500gets and puts artifacts using the file system.")))
501
53360e48
JL
502(define-public maven-wagon-tck-http
503 (package
504 (inherit maven-wagon-provider-api)
505 (name "maven-wagon-tck-http")
506 (arguments
507 `(#:jar-name "maven-wagon-tck-http.jar"
508 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
509 #:tests? #f; no tests
510 #:jdk ,icedtea-8))
511 (inputs
512 `(("java-plexus-util" ,java-plexus-utils)
513 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
514 ("java-tomcat" ,java-tomcat)
515 ("java-slf4j-api" ,java-slf4j-api)
516 ("java-commons-codec" ,java-commons-codec)
517 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
518 ("java-plexus-classworlds" ,java-plexus-classworlds)
519 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
520 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
521 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
522 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
523 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
524 (synopsis "Wagon HTTP Test Compatibility Kit")
525 (description "Maven Wagon is a transport abstraction that is used in Maven's
526artifact and repository handling code. This package contains the HTTP
527Test Compatibility Kit.")))
528
c3f5ec6e
JL
529(define-public maven-wagon-http-shared
530 (package
531 (inherit maven-wagon-provider-api)
532 (name "maven-wagon-http-shared")
533 (arguments
534 `(#:jar-name "maven-wagon-http-shared.jar"
535 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
536 #:test-dir "wagon-providers/wagon-http-shared/src/test"
537 #:jdk ,icedtea-8
538 #:phases
539 (modify-phases %standard-phases
540 (add-after 'build 'generate-metadata
541 (lambda _
542 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
543 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
544 "--source" "wagon-providers/wagon-http-shared/src/main/java"
545 "--output" "build/classes/META-INF/plexus/components.xml"
546 "--classes" "build/classes"
547 "--descriptors" "build/classes/META-INF")
548 #t))
549 (add-after 'generate-metadata 'rebuild
550 (lambda _
551 (invoke "ant" "jar")
552 #t)))))
553 (inputs
554 `(("java-plexus-utils" ,java-plexus-utils)
555 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
556 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
557 ("java-commons-io" ,java-commons-io)
558 ("java-jsoup" ,java-jsoup)
559 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
560 (native-inputs
561 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
562 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
563 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
564 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
565 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
566 ("java-plexus-classworlds" ,java-plexus-classworlds)
567 ("java-guava" ,java-guava)
568 ("java-guice" ,java-guice)
569 ("java-javax-inject" ,java-javax-inject)
570 ("java-cglib" ,java-cglib)
571 ("java-slf4j-api" ,java-slf4j-api)
572 ("java-plexus-utils" ,java-plexus-utils)
573 ("java-plexus-cli" ,java-plexus-cli)
574 ("maven-plugin-api" ,maven-plugin-api)
575 ("maven-plugin-annotations" ,maven-plugin-annotations)
576 ("maven-core" ,maven-core)
577 ("maven-model" ,maven-model)
578 ("java-commons-cli" ,java-commons-cli)
579 ("java-qdox" ,java-qdox)
580 ("java-jdom2" ,java-jdom2)
581 ("java-asm" ,java-asm)
582 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
583 ,@(package-native-inputs maven-wagon-provider-api)))
584 (synopsis "Shared Library for wagon providers supporting HTTP.")
585 (description "Maven Wagon is a transport abstraction that is used in Maven's
586artifact and repository handling code. It uses providers, that are tools to
587manage artifacts and deployment. This package contains a shared library for
588wagon providers supporting HTTP.")))
589
aa06dd0f
JL
590(define-public maven-wagon-http
591 (package
592 (inherit maven-wagon-provider-api)
593 (name "maven-wagon-http")
594 (arguments
595 `(#:jar-name "maven-wagon-http.jar"
596 #:source-dir "wagon-providers/wagon-http/src/main/java"
597 #:test-dir "wagon-providers/wagon-http/src/test"
598 #:test-exclude (list
599 "**/Abstract*.java"
600 ;; FIXME: javax.net.ssl.SSLHandshakeException:
601 ;; sun.security.validator.ValidatorException:
602 ;; PKIX path building failed:
603 ;; sun.security.provider.certpath.SunCertPathBuilderException:
604 ;; unable to find valid certification path to requested target
605 "**/HttpsWagonPreemptiveTest.java"
606 "**/HttpsWagonTest.java"
607 ;; Injection errors
608 "**/TckTest.java")
609 #:jdk ,icedtea-8
610 #:phases
611 (modify-phases %standard-phases
612 (add-before 'build 'copy-resources
613 (lambda _
614 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
615 "build/classes/META-INF/plexus")
616 #t))
617 (add-before 'check 'fix-resource-path
618 (lambda _
619 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
620 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
621 (("src/test") "wagon-providers/wagon-http/src/test"))
622 #t)))))
623 (inputs
624 `(("java-plexus-utils" ,java-plexus-utils)
625 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
626 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
627 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
628 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
629 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
630 (native-inputs
631 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
632 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
633 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
634 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
635 ("java-plexus-container-default" ,java-plexus-container-default)
636 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
637 ("java-plexus-classworlds" ,java-plexus-classworlds)
638 ("java-guava" ,java-guava)
639 ("java-guice" ,java-guice)
640 ("java-inject" ,java-javax-inject)
641 ("java-cglib" ,java-cglib)
642 ("java-slf4j-api" ,java-slf4j-api)
643 ("java-plexus-utils" ,java-plexus-utils)
644 ("java-plexus-cli" ,java-plexus-cli)
645 ("maven-plugin-api" ,maven-plugin-api)
646 ("maven-plugin-annotations" ,maven-plugin-annotations)
647 ("maven-core" ,maven-core)
648 ("maven-model" ,maven-model)
649 ("java-commons-cli" ,java-commons-cli)
650 ("java-qdox" ,java-qdox)
651 ("java-jdom2" ,java-jdom2)
652 ("java-asm" ,java-asm)
653 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
654 ("java-tomcat" ,java-tomcat)
655 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
656 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
657 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
658 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
659 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
660 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
661 ("java-hamcrest-core" ,java-hamcrest-core)
662 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
663 ("java-commons-codec" ,java-commons-codec)
664 ("java-commons-io" ,java-commons-io)
665 ("java-jsoup" ,java-jsoup)
666 ("java-slf4j-simple" ,java-slf4j-simple)
667 ,@(package-native-inputs maven-wagon-provider-api)))
668 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
669 (description "Maven Wagon is a transport abstraction that is used in Maven's
670artifact and repository handling code. It uses providers, that are tools to
671manage artifacts and deployment. This package contains a Wagon provider that
672gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
673
458687d5
JL
674(define-public maven-artifact
675 (package
676 (name "maven-artifact")
677 (version "3.5.3")
678 (source (origin
679 (method url-fetch)
680 (uri (string-append "https://archive.apache.org/dist/maven/"
681 "maven-3/" version "/source/"
682 "apache-maven-" version "-src.tar.gz"))
683 (sha256 (base32 "06by23fz207lkvsndq883irfcf4p77jzkgf7n2q7hzyw1hs4h5s7"))
684 (modules '((guix build utils)))
685 (snippet
686 '(begin
687 (for-each delete-file (find-files "." "\\.jar$"))
688 #t))
689 (patches
690 (search-patches "maven-generate-component-xml.patch"
691 "maven-generate-javax-inject-named.patch"))))
692 (build-system ant-build-system)
693 (arguments
694 `(#:jar-name "maven-artifact.jar"
695 #:source-dir "maven-artifact/src/main/java"
696 #:test-dir "maven-artifact/src/test"
697 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"))
698 (inputs
699 `(("java-plexus-utils" ,java-plexus-utils)
700 ("java-commons-lang3" ,java-commons-lang3)))
701 (native-inputs
702 `(("java-junit" ,java-junit)))
703 (home-page "https://maven.apache.org/")
704 (synopsis "Build system")
705 (description "Apache Maven is a software project management and comprehension
706tool. This package contains the Maven Artifact classes, providing the
707@code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
708jar file is executable and provides a little tool to display how Maven parses
709and compares versions:")
710 (license license:asl2.0)))
d55503a6
JL
711
712(define-public maven-model
713 (package
714 (inherit maven-artifact)
715 (name "maven-model")
716 (arguments
717 `(#:jar-name "maven-model.jar"
718 #:source-dir "maven-model/src/main/java"
719 #:test-dir "maven-model/src/test"
720 #:jdk ,icedtea-8
721 #:phases
722 (modify-phases %standard-phases
723 (add-before 'build 'generate-models
724 (lambda* (#:key inputs #:allow-other-keys)
725 (define (modello-single-mode file version mode)
726 (invoke "java" "org.codehaus.modello.ModelloCli"
727 file mode "maven-model/src/main/java" version
728 "false" "true"))
729 (let ((file "maven-model/src/main/mdo/maven.mdo"))
730 (modello-single-mode file "4.0.0" "java")
731 (modello-single-mode file "4.0.0" "xpp3-reader")
732 (modello-single-mode file "4.0.0" "xpp3-writer")
733 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
734 #t)))))
735 (inputs
736 `(("java-commons-lang3" ,java-commons-lang3)
737 ("java-plexus-utils" ,java-plexus-utils)))
738 (native-inputs
739 `(("java-modello-core" ,java-modello-core)
740 ;; for modello:
741 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
742 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
743 ("java-guice" ,java-guice)
744 ("java-cglib" ,java-cglib)
745 ("java-asm" ,java-asm)
746 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
747 ("java-javax-inject" ,java-javax-inject)
748 ("java-plexus-classworlds" ,java-plexus-classworlds)
749 ("java-guava" ,java-guava)
750 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
751 ("java-sisu-build-api" ,java-sisu-build-api)
752 ;; modello plugins:
753 ("java-modello-plugins-java" ,java-modello-plugins-java)
754 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
755 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
756 ;; for tests
757 ("java-junit" ,java-junit)))
758 (description "Apache Maven is a software project management and comprehension
759tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
760so really just plain Java objects.")))
f084641a
JL
761
762(define-public maven-builder-support
763 (package
764 (inherit maven-artifact)
765 (name "maven-builder-support")
766 (arguments
767 `(#:jar-name "maven-builder-support.jar"
768 #:source-dir "maven-builder-support/src/main/java"
769 #:jdk ,icedtea-8
770 #:test-dir "maven-builder-support/src/test"
771 #:phases
772 (modify-phases %standard-phases
773 (add-before 'check 'fix-paths
774 (lambda _
775 (with-directory-excursion "maven-builder-support/src/test/java"
776 (substitute*
777 '("org/apache/maven/building/FileSourceTest.java"
778 "org/apache/maven/building/UrlSourceTest.java")
779 (("target/test-classes") "maven-builder-support/src/test/resources")))
780 #t)))))
781 (inputs
782 `(("java-plexus-utils" ,java-plexus-utils)
783 ("java-commons-lang3" ,java-commons-lang3)))
784 (native-inputs
785 `(("java-junit" ,java-junit)
786 ("java-hamcrest-core" ,java-hamcrest-core)))
787 (description "Apache Maven is a software project management and comprehension
788tool. This package contains a support library for descriptor builders (model,
789setting, toolchains)")))
18110e45
JL
790
791(define-public maven-settings
792 (package
793 (inherit maven-artifact)
794 (name "maven-settings")
795 (arguments
796 `(#:jar-name "maven-settings.jar"
797 #:source-dir "maven-settings/src/main/java"
798 #:jdk ,icedtea-8
799 #:tests? #f; no tests
800 #:phases
801 (modify-phases %standard-phases
802 (add-before 'build 'generate-models
803 (lambda* (#:key inputs #:allow-other-keys)
804 (define (modello-single-mode file version mode)
805 (invoke "java" "org.codehaus.modello.ModelloCli"
806 file mode "maven-settings/src/main/java" version
807 "false" "true"))
808 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
809 (modello-single-mode file "1.1.0" "java")
810 (modello-single-mode file "1.1.0" "xpp3-reader")
811 (modello-single-mode file "1.1.0" "xpp3-writer"))
812 #t)))))
813 (inputs '())
814 (native-inputs
815 `(("java-modello-core" ,java-modello-core)
816 ;; for modello:
817 ;("container" ,java-plexus-container-default)
818 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
819 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
820 ("java-guice" ,java-guice)
821 ("java-cglib" ,java-cglib)
822 ("java-asm" ,java-asm)
823 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
824 ("java-javax-inject" ,java-javax-inject)
825 ("java-plexus-classworlds" ,java-plexus-classworlds)
826 ("java-plexus-utils" ,java-plexus-utils)
827 ("java-guava" ,java-guava)
828 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
829 ("java-sisu-build-api" ,java-sisu-build-api)
830 ;; modello plugins:
831 ("java-modello-plugins-java" ,java-modello-plugins-java)
832 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
833 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
834 (description "Apache Maven is a software project management and comprehension
835tool. This package contains strictly the model for Maven settings, that is
836simply plain java objects.")))
3a5572ae
JL
837
838(define-public maven-settings-builder
839 (package
840 (inherit maven-artifact)
841 (name "maven-settings-builder")
842 (arguments
843 `(#:jar-name "maven-settings-builder.jar"
844 #:source-dir "maven-settings-builder/src/main/java"
845 #:jdk ,icedtea-8
846 #:test-dir "maven-settings-builder/src/test"
847 #:phases
848 (modify-phases %standard-phases
849 (add-before 'build 'generate-components.xml
850 (lambda _
851 (mkdir-p "build/classes/META-INF/plexus")
852 (chmod "components.sh" #o755)
853 (invoke "./components.sh" "maven-settings-builder/src/main/java"
854 "build/classes/META-INF/plexus/components.xml")
855 #t)))))
856 (inputs
857 `(("java-plexus-utils" ,java-plexus-utils)
858 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
859 ("java-plexus-interpolation" ,java-plexus-interpolation)
860 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
861 ("maven-builder-support" ,maven-builder-support)
862 ("maven-settings" ,maven-settings)
863 ("java-commons-lang3" ,java-commons-lang3)))
864 (native-inputs
865 `(("java-junit" ,java-junit)))
866 (description "Apache Maven is a software project management and comprehension
867tool. This package contains the effective model builder, with profile activation,
868inheritance, interpolation, @dots{}")))
516db3b9
JL
869
870(define-public maven-model-builder
871 (package
872 (inherit maven-artifact)
873 (name "maven-model-builder")
874 (arguments
875 `(#:jar-name "maven-model-builder.jar"
876 #:source-dir "maven-model-builder/src/main/java"
877 #:jdk ,icedtea-8
878 #:test-dir "maven-model-builder/src/test"
879 #:phases
880 (modify-phases %standard-phases
881 (add-before 'build 'copy-resources
882 (lambda _
883 (copy-recursively "maven-model-builder/src/main/resources"
884 "build/classes")
885 #t))
886 (add-before 'build 'generate-components.xml
887 (lambda _
888 (mkdir-p "build/classes/META-INF/plexus")
889 (chmod "components.sh" #o755)
890 (invoke "./components.sh" "maven-model-builder/src/main/java"
891 "build/classes/META-INF/plexus/components.xml")
892 #t))
893 (add-before 'check 'fix-paths
894 (lambda _
895 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
896 (("src/test") "maven-model-builder/src/test"))
897 #t)))))
898 (inputs
899 `(("model" ,maven-model)
900 ("artifact" ,maven-artifact)
901 ("support" ,maven-builder-support)
902 ("annotations" ,java-plexus-component-annotations)
903 ("utils" ,java-plexus-utils)
904 ("interpolation" ,java-plexus-interpolation)
905 ("lang3" ,java-commons-lang3)
906 ("guava" ,java-guava)))
907 (native-inputs
908 `(("java-junit" ,java-junit)
909 ("java-hamcrest-core" ,java-hamcrest-core)
910 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
911 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
912 ("guice" ,java-guice)
913 ("java-cglib" ,java-cglib)
914 ("java-asm" ,java-asm)
915 ("sisu-inject" ,java-eclipse-sisu-inject)
916 ("javax-inject" ,java-javax-inject)
917 ("xmlunit" ,java-xmlunit)
918 ("xmlunit" ,java-xmlunit-legacy)
919 ("xbean" ,java-geronimo-xbean-reflect)
920 ("classworlds" ,java-plexus-classworlds)))
921 (description "Apache Maven is a software project management and comprehension
922tool. This package contains the effective model builder, with profile activation,
923inheritance, interpolation, @dots{}")))
18736663
JL
924
925(define-public maven-repository-metadata
926 (package
927 (inherit maven-artifact)
928 (name "maven-repository-metadata")
929 (arguments
930 `(#:jar-name "maven-repository-metadata.jar"
931 #:source-dir "maven-repository-metadata/src/main/java"
932 #:jdk ,icedtea-8
933 #:tests? #f; no tests
934 #:phases
935 (modify-phases %standard-phases
936 (add-before 'build 'generate-models
937 (lambda* (#:key inputs #:allow-other-keys)
938 (define (modello-single-mode file version mode)
939 (invoke "java" "org.codehaus.modello.ModelloCli"
940 file mode "maven-repository-metadata/src/main/java" version
941 "false" "true"))
942 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
943 (modello-single-mode file "1.1.0" "java")
944 (modello-single-mode file "1.1.0" "xpp3-reader")
945 (modello-single-mode file "1.1.0" "xpp3-writer"))
946 #t)))))
947 (inputs '())
948 (native-inputs
949 `(("modello" ,java-modello-core)
950 ;; for modello:
951 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
952 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
953 ("java-guice" ,java-guice)
954 ("java-cglib" ,java-cglib)
955 ("java-asm" ,java-asm)
956 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
957 ("java-javax-inject" ,java-javax-inject)
958 ("java-plexus-utils" ,java-plexus-utils)
959 ("java-plexus-classworlds" ,java-plexus-classworlds)
960 ("java-guava" ,java-guava)
961 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
962 ("java-sisu-build-api" ,java-sisu-build-api)
963 ;; modello plugins:
964 ("java-modello-plugins-java" ,java-modello-plugins-java)
965 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
966 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
967 (description "Apache Maven is a software project management and comprehension
968tool. This package contains strictly the model for Maven Repository Metadata,
969so really just plain objects.")))
5aa4ea6a
JL
970
971(define-public maven-resolver-provider
972 (package
973 (inherit maven-artifact)
974 (name "maven-resolver-provider")
975 (arguments
976 `(#:jar-name "maven-resolver-provider.jar"
977 #:source-dir "maven-resolver-provider/src/main/java"
978 #:test-dir "maven-resolver-provider/src/test"
979 #:jdk ,icedtea-8
980 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
981 #:phases
982 (modify-phases %standard-phases
983 (add-before 'build 'generate-sisu-named
984 (lambda _
985 (mkdir-p "build/classes/META-INF/sisu")
986 (chmod "./sisu.sh" #o755)
987 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
988 "build/classes/META-INF/sisu/javax.inject.Named")
989 #t)))))
990 (inputs
991 `(("maven-resolver-spi" ,maven-resolver-spi)
992 ("maven-resolver-api" ,maven-resolver-api)
993 ("maven-resolver-impl" ,maven-resolver-impl)
994 ("maven-resolver-util" ,maven-resolver-util)
995 ("maven-model" ,maven-model)
996 ("maven-model-builder" ,maven-model-builder)
997 ("maven-builder-support" ,maven-builder-support)
998 ("maven-repository-metadata" ,maven-repository-metadata)
999 ("java-plexus-utils" ,java-plexus-utils)
1000 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1001 ("java-commons-lang3" ,java-commons-lang3)
1002 ("java-guice" ,java-guice)
1003 ("java-guava" ,java-guava)
1004 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1005 ("java-javax-inject" ,java-javax-inject)))))
8f5caf93
JL
1006
1007(define-public maven-plugin-api
1008 (package
1009 (inherit maven-artifact)
1010 (name "maven-plugin-api")
1011 (arguments
1012 `(#:jar-name "maven-plugin-api.jar"
1013 #:source-dir "maven-plugin-api/src/main/java"
1014 #:jdk ,icedtea-8
1015 #:test-dir "maven-plugin-api/src/test"
1016 #:phases
1017 (modify-phases %standard-phases
1018 (add-before 'build 'generate-models
1019 (lambda* (#:key inputs #:allow-other-keys)
1020 (define (modello-single-mode file version mode)
1021 (invoke "java" "org.codehaus.modello.ModelloCli"
1022 file mode "maven-plugin-api/src/main/java" version
1023 "false" "true"))
1024 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1025 (modello-single-mode file "1.0.0" "java")
1026 (modello-single-mode file "1.0.0" "xpp3-reader")
1027 (modello-single-mode file "1.0.0" "xpp3-writer"))
1028 #t)))))
1029 (inputs
1030 `(("maven-artifact" ,maven-artifact)
1031 ("maven-model" ,maven-model)
1032 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1033 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1034 ("guice" ,java-guice)
1035 ("java-cglib" ,java-cglib)
1036 ("java-asm" ,java-asm)
1037 ("sisu-inject" ,java-eclipse-sisu-inject)
1038 ("javax-inject" ,java-javax-inject)
1039 ("utils" ,java-plexus-utils)))
1040 (native-inputs
1041 `(("modello" ,java-modello-core)
1042 ;; for modello:
1043 ("classworlds" ,java-plexus-classworlds)
1044 ("guava" ,java-guava)
1045 ("xbean" ,java-geronimo-xbean-reflect)
1046 ("build-api" ,java-sisu-build-api)
1047 ;; modello plugins:
1048 ("java" ,java-modello-plugins-java)
1049 ("xml" ,java-modello-plugins-xml)
1050 ("xpp3" ,java-modello-plugins-xpp3)
1051 ;; for tests
1052 ("java-junit" ,java-junit)))
1053 (description "Apache Maven is a software project management and comprehension
1054tool. This package contains strictly the API for plugins -- composed of goals
1055implemented by Mojos -- development.
1056
1057A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1058generally generated from plugin sources using maven-plugin-plugin.")))
7a42f058
JL
1059
1060(define maven-core-bootstrap
1061 (package
1062 (inherit maven-artifact)
1063 (name "maven-core")
1064 (arguments
1065 `(#:jar-name "maven-core.jar"
1066 #:source-dir "src/main/java"
1067 #:jdk ,icedtea-8
1068 ;; Tests need maven-compat, which requires maven-core
1069 #:tests? #f
1070 #:phases
1071 (modify-phases %standard-phases
1072 (add-before 'configure 'chdir
1073 (lambda _
1074 ;; Required for generating components.xml in maven-core
1075 (chdir "maven-core")
1076 #t))
1077 (add-before 'build 'copy-resources
1078 (lambda _
1079 (mkdir-p "build/classes/")
1080 (copy-recursively "src/main/resources" "build/classes")
1081 #t))
1082 (add-before 'build 'generate-sisu-named
1083 (lambda _
1084 (mkdir-p "build/classes/META-INF/sisu")
1085 (chmod "../sisu.sh" #o755)
1086 (invoke "../sisu.sh" "src/main/java"
1087 "build/classes/META-INF/sisu/javax.inject.Named")
1088 #t))
1089 (add-before 'build 'generate-models
1090 (lambda* (#:key inputs #:allow-other-keys)
1091 (define (modello-single-mode file version mode)
1092 (invoke "java" "org.codehaus.modello.ModelloCli"
1093 file mode "src/main/java" version
1094 "false" "true"))
1095 (let ((file "src/main/mdo/toolchains.mdo"))
1096 (modello-single-mode file "1.1.0" "java")
1097 (modello-single-mode file "1.1.0" "xpp3-reader")
1098 (modello-single-mode file "1.1.0" "xpp3-writer"))
1099 #t)))))
1100 (inputs
1101 `(("maven-artifact" ,maven-artifact)
1102 ("maven-resolver-provider" ,maven-resolver-provider)
1103 ("maven-builder-support" ,maven-builder-support)
1104 ("maven-model" ,maven-model)
1105 ("maven-model-builder" ,maven-model-builder)
1106 ("maven-settings" ,maven-settings)
1107 ("maven-settings-builder" ,maven-settings-builder)
1108 ("maven-plugin-api" ,maven-plugin-api)
1109 ("maven-repository-metadata" ,maven-repository-metadata)
1110 ("maven-shared-utils" ,maven-shared-utils)
1111 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1112 ("java-plexus-utils" ,java-plexus-utils)
1113 ("java-commons-lang3" ,java-commons-lang3)
1114 ("java-guava" ,java-guava)
1115 ("java-guice" ,java-guice)
1116 ("maven-resolver-api" ,maven-resolver-api)
1117 ("maven-resolver-spi" ,maven-resolver-spi)
1118 ("maven-resolver-util" ,maven-resolver-util)
1119 ("maven-resolver-impl" ,maven-resolver-impl)
1120 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1121 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1122 ("java-javax-inject" ,java-javax-inject)
1123 ("java-plexus-classworld" ,java-plexus-classworlds)))
1124 (native-inputs
1125 `(("java-modello-core" ,java-modello-core)
1126 ("java-cglib" ,java-cglib)
1127 ("java-asm" ,java-asm)
1128 ("java-plexus-classworlds" ,java-plexus-classworlds)
1129 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1130 ("java-sisu-build-api" ,java-sisu-build-api)
1131 ("java-modello-plugins-java" ,java-modello-plugins-java)
1132 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1133 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1134 ;; tests
1135 ("java-junit" ,java-junit)
1136 ("java-mockito-1" ,java-mockito-1)
1137 ("java-commons-jxpath" ,java-commons-jxpath)))
1138 (description "Apache Maven is a software project management and comprehension
1139tool. This package contains the maven core classes managing the whole build
1140process.")))
b822544c
JL
1141
1142(define-public maven-core
1143 (package
1144 (inherit maven-core-bootstrap)
1145 (arguments
1146 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1147 ((#:phases phases)
1148 `(modify-phases ,phases
1149 (add-before 'build 'modify-metainf
1150 (lambda _
1151 (substitute* "build.xml"
1152 (("message=\"\"") "message=\"Implementation-Version: 3.5.3\n\""))
1153 #t))
1154 (add-before 'build 'add-maven-files
1155 (lambda _
1156 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1157 (copy-file "pom.xml"
1158 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1159 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1160 (lambda _
1161 (format #t "version=~a~%
1162groupId=org.apache.maven~%
1163artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1164 #t))
1165 (add-after 'build 'generate-metadata
1166 (lambda _
1167 (define (components file)
1168 (let ((sxml (with-input-from-file file
1169 (lambda _ (xml->sxml (current-input-port)
1170 #:trim-whitespace? #t)))))
1171 ;; Select the list of <component>s inside the <component-set>
1172 ;; and <components>.
1173 ((@ (ice-9 match) match) sxml
1174 (('*TOP*
1175 ('*PI* foo ...)
1176 ('component-set
1177 ('components x ...))) x))))
1178 (use-modules (sxml simple))
1179 (delete-file "build/classes/META-INF/plexus/components.xml")
1180 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1181 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1182 "--source" "build/classes/META-INF/plexus"
1183 "--output" "build/classes/META-INF/plexus/components.t.xml"
1184 "--classes" "build/classes"
1185 "--descriptors" "build/classes")
1186 ;; Now we merge all other components from hand-written xml
1187 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1188 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1189 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1190 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1191 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1192 (lambda _
1193 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1194 (sxml->xml
1195 `(component-set
1196 (components
1197 ,@(append generated-xml components-xml
1198 default-bindings-xml
1199 artifact-handlers-xml)))))))
1200 #t))
1201 (add-after 'generate-metadata 'rebuild
1202 (lambda _
1203 (invoke "ant" "jar")
1204 #t))))))
1205 (native-inputs
1206 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1207 ("java-commons-cli" ,java-commons-cli)
1208 ("java-plexus-cli" ,java-plexus-cli)
1209 ("java-jdom2" ,java-jdom2)
1210 ("java-qdox" ,java-qdox)
1211 ("maven-core-boot" ,maven-core-bootstrap)
1212 ,@(package-native-inputs maven-core-bootstrap)))))
e2c7d329
JL
1213
1214(define-public maven-embedder
1215 (package
1216 (inherit maven-artifact)
1217 (name "maven-embedder")
1218 (arguments
1219 `(#:jar-name "maven-embedder.jar"
1220 #:source-dir "maven-embedder/src/main/java"
1221 #:test-dir "maven-embedder/src/test"
1222 #:test-exclude (list "**/MavenCliTest.java")
1223 #:jdk ,icedtea-8
1224 #:phases
1225 (modify-phases %standard-phases
1226 (add-before 'build 'generate-sisu-named
1227 (lambda _
1228 (mkdir-p "build/classes/META-INF/sisu")
1229 (chmod "sisu.sh" #o755)
1230 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1231 "build/classes/META-INF/sisu/javax.inject.Named")
1232 #t))
1233 (add-before 'build 'generate-models
1234 (lambda* (#:key inputs #:allow-other-keys)
1235 (define (modello-single-mode file version mode)
1236 (invoke "java" "org.codehaus.modello.ModelloCli"
1237 file mode "maven-embedder/src/main/java" version
1238 "false" "true"))
1239 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1240 (modello-single-mode file "1.0.0" "java")
1241 (modello-single-mode file "1.0.0" "xpp3-reader")
1242 (modello-single-mode file "1.0.0" "xpp3-writer"))
1243 #t))
1244 (add-before 'check 'fix-test-paths
1245 (lambda _
1246 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1247 (("target/test-classes") "build/test-classes"))
1248 #t))
1249 (add-before 'check 'fix-test-compilation
1250 (lambda _
1251 ;; Tests are in the java/ subdir. Other subdirectories contain
1252 ;; additional test plugins, with duplicate classes, so we can't
1253 ;; compile them. Also, they are meant to be built with maven, to
1254 ;; test its build process.
1255 (substitute* "build.xml"
1256 (("srcdir=\"maven-embedder/src/test\"")
1257 "srcdir=\"maven-embedder/src/test/java\""))
1258 #t)))))
1259 (inputs
1260 `(("maven-core" ,maven-core)
1261 ("maven-artifact" ,maven-artifact)
1262 ("maven-plugin-api" ,maven-plugin-api)
1263 ("maven-builder-support" ,maven-builder-support)
1264 ("maven-model" ,maven-model)
1265 ("maven-model-builder" ,maven-model-builder)
1266 ("maven-settings" ,maven-settings)
1267 ("maven-settings-builder" ,maven-settings-builder)
1268 ("maven-shared-utils" ,maven-shared-utils)
1269 ("java-plexus-classworlds" ,java-plexus-classworlds)
1270 ("java-plexus-util" ,java-plexus-utils)
1271 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1272 ("java-plexus-cipher" ,java-plexus-cipher)
1273 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1274 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1275 ("maven-resolevr-util" ,maven-resolver-util)
1276 ("maven-resolevr-api" ,maven-resolver-api)
1277 ("java-logback-core" ,java-logback-core)
1278 ("java-logback-classic" ,java-logback-classic)
1279 ("java-commons-cli" ,java-commons-cli)
1280 ("java-commons-io" ,java-commons-io)
1281 ("java-commons-lang3" ,java-commons-lang3)
1282 ("java-guava" ,java-guava)
1283 ("java-guice" ,java-guice)
1284 ("java-javax-inject" ,java-javax-inject)
1285 ("java-slf4j-api" ,java-slf4j-api)
1286 ("java-slf4j-simple" ,java-slf4j-simple)))
1287 (native-inputs
1288 `(("java-modello-core" ,java-modello-core)
1289 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1290 ("java-sisu-build-api" ,java-sisu-build-api)
1291 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1292 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1293 ("java-cglib" ,java-cglib)
1294 ("java-asm" ,java-asm)
1295 ("java-modello-plugins-java" ,java-modello-plugins-java)
1296 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1297 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1298 ;; tests
1299 ("java-junit" ,java-junit)
1300 ("java-objenesis" ,java-objenesis)
1301 ("java-mockito-1" ,java-mockito-1)
1302 ("java-hamcrest-core" ,java-hamcrest-core)))
1303 (description "Apache Maven is a software project management and comprehension
1304tool. This package contains a Maven embeddable component, with CLI and
1305logging support.")))
0c1e98eb
JL
1306
1307(define-public maven-compat
1308 (package
1309 (inherit maven-artifact)
1310 (name "maven-compat")
1311 (arguments
1312 `(#:jar-name "maven-compat.jar"
1313 #:source-dir "src/main/java"
1314 #:jdk ,icedtea-8
1315 #:test-dir "src/test"
1316 #:phases
1317 (modify-phases %standard-phases
1318 ;; Tests assume we're in this directory
1319 (add-before 'configure 'chdir
1320 (lambda _
1321 (chdir "maven-compat")
1322 #t))
1323 (add-before 'build 'generate-models
1324 (lambda* (#:key inputs #:allow-other-keys)
1325 (define (modello-single-mode file version mode)
1326 (invoke "java" "org.codehaus.modello.ModelloCli"
1327 file mode "src/main/java" version
1328 "false" "true"))
1329 (let ((file "src/main/mdo/profiles.mdo"))
1330 (modello-single-mode file "1.0.0" "java")
1331 (modello-single-mode file "1.0.0" "xpp3-reader")
1332 (modello-single-mode file "1.0.0" "xpp3-writer"))
1333 (let ((file "src/main/mdo/paramdoc.mdo"))
1334 (modello-single-mode file "1.0.0" "java")
1335 (modello-single-mode file "1.0.0" "xpp3-reader")
1336 (modello-single-mode file "1.0.0" "xpp3-writer"))
1337 #t))
1338 (add-after 'build 'generate-metadata
1339 (lambda _
1340 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1341 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1342 "--source" "src/main/java"
1343 "--output" "build/classes/META-INF/plexus/components.xml"
1344 "--classes" "build/classes"
1345 "--descriptors" "build/classes/META-INF")
1346 #t))
1347 (add-before 'check 'build-tests
1348 (lambda _
1349 (invoke "ant" "compile-tests")
1350 #t))
1351 (add-after 'build-tests 'generate-test-metadata
1352 (lambda _
1353 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1354 ":build/classes"
1355 ":build/test-classes")
1356 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1357 "--source" "src/test/java"
1358 "--output" "build/test-classes/META-INF/plexus/components.xml"
1359 "--classes" "build/test-classes"
1360 "--descriptors" "build/test-classes/META-INF")
1361 #t))
1362 (add-after 'generate-metadata 'rebuild
1363 (lambda _
1364 (invoke "ant" "jar")
1365 #t)))))
1366 (inputs
1367 `(("maven-artifact" ,maven-artifact)
1368 ("maven-repository-metadata" ,maven-repository-metadata)
1369 ("maven-builder-support" ,maven-builder-support)
1370 ("maven-model" ,maven-model)
1371 ("maven-model-builder" ,maven-model-builder)
1372 ("maven-settings" ,maven-settings)
1373 ("maven-settings-builder" ,maven-settings-builder)
1374 ("maven-core" ,maven-core)
1375 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1376 ("maven-wagon-file" ,maven-wagon-file)
1377 ("maven-resolver-api" ,maven-resolver-api)
1378 ("maven-resolver-util" ,maven-resolver-util)
1379 ("maven-resolver-spi" ,maven-resolver-spi)
1380 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1381 (native-inputs
1382 `(("java-modello-core" ,java-modello-core)
1383 ("java-plexus-utils" ,java-plexus-utils)
1384 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1385 ("java-plexus-classworlds" ,java-plexus-classworlds)
1386 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1387 ("java-sisu-build-api" ,java-sisu-build-api)
1388 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1389 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1390 ("java-javax-inject" ,java-javax-inject)
1391 ("java-guice" ,java-guice)
1392 ("java-guava" ,java-guava)
1393 ("java-cglib" ,java-cglib)
1394 ("java-asm" ,java-asm)
1395 ("java-modello-plugins-java" ,java-modello-plugins-java)
1396 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1397 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1398 ;; metadata
1399 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1400 ("java-commons-cli" ,java-commons-cli)
1401 ("java-plexus-cli" ,java-plexus-cli)
1402 ("java-jdom2" ,java-jdom2)
1403 ("maven-plugin-api" ,maven-plugin-api)
1404 ("java-qdox" ,java-qdox)
1405 ;; tests
1406 ("java-plexus-cipher" ,java-plexus-cipher)
1407 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
de99ba7e 1408 ("java-jsr250" ,java-jsr250)
0c1e98eb
JL
1409 ("java-cdi-api" ,java-cdi-api)
1410 ("java-junit" ,java-junit)
1411 ("maven-resolver-impl" ,maven-resolver-impl)
1412 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1413 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1414 ("java-commons-lang3" ,java-commons-lang3)
1415 ("java-aop" ,java-aopalliance)
1416 ("maven-resolver-provider" ,maven-resolver-provider)
1417 ("java-slf4j-api" ,java-slf4j-api)
1418 ("java-slf4j-simple" ,java-slf4j-simple)
1419 ,@(package-inputs java-slf4j-api)))
1420 (description "Apache Maven is a software project management and comprehension
1421tool. This package contains Maven2 classes maintained as compatibility
1422layer for plugins that need to keep Maven2 compatibility.")))
8c2c105c
JL
1423
1424(define-public maven
1425 (package
1426 (inherit maven-artifact)
1427 (name "maven")
1428 (arguments
1429 `(#:phases
1430 (modify-phases %standard-phases
1431 (replace 'build
1432 (lambda _
1433 (substitute* "apache-maven/src/bin/mvn"
1434 (("cygwin=false;")
1435 (string-append
1436 "CLASSPATH=" (getenv "CLASSPATH") "\n"
1437 "cygwin=false;"))
1438 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
1439 #t))
1440 (delete 'check)
1441 (replace 'install
1442 (lambda* (#:key outputs #:allow-other-keys)
1443 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
1444 (conf (string-append (assoc-ref outputs "out") "/conf/")))
1445 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
1446 (for-each (lambda (file)
1447 (install-file (string-append "apache-maven/src/bin/" file)
1448 bin)
1449 (chmod (string-append bin file) #o755))
1450 '("mvn" "mvnDebug" "mvnyjp"))
1451 (install-file "apache-maven/src/bin/m2.conf" bin)
1452 (copy-recursively "apache-maven/src/conf" conf))
1453 #t)))))
1454 (inputs
1455 `(("java-plexus-classworlds" ,java-plexus-classworlds)
1456 ("maven-artifact" ,maven-artifact)
1457 ("maven-embedder" ,maven-embedder)
1458 ("maven-core" ,maven-core)
1459 ("maven-compat" ,maven-compat)
1460 ("maven-builder-support" ,maven-builder-support)
1461 ("maven-model" ,maven-model)
1462 ("maven-model-builder" ,maven-model-builder)
1463 ("maven-settings" ,maven-settings)
1464 ("maven-settings-builder" ,maven-settings-builder)
1465 ("maven-plugin-api" ,maven-plugin-api)
de99ba7e 1466 ("maven-repository-metadata" ,maven-repository-metadata)
8c2c105c
JL
1467 ("maven-shared-utils" ,maven-shared-utils)
1468 ("maven-resolver-api" ,maven-resolver-api)
1469 ("maven-resolver-spi" ,maven-resolver-spi)
1470 ("maven-resolver-util" ,maven-resolver-util)
1471 ("maven-resolver-impl" ,maven-resolver-impl)
1472 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1473 ("maven-resolver-provider" ,maven-resolver-provider)
1474 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1475 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1476 ("maven-wagon-file" ,maven-wagon-file)
1477 ("maven-wagon-http" ,maven-wagon-http)
1478 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1479 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
1480 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
1481 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
1482 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
1483 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1484 ("java-guice" ,java-guice)
1485 ("java-aopalliance" ,java-aopalliance)
1486 ("java-cglib" ,java-cglib)
1487 ("java-asm" ,java-asm)
1488 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1489 ("java-javax-inject" ,java-javax-inject)
1490 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1491 ("java-plexus-utils" ,java-plexus-utils)
1492 ("java-plexus-interpolation" ,java-plexus-interpolation)
1493 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1494 ("java-plexus-cipher" ,java-plexus-cipher)
1495 ("java-guava" ,java-guava)
1496 ("java-jansi" ,java-jansi)
1497 ("java-jsr250" ,java-jsr250)
1498 ("java-cdi-api" ,java-cdi-api)
1499 ("java-commons-cli" ,java-commons-cli)
1500 ("java-commons-io" ,java-commons-io)
1501 ("java-commons-lang3" ,java-commons-lang3)
1502 ("java-slf4j-api" ,java-slf4j-api)
1503 ;; TODO: replace with maven-slf4j-provider
1504 ("java-slf4j-simple" ,java-slf4j-simple)))
1505 (description "Apache Maven is a software project management and comprehension
1506tool. Based on the concept of a project object model: builds, dependency
1507management, documentation creation, site publication, and distribution
1508publication are all controlled from the @file{pom.xml} declarative file. Maven
1509can be extended by plugins to utilise a number of other development tools for
1510reporting or the build process.")))