gnu: Add maven-resources-plugin.
[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"
f7385760
JL
664 #:tests? #f
665 #:phases
666 (modify-phases %standard-phases
667 (replace 'install
668 (install-from-pom "maven-plugin-annotations/pom.xml")))))
669 (propagated-inputs
670 `(("maven-artifact" ,maven-artifact)
671 ("maven-plugin-tools-parent-pom" ,maven-plugin-tools-parent-pom)))
a59d5f35
JL
672 (native-inputs
673 `(("unzip" ,unzip)))
674 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
675 (synopsis "Java 5 annotations to use in Mojos")
676 (description "This package contains Java 5 annotations for use in Mojos.")
677 (license license:asl2.0)))
678
f7385760
JL
679(define maven-plugin-tools-parent-pom
680 (package
681 (inherit maven-plugin-annotations)
682 (name "maven-plugin-tools-parent-pom")
683 (arguments
684 `(#:tests? #f
685 #:phases
686 (modify-phases %standard-phases
687 (delete 'configure)
688 (delete 'build)
689 (replace 'install
690 (install-pom-file "pom.xml")))))
691 (propagated-inputs '())))
692
ff7a0fcf
JL
693(define-public maven-wagon-provider-api
694 (package
695 (name "maven-wagon-provider-api")
ff0496d0 696 (version "3.3.4")
ff7a0fcf
JL
697 (source (origin
698 (method url-fetch)
51087d51 699 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
ff7a0fcf 700 "wagon-" version "-source-release.zip"))
ff0496d0
JL
701 (sha256
702 (base32
703 "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
ff7a0fcf
JL
704 (build-system ant-build-system)
705 (arguments
706 `(#:jar-name "maven-wagon-provider-api.jar"
707 #:source-dir "wagon-provider-api/src/main/java"
ff0496d0
JL
708 #:test-dir "wagon-provider-api/src/test"
709 #:phases
710 (modify-phases %standard-phases
711 (replace 'install
712 (install-from-pom "wagon-provider-api/pom.xml")))))
713 (propagated-inputs
714 `(("java-plexus-utils" ,java-plexus-utils)
715 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
ff7a0fcf
JL
716 (native-inputs
717 `(("unzip" ,unzip)
718 ("java-junit" ,java-junit)
719 ("java-easymock" ,java-easymock)))
720 (home-page "https://maven.apache.org/wagon")
721 (synopsis "Transport abstraction for Maven")
722 (description "Maven Wagon is a transport abstraction that is used in Maven's
723artifact and repository handling code.")
724 (license license:asl2.0)))
725
ff0496d0
JL
726(define maven-wagon-parent-pom
727 (package
728 (inherit maven-wagon-provider-api)
729 (arguments
730 `(#:tests? #f
731 #:phases
732 (modify-phases %standard-phases
733 (delete 'configure)
734 (delete 'build)
735 (replace 'install
736 (install-pom-file "pom.xml")))))
737 (propagated-inputs
738 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
739 (native-inputs
740 `(("unzip" ,unzip)))))
741
f216a9f9
JL
742(define-public maven-wagon-provider-test
743 (package
744 (inherit maven-wagon-provider-api)
745 (name "maven-wagon-provider-test")
746 (arguments
747 `(#:jar-name "maven-wagon-provider-test.jar"
748 #:source-dir "wagon-provider-test/src/main/java"
749 #:tests? #f; no tests
750 #:jdk ,icedtea-8))
751 (inputs
752 `(("java-plexus-utils" ,java-plexus-utils)
753 ("java-plexus-container-default" ,java-plexus-container-default)
ff0496d0 754 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
f216a9f9
JL
755 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
756 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
757 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
758 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
759 ("java-slf4j-api" ,java-slf4j-api)
4b472f6a 760 ("java-javaee-servletapi" ,java-javaee-servletapi)
f216a9f9
JL
761 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
762 (synopsis "Test classes from maven-wagon")
763 (description "Maven Wagon is a transport abstraction that is used in Maven's
764artifact and repository handling code. This package contains common test
765classes used in multiple maven-wagon components.")))
766
0d1b3b39
JL
767(define-public maven-wagon-file
768 (package
769 (inherit maven-wagon-provider-api)
770 (name "maven-wagon-file")
771 (arguments
772 `(#:jar-name "maven-wagon-file.jar"
773 #:source-dir "wagon-providers/wagon-file/src/main/java"
774 #:test-dir "wagon-providers/wagon-file/src/test"
775 #:jdk ,icedtea-8
776 #:phases
777 (modify-phases %standard-phases
778 (add-before 'check 'fix-paths
779 (lambda _
780 ;; Tests assume they are run by maven, which copies test resources
781 ;; to target. Our ant-build-system does the same, but with the
782 ;; build directory.
783 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
784 (("target") "build"))
785 #t))
786 (add-after 'build 'generate-metadata
787 (lambda _
788 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
789 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
790 "--source" "wagon-providers/wagon-file/src/main/java"
791 "--output" "build/classes/META-INF/plexus/components.xml"
792 "--classes" "build/classes"
793 "--descriptors" "build/classes/META-INF")
794 #t))
795 (add-after 'generate-metadata 'rebuild
796 (lambda _
797 (invoke "ant" "jar")
798 #t)))))
799 (inputs
800 `(("java-plexus-utils" ,java-plexus-utils)
801 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
802 (native-inputs
803 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
804 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
805 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
806 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
807 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
808 ("java-plexus-classworlds" ,java-plexus-classworlds)
809 ("java-guava" ,java-guava)
810 ("java-guice" ,java-guice)
811 ("java-javax-inject" ,java-javax-inject)
812 ("java-cglib" ,java-cglib)
813 ("java-slf4j-api" ,java-slf4j-api)
814 ("java-plexus-utils" ,java-plexus-utils)
815 ("java-plexus-cli" ,java-plexus-cli)
816 ("maven-plugin-api" ,maven-plugin-api)
817 ("maven-plugin-annotations" ,maven-plugin-annotations)
818 ("maven-core" ,maven-core)
819 ("maven-model" ,maven-model)
820 ("java-commons-cli" ,java-commons-cli)
821 ("java-qdox" ,java-qdox)
822 ("java-jdom2" ,java-jdom2)
823 ("java-asm" ,java-asm)
824 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
825 ,@(package-native-inputs maven-wagon-provider-api)))
826 (synopsis "Wagon provider that gets and puts artifacts using the file system")
827 (description "Maven Wagon is a transport abstraction that is used in Maven's
828artifact and repository handling code. It uses providers, that are tools to
829manage artifacts and deployment. This package contains the file provider which
830gets and puts artifacts using the file system.")))
831
53360e48
JL
832(define-public maven-wagon-tck-http
833 (package
834 (inherit maven-wagon-provider-api)
835 (name "maven-wagon-tck-http")
836 (arguments
837 `(#:jar-name "maven-wagon-tck-http.jar"
838 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
839 #:tests? #f; no tests
840 #:jdk ,icedtea-8))
841 (inputs
842 `(("java-plexus-util" ,java-plexus-utils)
843 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
53ba191b 844 ("java-javaee-servletapi" ,java-javaee-servletapi)
53360e48
JL
845 ("java-slf4j-api" ,java-slf4j-api)
846 ("java-commons-codec" ,java-commons-codec)
847 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
848 ("java-plexus-classworlds" ,java-plexus-classworlds)
849 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
850 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
851 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
852 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
853 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
854 (synopsis "Wagon HTTP Test Compatibility Kit")
855 (description "Maven Wagon is a transport abstraction that is used in Maven's
856artifact and repository handling code. This package contains the HTTP
857Test Compatibility Kit.")))
858
c3f5ec6e
JL
859(define-public maven-wagon-http-shared
860 (package
861 (inherit maven-wagon-provider-api)
862 (name "maven-wagon-http-shared")
863 (arguments
864 `(#:jar-name "maven-wagon-http-shared.jar"
865 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
866 #:test-dir "wagon-providers/wagon-http-shared/src/test"
867 #:jdk ,icedtea-8
868 #:phases
869 (modify-phases %standard-phases
870 (add-after 'build 'generate-metadata
871 (lambda _
872 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
873 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
874 "--source" "wagon-providers/wagon-http-shared/src/main/java"
875 "--output" "build/classes/META-INF/plexus/components.xml"
876 "--classes" "build/classes"
877 "--descriptors" "build/classes/META-INF")
878 #t))
879 (add-after 'generate-metadata 'rebuild
880 (lambda _
881 (invoke "ant" "jar")
882 #t)))))
883 (inputs
884 `(("java-plexus-utils" ,java-plexus-utils)
885 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
886 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
887 ("java-commons-io" ,java-commons-io)
888 ("java-jsoup" ,java-jsoup)
889 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
890 (native-inputs
891 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
892 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
893 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
894 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
895 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
896 ("java-plexus-classworlds" ,java-plexus-classworlds)
897 ("java-guava" ,java-guava)
898 ("java-guice" ,java-guice)
899 ("java-javax-inject" ,java-javax-inject)
900 ("java-cglib" ,java-cglib)
901 ("java-slf4j-api" ,java-slf4j-api)
902 ("java-plexus-utils" ,java-plexus-utils)
903 ("java-plexus-cli" ,java-plexus-cli)
904 ("maven-plugin-api" ,maven-plugin-api)
905 ("maven-plugin-annotations" ,maven-plugin-annotations)
906 ("maven-core" ,maven-core)
907 ("maven-model" ,maven-model)
908 ("java-commons-cli" ,java-commons-cli)
909 ("java-qdox" ,java-qdox)
910 ("java-jdom2" ,java-jdom2)
911 ("java-asm" ,java-asm)
912 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
913 ,@(package-native-inputs maven-wagon-provider-api)))
914 (synopsis "Shared Library for wagon providers supporting HTTP.")
915 (description "Maven Wagon is a transport abstraction that is used in Maven's
916artifact and repository handling code. It uses providers, that are tools to
917manage artifacts and deployment. This package contains a shared library for
918wagon providers supporting HTTP.")))
919
aa06dd0f
JL
920(define-public maven-wagon-http
921 (package
922 (inherit maven-wagon-provider-api)
923 (name "maven-wagon-http")
924 (arguments
925 `(#:jar-name "maven-wagon-http.jar"
926 #:source-dir "wagon-providers/wagon-http/src/main/java"
927 #:test-dir "wagon-providers/wagon-http/src/test"
928 #:test-exclude (list
929 "**/Abstract*.java"
930 ;; FIXME: javax.net.ssl.SSLHandshakeException:
931 ;; sun.security.validator.ValidatorException:
932 ;; PKIX path building failed:
933 ;; sun.security.provider.certpath.SunCertPathBuilderException:
934 ;; unable to find valid certification path to requested target
935 "**/HttpsWagonPreemptiveTest.java"
936 "**/HttpsWagonTest.java"
937 ;; Injection errors
938 "**/TckTest.java")
939 #:jdk ,icedtea-8
940 #:phases
941 (modify-phases %standard-phases
942 (add-before 'build 'copy-resources
943 (lambda _
944 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
945 "build/classes/META-INF/plexus")
946 #t))
947 (add-before 'check 'fix-resource-path
948 (lambda _
949 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
950 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
951 (("src/test") "wagon-providers/wagon-http/src/test"))
952 #t)))))
953 (inputs
954 `(("java-plexus-utils" ,java-plexus-utils)
955 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
956 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
957 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
958 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
959 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
960 (native-inputs
961 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
962 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
963 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
964 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
965 ("java-plexus-container-default" ,java-plexus-container-default)
966 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
967 ("java-plexus-classworlds" ,java-plexus-classworlds)
968 ("java-guava" ,java-guava)
969 ("java-guice" ,java-guice)
970 ("java-inject" ,java-javax-inject)
971 ("java-cglib" ,java-cglib)
972 ("java-slf4j-api" ,java-slf4j-api)
973 ("java-plexus-utils" ,java-plexus-utils)
974 ("java-plexus-cli" ,java-plexus-cli)
975 ("maven-plugin-api" ,maven-plugin-api)
976 ("maven-plugin-annotations" ,maven-plugin-annotations)
977 ("maven-core" ,maven-core)
978 ("maven-model" ,maven-model)
979 ("java-commons-cli" ,java-commons-cli)
980 ("java-qdox" ,java-qdox)
981 ("java-jdom2" ,java-jdom2)
982 ("java-asm" ,java-asm)
983 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
53ba191b 984 ("java-javaee-servletapi" ,java-javaee-servletapi)
aa06dd0f
JL
985 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
986 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
987 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
988 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
989 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
990 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
991 ("java-hamcrest-core" ,java-hamcrest-core)
992 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
993 ("java-commons-codec" ,java-commons-codec)
994 ("java-commons-io" ,java-commons-io)
995 ("java-jsoup" ,java-jsoup)
996 ("java-slf4j-simple" ,java-slf4j-simple)
997 ,@(package-native-inputs maven-wagon-provider-api)))
998 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
999 (description "Maven Wagon is a transport abstraction that is used in Maven's
1000artifact and repository handling code. It uses providers, that are tools to
1001manage artifacts and deployment. This package contains a Wagon provider that
1002gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
1003
51087d51 1004(define maven-pom
458687d5 1005 (package
51087d51 1006 (name "maven-pom")
b77c8ddb 1007 (version "3.6.1")
458687d5
JL
1008 (source (origin
1009 (method url-fetch)
9a01efa2 1010 (uri (string-append "mirror://apache/maven/"
458687d5
JL
1011 "maven-3/" version "/source/"
1012 "apache-maven-" version "-src.tar.gz"))
b77c8ddb 1013 (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
458687d5
JL
1014 (modules '((guix build utils)))
1015 (snippet
1016 '(begin
1017 (for-each delete-file (find-files "." "\\.jar$"))
1018 #t))
1019 (patches
1020 (search-patches "maven-generate-component-xml.patch"
1021 "maven-generate-javax-inject-named.patch"))))
1022 (build-system ant-build-system)
51087d51
JL
1023 (arguments
1024 `(#:tests? #f
1025 #:phases
1026 (modify-phases %standard-phases
1027 (delete 'configure)
1028 (delete 'build)
1029 (add-before 'install 'fix-dependencies
1030 (lambda _
1031 (substitute* "pom.xml"
1032 (("classWorldsVersion>.*")
1033 (string-append
1034 "classWorldsVersion>"
1035 ,(package-version java-plexus-classworlds)
1036 "</classWorldsVersion>\n"))
1037 (("commonsCliVersion>.*")
1038 (string-append
1039 "commonsCliVersion>"
1040 ,(package-version java-commons-cli)
1041 "</commonsCliVersion>\n"))
1042 (("commonsLangVersion>.*")
1043 (string-append
1044 "commonsLangVersion>"
1045 ,(package-version java-commons-lang3)
1046 "</commonsLangVersion>\n"))
1047 (("plexusUtilsVersion>.*")
1048 (string-append
1049 "plexusUtilsVersion>"
1050 ,(package-version java-plexus-utils)
1051 "</plexusUtilsVersion>\n"))
1052 (("plexusInterpolationVersion>.*")
1053 (string-append
1054 "plexusInterpolationVersion>"
1055 ,(package-version java-plexus-interpolation)
1056 "</plexusInterpolationVersion>\n"))
1057 (("guiceVersion>.*")
1058 (string-append
1059 "guiceVersion>"
1060 ,(package-version java-guice)
1061 "</guiceVersion>\n"))
1062 (("sisuInjectVersion>.*")
1063 (string-append
1064 "sisuInjectVersion>"
1065 ,(package-version java-eclipse-sisu-inject)
1066 "</sisuInjectVersion>\n"))
1067 (("securityDispatcherVersion>.*")
1068 (string-append
1069 "securityDispatcherVersion>"
1070 ,(package-version java-plexus-sec-dispatcher)
1071 "</securityDispatcherVersion>\n"))
1072 (("cipherVersion>.*")
1073 (string-append
1074 "cipherVersion>"
1075 ,(package-version java-plexus-cipher)
1076 "</cipherVersion>\n"))
1077 (("slf4jVersion>.*")
1078 (string-append
1079 "slf4jVersion>"
1080 ,(package-version java-slf4j-api)
1081 "</slf4jVersion>\n"))
1082 (("<classifier>no_aop</classifier>") ""))
1083 #t))
1084 (replace 'install
1085 (install-pom-file "pom.xml")))))
1086 (propagated-inputs
1087 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
1088 (home-page "https://maven.apache.org/")
1089 (synopsis "Build system")
1090 (description "Apache Maven is a software project management and comprehension
1091tool. This package contains the Maven pom file, used by all maven components.")
1092 (license license:asl2.0)))
1093
1094(define-public maven-artifact
1095 (package
1096 (inherit maven-pom)
1097 (name "maven-artifact")
458687d5
JL
1098 (arguments
1099 `(#:jar-name "maven-artifact.jar"
1100 #:source-dir "maven-artifact/src/main/java"
1101 #:test-dir "maven-artifact/src/test"
51087d51
JL
1102 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
1103 #:phases
1104 (modify-phases %standard-phases
1105 (replace 'install
1106 (install-from-pom "maven-artifact/pom.xml")))))
1107 (propagated-inputs
458687d5 1108 `(("java-plexus-utils" ,java-plexus-utils)
51087d51
JL
1109 ("java-commons-lang3" ,java-commons-lang3)
1110 ("maven-pom" ,maven-pom)))
458687d5
JL
1111 (native-inputs
1112 `(("java-junit" ,java-junit)))
458687d5
JL
1113 (description "Apache Maven is a software project management and comprehension
1114tool. This package contains the Maven Artifact classes, providing the
1115@code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
1116jar file is executable and provides a little tool to display how Maven parses
51087d51 1117and compares versions:")))
d55503a6
JL
1118
1119(define-public maven-model
1120 (package
1121 (inherit maven-artifact)
1122 (name "maven-model")
1123 (arguments
1124 `(#:jar-name "maven-model.jar"
1125 #:source-dir "maven-model/src/main/java"
1126 #:test-dir "maven-model/src/test"
d55503a6
JL
1127 #:phases
1128 (modify-phases %standard-phases
1129 (add-before 'build 'generate-models
1130 (lambda* (#:key inputs #:allow-other-keys)
1131 (define (modello-single-mode file version mode)
1132 (invoke "java" "org.codehaus.modello.ModelloCli"
1133 file mode "maven-model/src/main/java" version
1134 "false" "true"))
1135 (let ((file "maven-model/src/main/mdo/maven.mdo"))
1136 (modello-single-mode file "4.0.0" "java")
1137 (modello-single-mode file "4.0.0" "xpp3-reader")
1138 (modello-single-mode file "4.0.0" "xpp3-writer")
1139 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
51087d51
JL
1140 #t))
1141 (replace 'install (install-from-pom "maven-model/pom.xml")))))
1142 (propagated-inputs
d55503a6 1143 `(("java-commons-lang3" ,java-commons-lang3)
51087d51
JL
1144 ("java-plexus-utils" ,java-plexus-utils)
1145 ("maven-pom" ,maven-pom)))
d55503a6
JL
1146 (native-inputs
1147 `(("java-modello-core" ,java-modello-core)
1148 ;; for modello:
1149 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1150 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1151 ("java-guice" ,java-guice)
1152 ("java-cglib" ,java-cglib)
1153 ("java-asm" ,java-asm)
1154 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1155 ("java-javax-inject" ,java-javax-inject)
1156 ("java-plexus-classworlds" ,java-plexus-classworlds)
1157 ("java-guava" ,java-guava)
1158 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1159 ("java-sisu-build-api" ,java-sisu-build-api)
1160 ;; modello plugins:
1161 ("java-modello-plugins-java" ,java-modello-plugins-java)
1162 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1163 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1164 ;; for tests
1165 ("java-junit" ,java-junit)))
1166 (description "Apache Maven is a software project management and comprehension
1167tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
1168so really just plain Java objects.")))
f084641a
JL
1169
1170(define-public maven-builder-support
1171 (package
1172 (inherit maven-artifact)
1173 (name "maven-builder-support")
1174 (arguments
1175 `(#:jar-name "maven-builder-support.jar"
1176 #:source-dir "maven-builder-support/src/main/java"
1177 #:jdk ,icedtea-8
1178 #:test-dir "maven-builder-support/src/test"
1179 #:phases
1180 (modify-phases %standard-phases
1181 (add-before 'check 'fix-paths
1182 (lambda _
1183 (with-directory-excursion "maven-builder-support/src/test/java"
1184 (substitute*
1185 '("org/apache/maven/building/FileSourceTest.java"
1186 "org/apache/maven/building/UrlSourceTest.java")
1187 (("target/test-classes") "maven-builder-support/src/test/resources")))
51087d51
JL
1188 #t))
1189 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
1190 (propagated-inputs
1191 `(("maven-pom" ,maven-pom)))
f084641a 1192 (native-inputs
51087d51 1193 `(("java-junit" ,java-junit)))
f084641a
JL
1194 (description "Apache Maven is a software project management and comprehension
1195tool. This package contains a support library for descriptor builders (model,
1196setting, toolchains)")))
18110e45
JL
1197
1198(define-public maven-settings
1199 (package
1200 (inherit maven-artifact)
1201 (name "maven-settings")
1202 (arguments
1203 `(#:jar-name "maven-settings.jar"
1204 #:source-dir "maven-settings/src/main/java"
18110e45
JL
1205 #:tests? #f; no tests
1206 #:phases
1207 (modify-phases %standard-phases
1208 (add-before 'build 'generate-models
1209 (lambda* (#:key inputs #:allow-other-keys)
1210 (define (modello-single-mode file version mode)
1211 (invoke "java" "org.codehaus.modello.ModelloCli"
1212 file mode "maven-settings/src/main/java" version
1213 "false" "true"))
1214 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
1215 (modello-single-mode file "1.1.0" "java")
1216 (modello-single-mode file "1.1.0" "xpp3-reader")
1217 (modello-single-mode file "1.1.0" "xpp3-writer"))
51087d51
JL
1218 #t))
1219 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
1220 (propagated-inputs
1221 `(("java-plexus-utils" ,java-plexus-utils)
1222 ("maven-pom" ,maven-pom)))
18110e45
JL
1223 (native-inputs
1224 `(("java-modello-core" ,java-modello-core)
1225 ;; for modello:
1226 ;("container" ,java-plexus-container-default)
1227 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1228 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1229 ("java-guice" ,java-guice)
1230 ("java-cglib" ,java-cglib)
1231 ("java-asm" ,java-asm)
1232 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1233 ("java-javax-inject" ,java-javax-inject)
1234 ("java-plexus-classworlds" ,java-plexus-classworlds)
1235 ("java-plexus-utils" ,java-plexus-utils)
1236 ("java-guava" ,java-guava)
1237 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1238 ("java-sisu-build-api" ,java-sisu-build-api)
1239 ;; modello plugins:
1240 ("java-modello-plugins-java" ,java-modello-plugins-java)
1241 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1242 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1243 (description "Apache Maven is a software project management and comprehension
1244tool. This package contains strictly the model for Maven settings, that is
1245simply plain java objects.")))
3a5572ae
JL
1246
1247(define-public maven-settings-builder
1248 (package
1249 (inherit maven-artifact)
1250 (name "maven-settings-builder")
1251 (arguments
1252 `(#:jar-name "maven-settings-builder.jar"
1253 #:source-dir "maven-settings-builder/src/main/java"
1254 #:jdk ,icedtea-8
1255 #:test-dir "maven-settings-builder/src/test"
1256 #:phases
1257 (modify-phases %standard-phases
1258 (add-before 'build 'generate-components.xml
1259 (lambda _
1260 (mkdir-p "build/classes/META-INF/plexus")
1261 (chmod "components.sh" #o755)
1262 (invoke "./components.sh" "maven-settings-builder/src/main/java"
1263 "build/classes/META-INF/plexus/components.xml")
51087d51
JL
1264 #t))
1265 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1266 (propagated-inputs
3a5572ae 1267 `(("java-plexus-utils" ,java-plexus-utils)
3a5572ae
JL
1268 ("java-plexus-interpolation" ,java-plexus-interpolation)
1269 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1270 ("maven-builder-support" ,maven-builder-support)
1271 ("maven-settings" ,maven-settings)
51087d51 1272 ("maven-pom" ,maven-pom)))
3a5572ae 1273 (native-inputs
51087d51
JL
1274 `(("java-junit" ,java-junit)
1275 ("java-plexus-component-annotations" ,java-plexus-component-annotations)))
3a5572ae
JL
1276 (description "Apache Maven is a software project management and comprehension
1277tool. This package contains the effective model builder, with profile activation,
1278inheritance, interpolation, @dots{}")))
516db3b9
JL
1279
1280(define-public maven-model-builder
1281 (package
1282 (inherit maven-artifact)
1283 (name "maven-model-builder")
1284 (arguments
1285 `(#:jar-name "maven-model-builder.jar"
1286 #:source-dir "maven-model-builder/src/main/java"
1287 #:jdk ,icedtea-8
1288 #:test-dir "maven-model-builder/src/test"
1289 #:phases
1290 (modify-phases %standard-phases
1291 (add-before 'build 'copy-resources
1292 (lambda _
1293 (copy-recursively "maven-model-builder/src/main/resources"
1294 "build/classes")
1295 #t))
1296 (add-before 'build 'generate-components.xml
1297 (lambda _
1298 (mkdir-p "build/classes/META-INF/plexus")
1299 (chmod "components.sh" #o755)
1300 (invoke "./components.sh" "maven-model-builder/src/main/java"
1301 "build/classes/META-INF/plexus/components.xml")
1302 #t))
1303 (add-before 'check 'fix-paths
1304 (lambda _
1305 (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
1306 (("src/test") "maven-model-builder/src/test"))
51087d51
JL
1307 #t))
1308 (replace 'install
1309 (install-from-pom "maven-model-builder/pom.xml")))))
1310 (propagated-inputs
1311 `(("java-plexus-interpolation" ,java-plexus-interpolation)
1312 ("java-plexus-utils" ,java-plexus-utils)
1313 ("maven-artifact" ,maven-artifact)
1314 ("maven-builder-support" ,maven-builder-support)
1315 ("maven-model" ,maven-model)
1316 ("maven-pom" ,maven-pom)))
516db3b9
JL
1317 (native-inputs
1318 `(("java-junit" ,java-junit)
51087d51 1319 ("java-guava" ,java-guava)
516db3b9
JL
1320 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1321 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1322 ("guice" ,java-guice)
1323 ("java-cglib" ,java-cglib)
1324 ("java-asm" ,java-asm)
1325 ("sisu-inject" ,java-eclipse-sisu-inject)
1326 ("javax-inject" ,java-javax-inject)
c5928211
JL
1327 ("java-xmlunit" ,java-xmlunit)
1328 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
516db3b9
JL
1329 ("xbean" ,java-geronimo-xbean-reflect)
1330 ("classworlds" ,java-plexus-classworlds)))
1331 (description "Apache Maven is a software project management and comprehension
1332tool. This package contains the effective model builder, with profile activation,
1333inheritance, interpolation, @dots{}")))
18736663
JL
1334
1335(define-public maven-repository-metadata
1336 (package
1337 (inherit maven-artifact)
1338 (name "maven-repository-metadata")
1339 (arguments
1340 `(#:jar-name "maven-repository-metadata.jar"
1341 #:source-dir "maven-repository-metadata/src/main/java"
1342 #:jdk ,icedtea-8
1343 #:tests? #f; no tests
1344 #:phases
1345 (modify-phases %standard-phases
1346 (add-before 'build 'generate-models
1347 (lambda* (#:key inputs #:allow-other-keys)
1348 (define (modello-single-mode file version mode)
1349 (invoke "java" "org.codehaus.modello.ModelloCli"
1350 file mode "maven-repository-metadata/src/main/java" version
1351 "false" "true"))
1352 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1353 (modello-single-mode file "1.1.0" "java")
1354 (modello-single-mode file "1.1.0" "xpp3-reader")
1355 (modello-single-mode file "1.1.0" "xpp3-writer"))
51087d51
JL
1356 #t))
1357 (replace 'install
1358 (install-from-pom "maven-repository-metadata/pom.xml")))))
1359 (propagated-inputs
1360 `(("java-plexus-utils" ,java-plexus-utils)
1361 ("maven-pom" ,maven-pom)))
18736663
JL
1362 (native-inputs
1363 `(("modello" ,java-modello-core)
1364 ;; for modello:
1365 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1366 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1367 ("java-guice" ,java-guice)
1368 ("java-cglib" ,java-cglib)
1369 ("java-asm" ,java-asm)
1370 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1371 ("java-javax-inject" ,java-javax-inject)
1372 ("java-plexus-utils" ,java-plexus-utils)
1373 ("java-plexus-classworlds" ,java-plexus-classworlds)
1374 ("java-guava" ,java-guava)
1375 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1376 ("java-sisu-build-api" ,java-sisu-build-api)
1377 ;; modello plugins:
1378 ("java-modello-plugins-java" ,java-modello-plugins-java)
1379 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1380 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1381 (description "Apache Maven is a software project management and comprehension
1382tool. This package contains strictly the model for Maven Repository Metadata,
1383so really just plain objects.")))
5aa4ea6a
JL
1384
1385(define-public maven-resolver-provider
1386 (package
1387 (inherit maven-artifact)
1388 (name "maven-resolver-provider")
1389 (arguments
1390 `(#:jar-name "maven-resolver-provider.jar"
1391 #:source-dir "maven-resolver-provider/src/main/java"
1392 #:test-dir "maven-resolver-provider/src/test"
1393 #:jdk ,icedtea-8
1394 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1395 #:phases
1396 (modify-phases %standard-phases
1397 (add-before 'build 'generate-sisu-named
1398 (lambda _
1399 (mkdir-p "build/classes/META-INF/sisu")
1400 (chmod "./sisu.sh" #o755)
1401 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1402 "build/classes/META-INF/sisu/javax.inject.Named")
51087d51
JL
1403 #t))
1404 (replace 'install
1405 (install-from-pom "maven-resolver-provider/pom.xml")))))
1406 (propagated-inputs
1407 `(("maven-model" ,maven-model)
1408 ("maven-model-builder" ,maven-model-builder)
1409 ("maven-resolver-spi" ,maven-resolver-spi)
5aa4ea6a
JL
1410 ("maven-resolver-api" ,maven-resolver-api)
1411 ("maven-resolver-impl" ,maven-resolver-impl)
1412 ("maven-resolver-util" ,maven-resolver-util)
5aa4ea6a
JL
1413 ("maven-builder-support" ,maven-builder-support)
1414 ("maven-repository-metadata" ,maven-repository-metadata)
1415 ("java-plexus-utils" ,java-plexus-utils)
1416 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
5aa4ea6a 1417 ("java-guice" ,java-guice)
5aa4ea6a 1418 ("java-javax-inject" ,java-javax-inject)))))
8f5caf93
JL
1419
1420(define-public maven-plugin-api
1421 (package
1422 (inherit maven-artifact)
1423 (name "maven-plugin-api")
1424 (arguments
1425 `(#:jar-name "maven-plugin-api.jar"
1426 #:source-dir "maven-plugin-api/src/main/java"
1427 #:jdk ,icedtea-8
1428 #:test-dir "maven-plugin-api/src/test"
1429 #:phases
1430 (modify-phases %standard-phases
1431 (add-before 'build 'generate-models
1432 (lambda* (#:key inputs #:allow-other-keys)
1433 (define (modello-single-mode file version mode)
1434 (invoke "java" "org.codehaus.modello.ModelloCli"
1435 file mode "maven-plugin-api/src/main/java" version
1436 "false" "true"))
1437 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1438 (modello-single-mode file "1.0.0" "java")
1439 (modello-single-mode file "1.0.0" "xpp3-reader")
1440 (modello-single-mode file "1.0.0" "xpp3-writer"))
51087d51
JL
1441 #t))
1442 (replace 'install
1443 (install-from-pom "maven-plugin-api/pom.xml")))))
1444 (propagated-inputs
8f5caf93
JL
1445 `(("maven-artifact" ,maven-artifact)
1446 ("maven-model" ,maven-model)
1447 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1448 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1449 ("guice" ,java-guice)
1450 ("java-cglib" ,java-cglib)
1451 ("java-asm" ,java-asm)
1452 ("sisu-inject" ,java-eclipse-sisu-inject)
1453 ("javax-inject" ,java-javax-inject)
1454 ("utils" ,java-plexus-utils)))
1455 (native-inputs
1456 `(("modello" ,java-modello-core)
1457 ;; for modello:
1458 ("classworlds" ,java-plexus-classworlds)
1459 ("guava" ,java-guava)
1460 ("xbean" ,java-geronimo-xbean-reflect)
1461 ("build-api" ,java-sisu-build-api)
1462 ;; modello plugins:
1463 ("java" ,java-modello-plugins-java)
1464 ("xml" ,java-modello-plugins-xml)
1465 ("xpp3" ,java-modello-plugins-xpp3)
1466 ;; for tests
1467 ("java-junit" ,java-junit)))
1468 (description "Apache Maven is a software project management and comprehension
1469tool. This package contains strictly the API for plugins -- composed of goals
1470implemented by Mojos -- development.
1471
1472A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1473generally generated from plugin sources using maven-plugin-plugin.")))
7a42f058
JL
1474
1475(define maven-core-bootstrap
1476 (package
1477 (inherit maven-artifact)
1478 (name "maven-core")
1479 (arguments
1480 `(#:jar-name "maven-core.jar"
1481 #:source-dir "src/main/java"
1482 #:jdk ,icedtea-8
1483 ;; Tests need maven-compat, which requires maven-core
1484 #:tests? #f
1485 #:phases
1486 (modify-phases %standard-phases
1487 (add-before 'configure 'chdir
1488 (lambda _
1489 ;; Required for generating components.xml in maven-core
1490 (chdir "maven-core")
1491 #t))
1492 (add-before 'build 'copy-resources
1493 (lambda _
1494 (mkdir-p "build/classes/")
1495 (copy-recursively "src/main/resources" "build/classes")
1496 #t))
e27c43d9
JL
1497 (add-after 'copy-resources 'fill-properties
1498 (lambda _
1499 ;; This file controls the output of some mvn subcommands, such as
1500 ;; mvn -version.
1501 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1502 (("\\$\\{buildNumber\\}") "guix_build")
1503 (("\\$\\{timestamp\\}") "0")
1504 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1505 (("\\$\\{distributionId\\}") "apache-maven")
1506 (("\\$\\{distributionShortName\\}") "Maven")
1507 (("\\$\\{distributionName\\}") "Apache Maven"))
1508 #t))
7a42f058
JL
1509 (add-before 'build 'generate-sisu-named
1510 (lambda _
1511 (mkdir-p "build/classes/META-INF/sisu")
1512 (chmod "../sisu.sh" #o755)
1513 (invoke "../sisu.sh" "src/main/java"
1514 "build/classes/META-INF/sisu/javax.inject.Named")
1515 #t))
1516 (add-before 'build 'generate-models
1517 (lambda* (#:key inputs #:allow-other-keys)
1518 (define (modello-single-mode file version mode)
1519 (invoke "java" "org.codehaus.modello.ModelloCli"
1520 file mode "src/main/java" version
1521 "false" "true"))
1522 (let ((file "src/main/mdo/toolchains.mdo"))
1523 (modello-single-mode file "1.1.0" "java")
1524 (modello-single-mode file "1.1.0" "xpp3-reader")
1525 (modello-single-mode file "1.1.0" "xpp3-writer"))
51087d51
JL
1526 #t))
1527 (add-before 'install 'fix-pom
1528 (lambda _
1529 (substitute* "pom.xml"
1530 (("<classifier>no_aop</classifier>") ""))
1531 #t))
1532 (replace 'install
1533 (install-from-pom "pom.xml")))))
1534 (propagated-inputs
7a42f058
JL
1535 `(("maven-artifact" ,maven-artifact)
1536 ("maven-resolver-provider" ,maven-resolver-provider)
1537 ("maven-builder-support" ,maven-builder-support)
1538 ("maven-model" ,maven-model)
1539 ("maven-model-builder" ,maven-model-builder)
1540 ("maven-settings" ,maven-settings)
1541 ("maven-settings-builder" ,maven-settings-builder)
1542 ("maven-plugin-api" ,maven-plugin-api)
1543 ("maven-repository-metadata" ,maven-repository-metadata)
1544 ("maven-shared-utils" ,maven-shared-utils)
1545 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1546 ("java-plexus-utils" ,java-plexus-utils)
1547 ("java-commons-lang3" ,java-commons-lang3)
1548 ("java-guava" ,java-guava)
1549 ("java-guice" ,java-guice)
1550 ("maven-resolver-api" ,maven-resolver-api)
1551 ("maven-resolver-spi" ,maven-resolver-spi)
1552 ("maven-resolver-util" ,maven-resolver-util)
1553 ("maven-resolver-impl" ,maven-resolver-impl)
1554 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1555 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1556 ("java-javax-inject" ,java-javax-inject)
1557 ("java-plexus-classworld" ,java-plexus-classworlds)))
1558 (native-inputs
1559 `(("java-modello-core" ,java-modello-core)
1560 ("java-cglib" ,java-cglib)
1561 ("java-asm" ,java-asm)
1562 ("java-plexus-classworlds" ,java-plexus-classworlds)
1563 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1564 ("java-sisu-build-api" ,java-sisu-build-api)
1565 ("java-modello-plugins-java" ,java-modello-plugins-java)
1566 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1567 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1568 ;; tests
1569 ("java-junit" ,java-junit)
1570 ("java-mockito-1" ,java-mockito-1)
1571 ("java-commons-jxpath" ,java-commons-jxpath)))
1572 (description "Apache Maven is a software project management and comprehension
1573tool. This package contains the maven core classes managing the whole build
1574process.")))
b822544c
JL
1575
1576(define-public maven-core
1577 (package
1578 (inherit maven-core-bootstrap)
1579 (arguments
1580 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1581 ((#:phases phases)
1582 `(modify-phases ,phases
1583 (add-before 'build 'modify-metainf
1584 (lambda _
1585 (substitute* "build.xml"
d440df61 1586 (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\""))
b822544c
JL
1587 #t))
1588 (add-before 'build 'add-maven-files
1589 (lambda _
1590 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1591 (copy-file "pom.xml"
1592 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1593 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1594 (lambda _
1595 (format #t "version=~a~%
1596groupId=org.apache.maven~%
1597artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1598 #t))
1599 (add-after 'build 'generate-metadata
1600 (lambda _
1601 (define (components file)
1602 (let ((sxml (with-input-from-file file
1603 (lambda _ (xml->sxml (current-input-port)
1604 #:trim-whitespace? #t)))))
1605 ;; Select the list of <component>s inside the <component-set>
1606 ;; and <components>.
1607 ((@ (ice-9 match) match) sxml
1608 (('*TOP*
1609 ('*PI* foo ...)
1610 ('component-set
1611 ('components x ...))) x))))
1612 (use-modules (sxml simple))
1613 (delete-file "build/classes/META-INF/plexus/components.xml")
1614 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1615 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1616 "--source" "build/classes/META-INF/plexus"
1617 "--output" "build/classes/META-INF/plexus/components.t.xml"
1618 "--classes" "build/classes"
1619 "--descriptors" "build/classes")
1620 ;; Now we merge all other components from hand-written xml
1621 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1622 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1623 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1624 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1625 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1626 (lambda _
1627 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1628 (sxml->xml
1629 `(component-set
1630 (components
1631 ,@(append generated-xml components-xml
1632 default-bindings-xml
1633 artifact-handlers-xml)))))))
1634 #t))
1635 (add-after 'generate-metadata 'rebuild
1636 (lambda _
1637 (invoke "ant" "jar")
1638 #t))))))
1639 (native-inputs
1640 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
1641 ("java-commons-cli" ,java-commons-cli)
1642 ("java-plexus-cli" ,java-plexus-cli)
1643 ("java-jdom2" ,java-jdom2)
1644 ("java-qdox" ,java-qdox)
1645 ("maven-core-boot" ,maven-core-bootstrap)
1646 ,@(package-native-inputs maven-core-bootstrap)))))
e2c7d329
JL
1647
1648(define-public maven-embedder
1649 (package
1650 (inherit maven-artifact)
1651 (name "maven-embedder")
1652 (arguments
1653 `(#:jar-name "maven-embedder.jar"
1654 #:source-dir "maven-embedder/src/main/java"
1655 #:test-dir "maven-embedder/src/test"
1656 #:test-exclude (list "**/MavenCliTest.java")
1657 #:jdk ,icedtea-8
1658 #:phases
1659 (modify-phases %standard-phases
1660 (add-before 'build 'generate-sisu-named
1661 (lambda _
1662 (mkdir-p "build/classes/META-INF/sisu")
1663 (chmod "sisu.sh" #o755)
1664 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1665 "build/classes/META-INF/sisu/javax.inject.Named")
1666 #t))
1667 (add-before 'build 'generate-models
1668 (lambda* (#:key inputs #:allow-other-keys)
1669 (define (modello-single-mode file version mode)
1670 (invoke "java" "org.codehaus.modello.ModelloCli"
1671 file mode "maven-embedder/src/main/java" version
1672 "false" "true"))
1673 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1674 (modello-single-mode file "1.0.0" "java")
1675 (modello-single-mode file "1.0.0" "xpp3-reader")
1676 (modello-single-mode file "1.0.0" "xpp3-writer"))
1677 #t))
1678 (add-before 'check 'fix-test-paths
1679 (lambda _
1680 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1681 (("target/test-classes") "build/test-classes"))
1682 #t))
1683 (add-before 'check 'fix-test-compilation
1684 (lambda _
1685 ;; Tests are in the java/ subdir. Other subdirectories contain
1686 ;; additional test plugins, with duplicate classes, so we can't
1687 ;; compile them. Also, they are meant to be built with maven, to
1688 ;; test its build process.
1689 (substitute* "build.xml"
1690 (("srcdir=\"maven-embedder/src/test\"")
1691 "srcdir=\"maven-embedder/src/test/java\""))
51087d51
JL
1692 #t))
1693 (replace 'install
1694 (install-from-pom "maven-embedder/pom.xml")))))
1695 (propagated-inputs
e2c7d329
JL
1696 `(("maven-core" ,maven-core)
1697 ("maven-artifact" ,maven-artifact)
1698 ("maven-plugin-api" ,maven-plugin-api)
1699 ("maven-builder-support" ,maven-builder-support)
1700 ("maven-model" ,maven-model)
1701 ("maven-model-builder" ,maven-model-builder)
1702 ("maven-settings" ,maven-settings)
1703 ("maven-settings-builder" ,maven-settings-builder)
1704 ("maven-shared-utils" ,maven-shared-utils)
1705 ("java-plexus-classworlds" ,java-plexus-classworlds)
1706 ("java-plexus-util" ,java-plexus-utils)
1707 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1708 ("java-plexus-cipher" ,java-plexus-cipher)
1709 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1710 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1711 ("maven-resolevr-util" ,maven-resolver-util)
1712 ("maven-resolevr-api" ,maven-resolver-api)
1713 ("java-logback-core" ,java-logback-core)
1714 ("java-logback-classic" ,java-logback-classic)
1715 ("java-commons-cli" ,java-commons-cli)
1716 ("java-commons-io" ,java-commons-io)
1717 ("java-commons-lang3" ,java-commons-lang3)
1718 ("java-guava" ,java-guava)
1719 ("java-guice" ,java-guice)
1720 ("java-javax-inject" ,java-javax-inject)
1721 ("java-slf4j-api" ,java-slf4j-api)
51087d51
JL
1722 ("java-slf4j-simple" ,java-slf4j-simple)
1723 ("java-jsr250" ,java-jsr250)))
e2c7d329
JL
1724 (native-inputs
1725 `(("java-modello-core" ,java-modello-core)
1726 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1727 ("java-sisu-build-api" ,java-sisu-build-api)
1728 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1729 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1730 ("java-cglib" ,java-cglib)
1731 ("java-asm" ,java-asm)
1732 ("java-modello-plugins-java" ,java-modello-plugins-java)
1733 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1734 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1735 ;; tests
1736 ("java-junit" ,java-junit)
1737 ("java-objenesis" ,java-objenesis)
1738 ("java-mockito-1" ,java-mockito-1)
1739 ("java-hamcrest-core" ,java-hamcrest-core)))
1740 (description "Apache Maven is a software project management and comprehension
1741tool. This package contains a Maven embeddable component, with CLI and
1742logging support.")))
0c1e98eb
JL
1743
1744(define-public maven-compat
1745 (package
1746 (inherit maven-artifact)
1747 (name "maven-compat")
1748 (arguments
1749 `(#:jar-name "maven-compat.jar"
1750 #:source-dir "src/main/java"
1751 #:jdk ,icedtea-8
1752 #:test-dir "src/test"
1753 #:phases
1754 (modify-phases %standard-phases
1755 ;; Tests assume we're in this directory
1756 (add-before 'configure 'chdir
1757 (lambda _
1758 (chdir "maven-compat")
1759 #t))
892a5647
JL
1760 (add-before 'build 'recreate-removed-jar
1761 (lambda _
1762 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1763 (const #t))
1764 (with-directory-excursion "src/test/resources"
1765 (with-output-to-file "artifact-install/artifact-1.0.jar"
1766 (lambda _
1767 (format #t "dummy~%")))
1768 (for-each
1769 (lambda (file)
1770 (with-output-to-file file
1771 (lambda _
1772 (format #t "foo~%"))))
1773 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1774 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1775 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1776 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1777 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1778 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1779 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1780 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1781 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1782 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1783 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1784 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1785 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1786 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1787 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1788 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1789 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1790 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1791 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1792 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1793 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1794 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1795 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1796 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1797 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1798 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1799 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1800 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1801 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1802 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1803 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1804 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1805 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1806 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1807 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1808 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1809 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1810 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1811 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1812 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1813 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1814 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1815 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1816 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1817 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1818 (with-directory-excursion "local-repo/snapshot-test/jars"
1819 (for-each
1820 (lambda (file)
1821 (with-output-to-file file
1822 (lambda _
1823 ;; No end-of-line
1824 (format #t "local"))))
1825 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1826 "maven-snapshot-b-1.0-SNAPSHOT.jar"
1827 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
1828 (for-each
1829 (lambda (letter)
1830 (with-directory-excursion
1831 (string-append "src/test/remote-repo/org/apache/maven/its/"
1832 letter "/0.1")
1833 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
1834 letter)))
1835 (mkdir-p dir)
1836 (copy-file (string-append letter "-0.1.pom")
1837 (string-append dir "/pom.xml"))
1838 (with-output-to-file (string-append dir "/pom.properties")
1839 (lambda _
1840 (format #t "version=0.1~%")
1841 (format #t "groupId=org.apache.maven.its")
1842 (format #t (string-append "artifactId=" letter))))
1843 (with-output-to-file "META-INF/MANIFEST.MF"
1844 (lambda _
1845 (format #t "Manifest-Version: 1.0~%"))))
1846 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
1847 (string-append letter "-0.1.jar") "META-INF")))
1848 '("a" "b"))
1849 #t))
0c1e98eb
JL
1850 (add-before 'build 'generate-models
1851 (lambda* (#:key inputs #:allow-other-keys)
1852 (define (modello-single-mode file version mode)
1853 (invoke "java" "org.codehaus.modello.ModelloCli"
1854 file mode "src/main/java" version
1855 "false" "true"))
1856 (let ((file "src/main/mdo/profiles.mdo"))
1857 (modello-single-mode file "1.0.0" "java")
1858 (modello-single-mode file "1.0.0" "xpp3-reader")
1859 (modello-single-mode file "1.0.0" "xpp3-writer"))
1860 (let ((file "src/main/mdo/paramdoc.mdo"))
1861 (modello-single-mode file "1.0.0" "java")
1862 (modello-single-mode file "1.0.0" "xpp3-reader")
1863 (modello-single-mode file "1.0.0" "xpp3-writer"))
1864 #t))
1865 (add-after 'build 'generate-metadata
1866 (lambda _
1867 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1868 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1869 "--source" "src/main/java"
1870 "--output" "build/classes/META-INF/plexus/components.xml"
1871 "--classes" "build/classes"
1872 "--descriptors" "build/classes/META-INF")
1873 #t))
1874 (add-before 'check 'build-tests
1875 (lambda _
1876 (invoke "ant" "compile-tests")
1877 #t))
1878 (add-after 'build-tests 'generate-test-metadata
1879 (lambda _
1880 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
1881 ":build/classes"
1882 ":build/test-classes")
1883 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1884 "--source" "src/test/java"
1885 "--output" "build/test-classes/META-INF/plexus/components.xml"
1886 "--classes" "build/test-classes"
1887 "--descriptors" "build/test-classes/META-INF")
1888 #t))
1889 (add-after 'generate-metadata 'rebuild
1890 (lambda _
1891 (invoke "ant" "jar")
51087d51
JL
1892 #t))
1893 (replace 'install
1894 (install-from-pom "pom.xml")))))
1895 (propagated-inputs
0c1e98eb
JL
1896 `(("maven-artifact" ,maven-artifact)
1897 ("maven-repository-metadata" ,maven-repository-metadata)
1898 ("maven-builder-support" ,maven-builder-support)
1899 ("maven-model" ,maven-model)
1900 ("maven-model-builder" ,maven-model-builder)
1901 ("maven-settings" ,maven-settings)
1902 ("maven-settings-builder" ,maven-settings-builder)
1903 ("maven-core" ,maven-core)
1904 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
1905 ("maven-wagon-file" ,maven-wagon-file)
1906 ("maven-resolver-api" ,maven-resolver-api)
1907 ("maven-resolver-util" ,maven-resolver-util)
1908 ("maven-resolver-spi" ,maven-resolver-spi)
1909 ("java-plexus-interpolation" ,java-plexus-interpolation)))
1910 (native-inputs
1911 `(("java-modello-core" ,java-modello-core)
1912 ("java-plexus-utils" ,java-plexus-utils)
1913 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1914 ("java-plexus-classworlds" ,java-plexus-classworlds)
1915 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1916 ("java-sisu-build-api" ,java-sisu-build-api)
1917 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1918 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
1919 ("java-javax-inject" ,java-javax-inject)
1920 ("java-guice" ,java-guice)
1921 ("java-guava" ,java-guava)
1922 ("java-cglib" ,java-cglib)
1923 ("java-asm" ,java-asm)
1924 ("java-modello-plugins-java" ,java-modello-plugins-java)
1925 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1926 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1927 ;; metadata
1928 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
1929 ("java-commons-cli" ,java-commons-cli)
1930 ("java-plexus-cli" ,java-plexus-cli)
1931 ("java-jdom2" ,java-jdom2)
1932 ("maven-plugin-api" ,maven-plugin-api)
1933 ("java-qdox" ,java-qdox)
1934 ;; tests
1935 ("java-plexus-cipher" ,java-plexus-cipher)
1936 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
de99ba7e 1937 ("java-jsr250" ,java-jsr250)
0c1e98eb
JL
1938 ("java-cdi-api" ,java-cdi-api)
1939 ("java-junit" ,java-junit)
1940 ("maven-resolver-impl" ,maven-resolver-impl)
1941 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
1942 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
1943 ("java-commons-lang3" ,java-commons-lang3)
1944 ("java-aop" ,java-aopalliance)
1945 ("maven-resolver-provider" ,maven-resolver-provider)
1946 ("java-slf4j-api" ,java-slf4j-api)
1947 ("java-slf4j-simple" ,java-slf4j-simple)
1948 ,@(package-inputs java-slf4j-api)))
1949 (description "Apache Maven is a software project management and comprehension
1950tool. This package contains Maven2 classes maintained as compatibility
1951layer for plugins that need to keep Maven2 compatibility.")))
8c2c105c
JL
1952
1953(define-public maven
1954 (package
1955 (inherit maven-artifact)
1956 (name "maven")
1957 (arguments
1958 `(#:phases
1959 (modify-phases %standard-phases
1960 (replace 'build
137bd983
JL
1961 (lambda* (#:key inputs #:allow-other-keys)
1962 ;; Recreate the configuration for the loader
1963 (with-output-to-file "apache-maven/src/bin/m2.conf"
1964 (lambda _
1965 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
1966 (format #t "~%")
1967 (format #t "set maven.conf default ${maven.home}/conf~%")
1968 (format #t "~%")
1969 (format #t "[plexus.core]~%")
1970 (format #t "load ${maven.conf}/logging~%")
1971 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
1972 ;; Reference every jar so plexus-classworlds can find them.
1973 (for-each
1974 (lambda (dependency)
51087d51
JL
1975 (for-each
1976 (lambda (file)
1977 (format #t "load ~a~%" file))
1978 (find-files (assoc-ref inputs dependency) ".*.jar$")))
137bd983
JL
1979 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
1980 "maven-builder-support" "maven-model" "maven-model-builder"
1981 "maven-settings" "maven-settings-builder" "maven-plugin-api"
1982 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
1983 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
1984 "maven-resolver-connector-basic" "maven-resolver-provider"
1985 "maven-resolver-transport-wagon" "maven-wagon-provider-api"
1986 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
1987 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
1988 "maven-wagon-http-shared" "maven-wagon-tck-http"
1989 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
1990 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
1991 "java-javax-inject" "java-plexus-component-annotations"
1992 "java-plexus-utils" "java-plexus-interpolation"
1993 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
1994 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
1995 "java-commons-io" "java-commons-lang3" "java-slf4j-api"
1996 "java-slf4j-simple"))))
8c2c105c
JL
1997 (substitute* "apache-maven/src/bin/mvn"
1998 (("cygwin=false;")
1999 (string-append
137bd983
JL
2000 "CLASSPATH="
2001 (car (find-files
2002 (assoc-ref inputs "java-plexus-classworlds")
2003 ".*.jar"))
2004 "\ncygwin=false;"))
8c2c105c
JL
2005 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
2006 #t))
2007 (delete 'check)
2008 (replace 'install
2009 (lambda* (#:key outputs #:allow-other-keys)
2010 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
2011 (conf (string-append (assoc-ref outputs "out") "/conf/")))
2012 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
2013 (for-each (lambda (file)
2014 (install-file (string-append "apache-maven/src/bin/" file)
2015 bin)
2016 (chmod (string-append bin file) #o755))
2017 '("mvn" "mvnDebug" "mvnyjp"))
2018 (install-file "apache-maven/src/bin/m2.conf" bin)
2019 (copy-recursively "apache-maven/src/conf" conf))
2020 #t)))))
2021 (inputs
2022 `(("java-plexus-classworlds" ,java-plexus-classworlds)
2023 ("maven-artifact" ,maven-artifact)
2024 ("maven-embedder" ,maven-embedder)
2025 ("maven-core" ,maven-core)
2026 ("maven-compat" ,maven-compat)
2027 ("maven-builder-support" ,maven-builder-support)
2028 ("maven-model" ,maven-model)
2029 ("maven-model-builder" ,maven-model-builder)
2030 ("maven-settings" ,maven-settings)
2031 ("maven-settings-builder" ,maven-settings-builder)
2032 ("maven-plugin-api" ,maven-plugin-api)
de99ba7e 2033 ("maven-repository-metadata" ,maven-repository-metadata)
8c2c105c
JL
2034 ("maven-shared-utils" ,maven-shared-utils)
2035 ("maven-resolver-api" ,maven-resolver-api)
2036 ("maven-resolver-spi" ,maven-resolver-spi)
2037 ("maven-resolver-util" ,maven-resolver-util)
2038 ("maven-resolver-impl" ,maven-resolver-impl)
2039 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
2040 ("maven-resolver-provider" ,maven-resolver-provider)
2041 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
2042 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2043 ("maven-wagon-file" ,maven-wagon-file)
2044 ("maven-wagon-http" ,maven-wagon-http)
2045 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
2046 ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
2047 ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
2048 ("maven-wagon-http-shared" ,maven-wagon-http-shared)
2049 ("maven-wagon-tck-http" ,maven-wagon-tck-http)
2050 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2051 ("java-guice" ,java-guice)
2052 ("java-aopalliance" ,java-aopalliance)
2053 ("java-cglib" ,java-cglib)
2054 ("java-asm" ,java-asm)
2055 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
2056 ("java-javax-inject" ,java-javax-inject)
2057 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2058 ("java-plexus-utils" ,java-plexus-utils)
2059 ("java-plexus-interpolation" ,java-plexus-interpolation)
2060 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2061 ("java-plexus-cipher" ,java-plexus-cipher)
2062 ("java-guava" ,java-guava)
2063 ("java-jansi" ,java-jansi)
2064 ("java-jsr250" ,java-jsr250)
2065 ("java-cdi-api" ,java-cdi-api)
2066 ("java-commons-cli" ,java-commons-cli)
2067 ("java-commons-io" ,java-commons-io)
2068 ("java-commons-lang3" ,java-commons-lang3)
2069 ("java-slf4j-api" ,java-slf4j-api)
2070 ;; TODO: replace with maven-slf4j-provider
2071 ("java-slf4j-simple" ,java-slf4j-simple)))
7504f3c3
JL
2072 (propagated-inputs
2073 `(("coreutils" ,coreutils)
2074 ("which" ,which)))
8c2c105c
JL
2075 (description "Apache Maven is a software project management and comprehension
2076tool. Based on the concept of a project object model: builds, dependency
2077management, documentation creation, site publication, and distribution
2078publication are all controlled from the @file{pom.xml} declarative file. Maven
2079can be extended by plugins to utilise a number of other development tools for
2080reporting or the build process.")))
756e976e
JL
2081
2082;; Many plugins require maven 3.0 as a dependency.
2083(define maven-3.0-pom
2084 (package
2085 (inherit maven-pom)
2086 (version "3.0")
2087 (source (origin
2088 (method git-fetch)
2089 (uri (git-reference
2090 (url "https://github.com/apache/maven")
2091 (commit (string-append "maven-" version))))
2092 (file-name (git-file-name "maven" version))
2093 (sha256
2094 (base32
2095 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2096 (modules '((guix build utils)))
2097 (snippet
2098 '(begin
2099 (for-each delete-file (find-files "." "\\.jar$"))
2100 (for-each (lambda (file) (chmod file #o644))
2101 (find-files "." "."))
2102 #t))
2103 (patches
2104 (search-patches "maven-generate-component-xml.patch"
2105 "maven-generate-javax-inject-named.patch"))))
2106 (propagated-inputs
2107 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2108
2109(define-public maven-3.0-artifact
2110 (package
2111 (inherit maven-artifact)
2112 (version (package-version maven-3.0-pom))
2113 (source (package-source maven-3.0-pom))
2114 (propagated-inputs
2115 (map
2116 (lambda (input)
2117 (if (equal? (car input) "maven-pom")
2118 `("maven-pom" ,maven-3.0-pom)
2119 input))
2120 (package-propagated-inputs maven-artifact)))))
b909d584
JL
2121
2122(define-public maven-3.0-model
2123 (package
2124 (inherit maven-model)
2125 (version (package-version maven-3.0-pom))
2126 (source (package-source maven-3.0-pom))
2127 (propagated-inputs
2128 (map
2129 (lambda (input)
2130 (if (equal? (car input) "maven-pom")
2131 `("maven-pom" ,maven-3.0-pom)
2132 input))
2133 (package-propagated-inputs maven-artifact)))
2134 (arguments
2135 `(#:jar-name "maven-model.jar"
2136 #:source-dir "maven-model/src/main/java"
2137 #:test-dir "maven-model/src/test"
2138 #:modules
2139 ((guix build ant-build-system)
2140 (guix build java-utils)
2141 (guix build syscalls)
2142 (guix build utils))
2143 #:phases
2144 (modify-phases %standard-phases
2145 (add-after 'configure 'use-newer-model
2146 (lambda* (#:key inputs #:allow-other-keys)
2147 ;; The model has almost not changed, but the newer version is
2148 ;; needed to prevent an error in the newer modello we have
2149 (let ((source (assoc-ref inputs "maven-source"))
2150 (dir (mkdtemp! "maven-source-XXXXXXXX")))
2151 (with-directory-excursion dir
2152 (invoke "tar" "xf" source)
2153 (copy-file (car (find-files "." "maven.mdo"))
2154 "../maven-model/src/main/mdo/maven.mdo")))
2155 #t))
2156 (add-before 'build 'generate-models
2157 (lambda* (#:key inputs #:allow-other-keys)
2158 (define (modello-single-mode file version mode)
2159 (invoke "java" "org.codehaus.modello.ModelloCli"
2160 file mode "maven-model/src/main/java" version
2161 "false" "true" "UTF-8"))
2162 (let ((file "maven-model/src/main/mdo/maven.mdo"))
2163 (modello-single-mode file "4.0.0" "java")
2164 (modello-single-mode file "4.0.0" "xpp3-reader")
2165 (modello-single-mode file "4.0.0" "xpp3-writer")
2166 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
2167 #t))
2168 (replace 'install
2169 (install-from-pom "maven-model/pom.xml")))))
2170 (inputs
2171 `(("maven-source" ,(package-source maven-pom))
2172 ,@(package-inputs maven-model)))))
ba58d208
JL
2173
2174(define-public maven-3.0-settings
2175 (package
2176 (inherit maven-settings)
2177 (version (package-version maven-3.0-pom))
2178 (source (package-source maven-3.0-pom))
2179 (propagated-inputs
2180 (map
2181 (lambda (input)
2182 (if (equal? (car input) "maven-pom")
2183 `("maven-pom" ,maven-3.0-pom)
2184 input))
2185 (package-propagated-inputs maven-settings)))))
b1cfac7a
JL
2186
2187(define-public maven-3.0-settings-builder
2188 (package
2189 (inherit maven-settings-builder)
2190 (version (package-version maven-3.0-pom))
2191 (source (package-source maven-3.0-pom))
2192 (propagated-inputs
2193 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2194 ,@(filter
2195 (lambda (a) a)
2196 (map
2197 (lambda (input)
2198 (match (car input)
2199 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2200 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2201 ("maven-builder-support" #f)
2202 (_ input)))
2203 (package-propagated-inputs maven-settings-builder)))))))
279ec0c0
JL
2204
2205(define-public maven-3.0-model-builder
2206 (package
2207 (inherit maven-model-builder)
2208 (version (package-version maven-3.0-pom))
2209 (source (package-source maven-3.0-pom))
2210 (propagated-inputs
2211 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2212 ,@(filter
2213 (lambda (a) a)
2214 (map
2215 (lambda (input)
2216 (match (car input)
2217 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2218 ("maven-model" `("maven-model" ,maven-3.0-model))
2219 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2220 ("maven-builder-support" #f)
2221 (_ input)))
2222 (package-propagated-inputs maven-model-builder)))))))
457efe29
JL
2223
2224(define-public maven-3.0-plugin-api
2225 (package
2226 (inherit maven-plugin-api)
2227 (version (package-version maven-3.0-pom))
2228 (source (package-source maven-3.0-pom))
2229 (arguments
2230 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2231 ((#:phases phases)
2232 `(modify-phases ,phases
2233 (add-before 'install 'fix-pom
2234 (lambda _
2235 (substitute* "maven-plugin-api/pom.xml"
2236 (("org.sonatype.sisu") "org.codehaus.plexus")
2237 (("sisu-inject-plexus") "plexus-container-default"))
2238 #t))))))
2239 (propagated-inputs
2240 (map
2241 (lambda (input)
2242 (match (car input)
2243 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2244 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2245 ("maven-model" `("maven-model" ,maven-3.0-model))
2246 (_ input)))
2247 (package-propagated-inputs maven-model-builder)))
2248 (native-inputs
2249 `(("java-plexus-container-default" ,java-plexus-container-default)
2250 ,@(package-native-inputs maven-plugin-api)))))
721a00c0
JL
2251
2252(define-public maven-3.0-repository-metadata
2253 (package
2254 (inherit maven-repository-metadata)
2255 (version (package-version maven-3.0-pom))
2256 (source (package-source maven-3.0-pom))
2257 (propagated-inputs
2258 (map
2259 (lambda (input)
2260 (if (equal? (car input) "maven-pom")
2261 `("maven-pom" ,maven-3.0-pom)
2262 input))
2263 (package-propagated-inputs maven-repository-metadata)))))
65f0946a
JL
2264
2265(define-public maven-3.0-aether-provider
2266 (package
2267 (inherit maven-3.0-pom)
2268 (name "maven-aether-provider")
2269 (arguments
2270 `(#:jar-name "maven-aether-provider.jar"
2271 #:source-dir "maven-aether-provider/src/main/java"
2272 #:tests? #f; no tests in 3.0
2273 #:phases
2274 (modify-phases %standard-phases
2275 (add-after 'build 'generate-metadata
2276 (lambda _
2277 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2278 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2279 "--source" "src/main/java"
2280 "--output" "build/classes/META-INF/plexus/components.xml"
2281 "--classes" "build/classes"
2282 "--descriptors" "build/classes/META-INF")
2283 #t))
2284 (add-after 'generate-metadata 'rebuild
2285 (lambda _
2286 (invoke "ant" "jar")
2287 #t))
2288 (replace 'install
2289 (install-from-pom "maven-aether-provider/pom.xml")))))
2290 (propagated-inputs
2291 `(("maven-model" ,maven-3.0-model)
2292 ("maven-model-builder" ,maven-3.0-model-builder)
2293 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2294 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2295 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
2296 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2297 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
2298 ("java-plexus-utils" ,java-plexus-utils)
2299 ("maven-pom" ,maven-3.0-pom)))
2300 (native-inputs
2301 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))))
6f852f3b
JL
2302
2303(define-public maven-3.0-core
2304 (package
2305 (inherit maven-core)
2306 (version (package-version maven-3.0-pom))
2307 (source (package-source maven-3.0-pom))
2308 (arguments
2309 `(#:jar-name "maven-core.jar"
2310 #:source-dir "src/main/java"
2311 #:tests? #f
2312 #:phases
2313 (modify-phases %standard-phases
2314 (add-before 'configure 'chdir
2315 (lambda _
2316 ;; Required for generating components.xml in maven-core
2317 (chdir "maven-core")
2318 #t))
2319 (add-before 'build 'generate-models
2320 (lambda* (#:key inputs #:allow-other-keys)
2321 (define (modello-single-mode file version mode)
2322 (invoke "java" "org.codehaus.modello.ModelloCli"
2323 file mode "src/main/java" version
2324 "false" "true" "UTF-8"))
2325 (let ((file "src/main/mdo/toolchains.mdo"))
2326 (modello-single-mode file "1.0.0" "java")
2327 (modello-single-mode file "1.0.0" "xpp3-reader")
2328 (modello-single-mode file "1.0.0" "xpp3-writer"))
2329 #t))
2330 (add-before 'build 'copy-resources
2331 (lambda _
2332 (mkdir-p "build/classes/")
2333 (copy-recursively "src/main/resources" "build/classes")
2334 #t))
2335 (add-after 'build 'generate-metadata
2336 (lambda _
2337 (define (components file)
2338 (let ((sxml (with-input-from-file file
2339 (lambda _ (xml->sxml (current-input-port)
2340 #:trim-whitespace? #t)))))
2341 ;; Select the list of <component>s inside the <component-set>
2342 ;; and <components>.
2343 ((@ (ice-9 match) match) sxml
2344 (('*TOP*
2345 ('*PI* foo ...)
2346 ('component-set
2347 ('components x ...))) x))))
2348 (use-modules (sxml simple))
2349 (delete-file "build/classes/META-INF/plexus/components.xml")
2350 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2351 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2352 "--source" "build/classes/META-INF/plexus"
2353 "--output" "build/classes/META-INF/plexus/components.t.xml"
2354 "--classes" "build/classes"
2355 "--descriptors" "build/classes")
2356 ;; Now we merge all other components from hand-written xml
2357 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
2358 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
2359 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
2360 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
2361 (lambda _
2362 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2363 (sxml->xml
2364 `(component-set
2365 (components
2366 ,@(append generated-xml components-xml
2367 artifact-handlers-xml)))))))
2368 #t))
2369 (add-after 'generate-metadata 'rebuild
2370 (lambda _
2371 (invoke "ant" "jar")
2372 #t))
2373 (add-before 'install 'fix-pom
2374 (lambda _
2375 (substitute* "pom.xml"
2376 (("org.sonatype.sisu") "org.codehaus.plexus")
2377 (("sisu-inject-plexus") "plexus-container-default"))
2378 #t))
2379 (replace 'install
2380 (install-from-pom "pom.xml")))))
2381 (propagated-inputs
2382 `(("maven-model" ,maven-3.0-model)
2383 ("maven-settings" ,maven-3.0-settings)
2384 ("maven-settings-builder" ,maven-3.0-settings-builder)
2385 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2386 ("maven-artifact" ,maven-3.0-artifact)
2387 ("maven-model-builder" ,maven-3.0-model-builder)
2388 ("maven-aether-provider" ,maven-3.0-aether-provider)
2389 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2390 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2391 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2392 ("java-plexus-interpolation" ,java-plexus-interpolation)
2393 ("java-plexus-utils" ,java-plexus-utils)
2394 ("java-plexus-classworlds" ,java-plexus-classworlds)
2395 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2396 ("java-plexus-container-default" ,java-plexus-container-default)
2397 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2398 ("maven-pom" ,maven-3.0-pom)))))
1203b94f
JL
2399
2400(define-public maven-3.0-compat
2401 (package
2402 (inherit maven-compat)
2403 (version (package-version maven-3.0-pom))
2404 (source (package-source maven-3.0-pom))
2405 (arguments
2406 `(#:tests? #f ;require an old version of java-easymock
2407 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2408 ((#:phases phases)
2409 `(modify-phases ,phases
2410 (add-before 'install 'fix-pom
2411 (lambda _
2412 (substitute* "pom.xml"
2413 (("org.sonatype.sisu") "org.codehaus.plexus")
2414 (("sisu-inject-plexus") "plexus-container-default"))
2415 #t))
2416 (delete 'build-tests))))))
2417 (propagated-inputs
2418 `(("maven-model" ,maven-3.0-model)
2419 ("maven-model-builder" ,maven-3.0-model-builder)
2420 ("maven-settings" ,maven-3.0-settings)
2421 ("maven-settings-builder" ,maven-3.0-settings-builder)
2422 ("maven-artifact" ,maven-3.0-artifact)
2423 ("maven-core" ,maven-3.0-core)
2424 ("maven-aether-provider" ,maven-3.0-aether-provider)
2425 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2426 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2427 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2428 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2429 ("java-plexus-utils" ,java-plexus-utils)
2430 ("java-plexus-interpolation" ,java-plexus-interpolation)
2431 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2432 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2433 ("java-plexus-container-default" ,java-plexus-container-default)
2434 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2435 ("maven-pom" ,maven-3.0-pom)))))
708e0e1d
JL
2436
2437(define-public maven-shared-utils-3.0
2438 (package
2439 (inherit maven-shared-utils)
2440 (version "3.0.0")
2441 (source (origin
2442 (method url-fetch)
2443 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2444 "maven-shared-utils-" version "-source-release.zip"))
2445 (sha256
2446 (base32
2447 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2448 (propagated-inputs
2449 `(("maven-core" ,maven-3.0-core)
2450 ("maven-components-parent-pom" ,maven-components-parent-pom-21)
2451 ,@(package-propagated-inputs maven-shared-utils)))))
ebaaad1d
JL
2452
2453(define-public maven-shared-io
2454 (package
2455 (name "maven-shared-io")
2456 (version "3.0.0")
2457 (source (origin
2458 (method url-fetch)
2459 (uri (string-append "mirror://apache/maven/shared/"
2460 "maven-shared-io-" version
2461 "-source-release.zip"))
2462 (sha256
2463 (base32
2464 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2465 (build-system ant-build-system)
2466 (arguments
2467 `(#:jar-name "maven-shared-io.jar"
2468 #:source-dir "src/main/java"
2469 #:test-dir "src/test"
2470 #:phases
2471 (modify-phases %standard-phases
2472 (add-before 'build 'copy-resources
2473 (lambda _
2474 (copy-recursively "src/main/resources" "build/classes/")
2475 (copy-recursively "src/test/resources" "build/test-classes/")
2476 #t))
2477 (replace 'install
2478 (install-from-pom "pom.xml")))))
2479 (propagated-inputs
2480 `(("maven-artifact" ,maven-3.0-artifact)
2481 ("maven-compat" ,maven-3.0-compat)
2482 ("maven-plugin-api" ,maven-3.0-plugin-api)
2483 ("maven-shared-utils" ,maven-shared-utils)
2484 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
2485 ("java-plexus-utils" ,java-plexus-utils)
2486 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2487 (native-inputs
2488 `(("unzip" ,unzip)
2489 ("java-junit" ,java-junit)
2490 ("java-easymock" ,java-easymock)))
2491 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2492 (synopsis "Tree-based API for resolution of Maven project dependencies")
2493 (description "This package provides a tree-based API for resolution of
2494Maven project dependencies.")
2495 (license license:asl2.0)))
9f547318
JL
2496
2497(define-public maven-file-management
2498 (package
2499 (name "maven-file-management")
2500 (version "3.0.0")
2501 (source (origin
2502 (method url-fetch)
2503 (uri (string-append "mirror://apache/maven/shared/"
2504 "file-management-" version
2505 "-source-release.zip"))
2506 (sha256
2507 (base32
2508 "0wisz6sm67axrwvx8a75mb9s03h7kzkzfw8j3aaa4sx4k9ph58da"))))
2509 (build-system ant-build-system)
2510 (arguments
2511 `(#:jar-name "maven-file-management.jar"
2512 #:source-dir "src/main/java"
2513 #:phases
2514 (modify-phases %standard-phases
2515 (add-before 'build 'copy-resources
2516 (lambda _
2517 (copy-recursively "src/main/resources" "build/classes/")
2518 #t))
2519 (add-before 'build 'generate-models
2520 (lambda* (#:key inputs #:allow-other-keys)
2521 (define (modello-single-mode file version mode)
2522 (invoke "java"
2523 "org.codehaus.modello.ModelloCli"
2524 file mode "src/main/java" version
2525 "false" "true"))
2526 (let ((file "src/main/mdo/fileset.mdo"))
2527 (modello-single-mode file "1.1.0" "java")
2528 (modello-single-mode file "1.1.0" "xpp3-reader")
2529 (modello-single-mode file "1.1.0" "xpp3-writer"))
2530 #t))
2531 (replace 'install
2532 (install-from-pom "pom.xml")))))
2533 (propagated-inputs
2534 `(("maven-plugin-api" ,maven-3.0-plugin-api)
2535 ("maven-shared-io" ,maven-shared-io)
2536 ("maven-shared-utils" ,maven-shared-utils)
2537 ("java-plexus-utils" ,java-plexus-utils)
2538 ("maven-components-parent-pom" ,maven-components-parent-pom-22)))
2539 (native-inputs
2540 `(("java-modello-core" ,java-modello-core)
2541 ;; modello plugins:
2542 ("java-modellop-plugins-java" ,java-modello-plugins-java)
2543 ("java-modellop-plugins-xpp3" ,java-modello-plugins-xpp3)
2544 ("unzip" ,unzip)))
2545 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2546 (synopsis "Tree-based API for resolution of Maven project dependencies")
2547 (description "This package provides a tree-based API for resolution of
2548Maven project dependencies.")
2549 (license license:asl2.0)))
84ca4dbe
JL
2550
2551(define-public maven-archiver
2552 (package
2553 (name "maven-archiver")
2554 (version "3.5.0")
2555 (source (origin
2556 (method url-fetch)
2557 (uri (string-append "mirror://apache/maven/shared/"
2558 "maven-archiver-" version
2559 "-source-release.zip"))
2560 (sha256
2561 (base32
2562 "1204xkqj259brpk3yscprml0lbfbyn1vn5nrgqjk44z5vx127lbw"))))
2563 (build-system ant-build-system)
2564 (arguments
2565 `(#:jar-name "maven-archiver.jar"
2566 #:source-dir "src/main/java"
2567 #:phases
2568 (modify-phases %standard-phases
2569 (replace 'install
2570 (install-from-pom "pom.xml")))))
2571 (propagated-inputs
2572 `(("java-commons-io" ,java-commons-io)
2573 ("maven-artifact" ,maven-3.0-artifact)
2574 ("maven-core" ,maven-3.0-core)
2575 ("maven-model" ,maven-3.0-model)
2576 ("maven-shared-utils" ,maven-shared-utils)
2577 ("java-plexus-archiver" ,java-plexus-archiver)
2578 ("java-plexus-interpolation" ,java-plexus-interpolation)
2579 ("java-plexus-utils" ,java-plexus-utils)
2580 ("maen-parent-pom" ,maven-parent-pom-33)))
2581 (native-inputs
2582 `(("java-junit" ,java-junit)
2583 ("java-assertj" ,java-assertj)
2584 ("unzip" ,unzip)))
2585 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2586 (synopsis "Tree-based API for resolution of Maven project dependencies")
2587 (description "This package provides a tree-based API for resolution of
2588Maven project dependencies.")
2589 (license license:asl2.0)))
24bdd150
JL
2590
2591(define-public maven-dependency-tree
2592 (package
2593 (name "maven-dependency-tree")
2594 (version "3.0.1")
2595 (source (origin
2596 (method url-fetch)
2597 (uri (string-append "mirror://apache/maven/shared/"
2598 "maven-dependency-tree-" version
2599 "-source-release.zip"))
2600 (sha256
2601 (base32
2602 "0mxfslxvcmjs13jl30zhcg672j970dzn6ihh79w9ajh6sfqmlds2"))))
2603 (build-system ant-build-system)
2604 (arguments
2605 `(#:jar-name "maven-dependency-tree.jar"
2606 #:source-dir "src/main/java"
2607 #:phases
2608 (modify-phases %standard-phases
2609 (replace 'install
2610 (install-from-pom "pom.xml")))))
2611 (propagated-inputs
2612 `(("maven-core" ,maven-3.0-core)
2613 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2614 ("maven-parent-pom" ,maven-parent-pom-30)))
2615 (inputs
2616 `(("java-sonatype-aether-api" ,java-sonatype-aether-api)
2617 ("java-sonatype-aether-util" ,java-sonatype-aether-util)
2618 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2619 ("java-eclipse-aether-util" ,java-eclipse-aether-util)))
2620 (native-inputs
2621 `(("unzip" ,unzip)
2622 ("java-junit" ,java-junit)))
2623 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2624 (synopsis "Tree-based API for resolution of Maven project dependencies")
2625 (description "This package provides a tree-based API for resolution of
2626Maven project dependencies.")
2627 (license license:asl2.0)))
ee1bed9d
JL
2628
2629(define-public maven-common-artifact-filters
2630 (package
2631 (name "maven-common-artifact-filters")
2632 (version "3.1.0")
2633 (source (origin
2634 (method url-fetch)
2635 (uri (string-append "mirror://apache/maven/shared/"
2636 "maven-common-artifact-filters-" version
2637 "-source-release.zip"))
2638 (sha256
2639 (base32
2640 "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
2641 (build-system ant-build-system)
2642 (arguments
2643 `(#:jar-name "maven-common-artifact-filters.jar"
2644 #:source-dir "src/main/java"
2645 #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
2646 #:phases
2647 (modify-phases %standard-phases
2648 (add-before 'build 'remove-sisu
2649 (lambda _
2650 ;; Replace sisu with an existing dependency, to prevent a failure
2651 ;; when rewritting dependency versions
2652 (substitute* "pom.xml"
2653 (("sisu-inject-plexus") "maven-plugin-api")
2654 (("org.sonatype.sisu") "org.apache.maven"))
2655 #t))
2656 (replace 'install
2657 (install-from-pom "pom.xml")))))
2658 (propagated-inputs
2659 `(("maven-artifact" ,maven-3.0-artifact)
2660 ("maven-model" ,maven-3.0-model)
2661 ("maven-core" ,maven-3.0-core)
2662 ("maven-plugin-api" ,maven-3.0-plugin-api)
2663 ("maven-shared-utils" ,maven-shared-utils)
2664 ("maven-parent-pom" ,maven-parent-pom-33)
2665 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2666 ("java-sonatype-aether-util" ,java-sonatype-aether-util)))
2667 (inputs
2668 `(("maven-resolver-api" ,maven-resolver-api)
2669 ("maven-resolver-util" ,maven-resolver-util)))
2670 (native-inputs
2671 `(("unzip" ,unzip)))
2672 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2673 (synopsis "Tree-based API for resolution of Maven project dependencies")
2674 (description "This package provides a tree-based API for resolution of
2675Maven project dependencies.")
2676 (license license:asl2.0)))
c3951015
JL
2677
2678(define-public maven-enforcer-api
2679 (package
2680 (name "maven-enforcer-api")
2681 (version "3.0.0-M3")
2682 (source (origin
2683 (method url-fetch)
2684 (uri (string-append "mirror://apache/maven/enforcer/"
2685 "enforcer-" version "-source-release.zip"))
2686 (sha256
2687 (base32
2688 "014cwj0dqa69nnlzcin8pk9wsjmmg71vsbcpb16cibcjpm6h9wjg"))
2689 (patches
2690 (search-patches "maven-enforcer-api-fix-old-dependencies.patch"))))
2691 (build-system ant-build-system)
2692 (arguments
2693 `(#:jar-name "maven-enforcer-api.jar"
2694 #:source-dir "enforcer-api/src/main/java"
2695 #:tests? #f; no tests
2696 #:phases
2697 (modify-phases %standard-phases
2698 (replace 'install
2699 (install-from-pom "enforcer-api/pom.xml")))))
2700 (propagated-inputs
2701 `(("maven-plugin-api" ,maven-plugin-api)
2702 ("java-plexus-container-default" ,java-plexus-container-default)
2703 ("java-jsr305" ,java-jsr305)
2704 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))
2705 (native-inputs
2706 `(("unzip" ,unzip)))
2707 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2708 (synopsis "Tree-based API for resolution of Maven project dependencies")
2709 (description "This package provides a tree-based API for resolution of
2710Maven project dependencies.")
2711 (license license:asl2.0)))
2712
2713(define maven-enforcer-parent-pom
2714 (package
2715 (inherit maven-enforcer-api)
2716 (name "maven-enforcer-parent-pom")
2717 (arguments
2718 `(#:tests? #f
2719 #:phases
2720 (modify-phases %standard-phases
2721 (delete 'configure)
2722 (delete 'build)
2723 (replace 'install
2724 (install-pom-file "pom.xml")))))
2725 (propagated-inputs
2726 `(("maven-parent-pom" ,maven-parent-pom-30)))))
94261e7c
JL
2727
2728(define-public maven-enforcer-rules
2729 (package
2730 (inherit maven-enforcer-api)
2731 (name "maven-enforcer-rules")
2732 (arguments
2733 `(#:tests? #f; requires maven-plugin-testing-harness
2734 #:jar-name "maven-enforcer-rules.jar"
2735 #:source-dir "enforcer-rules/src/main/java"
2736 #:test-dir "enforcer-rules/src/test"
2737 #:phases
2738 (modify-phases %standard-phases
2739 (replace 'install
2740 (install-from-pom "enforcer-rules/pom.xml")))))
2741 (propagated-inputs
2742 `(("maven-artifact" ,maven-artifact)
2743 ("maven-plugin-api" ,maven-plugin-api)
2744 ("maven-core" ,maven-core)
2745 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
2746 ("java-commons-codec" ,java-commons-codec)
2747 ("java-commons-lang3" ,java-commons-lang3)
2748 ("maven-enforcer-api" ,maven-enforcer-api)
2749 ("maven-resolver-util" ,maven-resolver-util)
2750 ("java-bsh" ,java-bsh)
2751 ("maven-dependency-tree" ,maven-dependency-tree)
2752 ("maven-compat" ,maven-3.0-compat)
2753 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
e244157b
JL
2754
2755(define-public maven-enforcer-plugin
2756 (package
2757 (inherit maven-enforcer-api)
2758 (name "maven-enforcer-plugin")
2759 (arguments
2760 `(#:tests? #f
2761 #:jar-name "maven-enforcer-plugin.jar"
2762 #:source-dir "maven-enforcer-plugin/src/main/java"
2763 #:phases
2764 (modify-phases %standard-phases
2765 (add-before 'build 'generate-plugin.xml
2766 (generate-plugin.xml "maven-enforcer-plugin/pom.xml"
2767 "enforcer"
2768 "maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/"
2769 (list
2770 (list "DisplayInfoMojo.java")
2771 (list "EnforceMojo.java"))))
2772 (replace 'install
2773 (install-from-pom "maven-enforcer-plugin/pom.xml")))))
2774 (propagated-inputs
2775 `(("maven-artifact" ,maven-artifact)
2776 ("maven-plugin-api" ,maven-plugin-api)
2777 ("maven-core" ,maven-core)
2778 ("java-plexus-utils" ,java-plexus-utils)
2779 ("maven-enforcer-api" ,maven-enforcer-api)
2780 ("maven-enforcer-rules" ,maven-enforcer-rules)
2781 ("maven-plugin-annotations" ,maven-plugin-annotations)
2782 ("maven-enforcer-parent-pom" ,maven-enforcer-parent-pom)))))
ea806229
JL
2783
2784(define-public maven-artifact-transfer
2785 (package
2786 (name "maven-artifact-transfer")
2787 (version "0.12.0")
2788 (source (origin
2789 (method url-fetch)
2790 (uri (string-append "mirror://apache/maven/shared/"
2791 "maven-artifact-transfer-" version
2792 "-source-release.zip"))
2793 (sha256
2794 (base32
2795 "0mkdjr3wnvaxqaq68sy7h4mqlq3xgwwp5s2anj5vbxfy4bsc1ivj"))))
2796 (build-system ant-build-system)
2797 (arguments
2798 `(#:tests? #f; require mockito 2
2799 #:jar-name "maven-artifact-transfer.jar"
2800 #:source-dir "src/main/java"
2801 #:phases
2802 (modify-phases %standard-phases
2803 (add-after 'build 'generate-metadata
2804 (lambda _
2805 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2806 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2807 "--source" "src/main/java"
2808 "--output" "build/classes/META-INF/plexus/components.xml"
2809 "--classes" "build/classes"
2810 "--descriptors" "build/classes/META-INF")
2811 #t))
2812 (add-after 'generate-metadata 'rebuild
2813 (lambda _
2814 (invoke "ant" "jar")
2815 #t))
2816 (replace 'install
2817 (install-from-pom "pom.xml")))))
2818 (propagated-inputs
2819 `(("java-commons-codec" ,java-commons-codec)
2820 ("maven-artifact" ,maven-3.0-artifact)
2821 ("maven-core" ,maven-3.0-core)
2822 ("maven-common-artifact-filters" ,maven-common-artifact-filters)
2823 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
2824 ("java-plexus-utils" ,java-plexus-utils)
2825 ("java-slf4j-api" ,java-slf4j-api)
2826 ("java-plexus-classworlds" ,java-plexus-classworlds)
2827 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2828 ("java-eclipse-aether-api" ,java-eclipse-aether-api)
2829 ("java-eclipse-aether-util" ,java-eclipse-aether-util)
2830 ("java-eclipse-aether-impl" ,java-eclipse-aether-impl)))
2831 (native-inputs
2832 `(("unzip" ,unzip)
2833 ("java-plexus-component-metadata" ,java-plexus-component-metadata)))
2834 (home-page "https://maven.apache.org/shared/maven-artifact-transfer")
2835 (synopsis "API to install, deploy and resolve artifacts in Maven")
2836 (description "This package contains an API to install, deploy and resolve
2837artifacts in Maven 3.")
2838 (license license:asl2.0)))
ebe6e6f5
JL
2839
2840(define-public maven-install-plugin
2841 (package
2842 (name "maven-install-plugin")
2843 (version "3.0.0-M1")
2844 (source (origin
2845 (method url-fetch)
2846 (uri (string-append "mirror://apache/maven/plugins/"
2847 "maven-install-plugin-" version
2848 "-source-release.zip"))
2849 (sha256
2850 (base32
2851 "1l9iydxririrair0i5sk2iypn9wspzbb666lc0ddg20yyr8w39dm"))))
2852 (build-system ant-build-system)
2853 (arguments
2854 `(#:tests? #f; require maven-plugin-testing-harness
2855 #:jar-name "maven-install-plugin.jar"
2856 #:source-dir "src/main/java"
2857 #:phases
2858 (modify-phases %standard-phases
2859 (add-before 'build 'fix-pom
2860 (lambda _
2861 (substitute* "pom.xml"
2862 (("maven-project") "maven-core")
2863 (("maven-artifact-manager") "maven-artifact")
2864 (("2.0.6") "3.0"))
2865 #t))
2866 (add-before 'build 'generate-plugin.xml
2867 (generate-plugin.xml "pom.xml"
2868 "install"
2869 "src/main/java/org/apache/maven/plugins/install"
2870 (list
2871 (list "AbstractInstallMojo.java" "InstallFileMojo.java")
2872 (list "AbstractInstallMojo.java" "InstallMojo.java"))))
2873 (replace 'install
2874 (install-from-pom "pom.xml")))))
2875 (propagated-inputs
2876 `(("maven-artifact" ,maven-artifact)
2877 ("maven-plugin-api" ,maven-plugin-api)
2878 ("maven-compat" ,maven-compat)
2879 ("maven-artifact-transfer" ,maven-artifact-transfer)
2880 ("maven-plugins-pom-23" ,maven-plugins-pom-23)
2881 ("java-plexus-digest" ,java-plexus-digest)))
2882 (inputs
2883 `(("maven-plugin-annotations" ,maven-plugin-annotations)
2884 ("java-slf4j-api" ,java-slf4j-api)))
2885 (native-inputs
2886 `(("unzip" ,unzip)))
2887 (home-page "https://maven.apache.org/plugin/maven-install-plugin")
2888 (synopsis "Maven's install plugin")
2889 (description "The Install Plugin is used during the install phase to add
2890artifact(s) to the local repository. The Install Plugin uses the information
2891in the POM (groupId, artifactId, version) to determine the proper location for
2892the artifact within the local repository.
2893
2894The local repository is the local cache where all artifacts needed for the
2895build are stored. By default, it is located within the user's home directory
2896(@file{~/.m2/repository}) but the location can be configured in
2897@file{~/.m2/settings.xml} using the @code{<localRepository>} element.")
2898 (license license:asl2.0)))
f0e3e6ca
JL
2899
2900(define-public maven-filtering
2901 (package
2902 (name "maven-filtering")
2903 (version "3.1.1")
2904 (source (origin
2905 (method url-fetch)
2906 (uri (string-append "https://archive.apache.org/dist/maven/"
2907 "shared/maven-filtering-" version
2908 "-source-release.zip"))
2909 (sha256
2910 (base32
2911 "09wrdhchnszd2l6h4z30ra0bv1a19qyjgac9z8zf1pn0m4nw05yz"))))
2912 (build-system ant-build-system)
2913 (arguments
2914 `(#:jar-name "maven-filtering.jar"
2915 #:source-dir "src/main/java"
2916 #:test-dir "src/test"
2917 ;; this test comes from sisu-build-api, not this package
2918 #:test-exclude (list "**/IncrementalResourceFilteringTest.java"
2919 "**/Abstract*.java")
2920 #:phases
2921 (modify-phases %standard-phases
2922 (add-after 'build 'generate-metadata
2923 (lambda _
2924 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2925 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2926 "--source" "src/main/java"
2927 "--output" "build/classes/META-INF/plexus/components.xml"
2928 "--classes" "build/classes"
2929 "--descriptors" "build/classes/META-INF")
2930 #t))
2931 (add-after 'generate-metadata 'rebuild
2932 (lambda _
2933 (invoke "ant" "jar")
2934 #t))
2935 (add-before 'check 'decompress-tests
2936 (lambda* (#:key inputs #:allow-other-keys)
2937 (let* ((build-api-source (assoc-ref inputs "java-sisu-build-api-origin"))
2938 (classes (string-append build-api-source "/src/test/java")))
2939 (copy-recursively classes "src/test/"))
2940 #t))
2941 (add-before 'check 'fix-directory
2942 (lambda _
2943 (substitute* (find-files "src/test" ".*.java$")
2944 (("target/test-classes/") "build/test-classes/"))))
2945 (add-before 'check 'copy-test-resources
2946 (lambda _
2947 (copy-recursively "src/test/resources" "build/test-classes/")
2948 #t))
2949 (replace 'install
2950 (install-from-pom "pom.xml")))))
2951 (propagated-inputs
2952 `(("maven-core" ,maven-3.0-core)
2953 ("maven-shared-utils" ,maven-shared-utils)
2954 ("java-plexus-utils" ,java-plexus-utils)
2955 ("java-plexus-interpolation" ,java-plexus-interpolation)
2956 ("java-sisu-build-api" ,java-sisu-build-api)
2957 ("maven-parent-pom" ,maven-parent-pom-30)))
2958 (inputs
2959 `(("java-jsr305" ,java-jsr305)))
2960 (native-inputs
2961 `(("unzip" ,unzip)
2962 ("java-assertj" ,java-assertj)
2963 ("java-junit" ,java-junit)
2964 ("java-mockito" ,java-mockito-1)
2965 ("java-objenesis" ,java-objenesis)
2966 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
2967 ("java-sisu-build-api-origin" ,(package-source java-sisu-build-api))))
2968 (home-page "https://maven.apache.org/shared/maven-filtering")
2969 (synopsis "Shared component for all plugins that needs to filter resources")
2970 (description "This component provides an API to filter resources in Maven
2971projects.")
2972 (license license:asl2.0)))
5bebb1e8
JL
2973
2974(define-public maven-resources-plugin
2975 (package
2976 (name "maven-resources-plugin")
2977 (version "3.1.0")
2978 (source (origin
2979 (method url-fetch)
2980 (uri (string-append "https://github.com/apache/"
2981 "maven-resources-plugin/archive/"
2982 "maven-resources-plugin-" version ".tar.gz"))
2983 (sha256
2984 (base32
2985 "1f5gnjg2xmqfxml6k0ydyd1sxxwzgnb24qn6avcc4mijwd8a84pl"))))
2986 (build-system ant-build-system)
2987 (arguments
2988 `(#:jar-name "maven-resources-plugin.jar"
2989 #:source-dir "src/main/java"
2990 #:test-dir "src/test"
2991 #:tests? #f; test depends on maven-plugin-test-harness
2992 #:phases
2993 (modify-phases %standard-phases
2994 (add-before 'build 'generate-plugin.xml
2995 (generate-plugin.xml "pom.xml" "resources"
2996 "src/main/java/org/apache/maven/plugins/resources"
2997 (list
2998 (list "ResourcesMojo.java" "CopyResourcesMojo.java")
2999 (list "ResourcesMojo.java")
3000 (list "ResourcesMojo.java" "TestResourcesMojo.java"))))
3001 (replace 'install
3002 (install-from-pom "pom.xml")))))
3003 (propagated-inputs
3004 `(("maven-plugin-api" ,maven-plugin-api)
3005 ("maven-core" ,maven-core)
3006 ("java-plexus-utils" ,java-plexus-utils)
3007 ("maven-filtering" ,maven-filtering)
3008 ("java-plexus-interpolation" ,java-plexus-interpolation)
3009 ("maven-parent-pom" ,maven-parent-pom-31)))
3010 (inputs
3011 `(("maven-plugin-annotations" ,maven-plugin-annotations)
3012 ("java-commons-io" ,java-commons-io)))
3013 (native-inputs
3014 `(("java-plexus-component-metadata" ,java-plexus-component-metadata)))
3015 (home-page "https://maven.apache.org/plugins/maven-resources-plugin")
3016 (synopsis "Maven plugin to collect and install resources")
3017 (description "The Resources Plugin handles the copying of project resources
3018to the output directory. There are two different kinds of resources: main
3019resources and test resources. The difference is that the main resources are
3020the resources associated to the main source code while the test resources are
3021associated to the test source code.
3022
3023Thus, this allows the separation of resources for the main source code and its
3024unit tests.")
3025 (license license:asl2.0)))