gnu: emacs-helm: Update to 3.8.7.
[jackhill/guix/guix.git] / gnu / packages / maven.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2018-2022 Julien Lepiller <julien@lepiller.eu>
3 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
4 ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
5 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
6 ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
7 ;;;
8 ;;; This file is part of GNU Guix.
9 ;;;
10 ;;; GNU Guix is free software; you can redistribute it and/or modify it
11 ;;; under the terms of the GNU General Public License as published by
12 ;;; the Free Software Foundation; either version 3 of the License, or (at
13 ;;; your option) any later version.
14 ;;;
15 ;;; GNU Guix is distributed in the hope that it will be useful, but
16 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 ;;; GNU General Public License for more details.
19 ;;;
20 ;;; You should have received a copy of the GNU General Public License
21 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23 (define-module (gnu packages maven)
24 #:use-module ((guix licenses) #:prefix license:)
25 #:use-module (guix packages)
26 #:use-module (guix download)
27 #:use-module (guix git-download)
28 #:use-module (guix utils)
29 #:use-module (guix build-system ant)
30 #:use-module (gnu packages)
31 #:use-module (gnu packages base)
32 #:use-module (gnu packages compression)
33 #:use-module (gnu packages java)
34 #:use-module (gnu packages maven-parent-pom)
35 #:use-module (gnu packages web)
36 #:use-module (gnu packages xml)
37 #:use-module (ice-9 match))
38
39 (define-public maven-resolver-api
40 (package
41 (name "maven-resolver-api")
42 (version "1.6.3")
43 (source (origin
44 (method git-fetch)
45 (uri (git-reference
46 (url "https://github.com/apache/maven-resolver")
47 (commit (string-append "maven-resolver-" version))))
48 (file-name (git-file-name name version))
49 (sha256
50 (base32
51 "0hbbbxj14qyq8pccyab96pjqq90jnjmid1pml9kx55c5smfpjn37"))))
52 (build-system ant-build-system)
53 (arguments
54 `(#:jar-name "maven-resolver-api.jar"
55 #:source-dir "maven-resolver-api/src/main/java"
56 #:test-dir "maven-resolver-api/src/test"
57 #:phases
58 (modify-phases %standard-phases
59 (replace 'install
60 (install-from-pom "maven-resolver-api/pom.xml")))))
61 (native-inputs
62 `(("java-asm-8" ,java-asm-8)
63 ("java-cglib" ,java-cglib)
64 ("java-hamcrest-core" ,java-hamcrest-core)
65 ("java-junit" ,java-junit)
66 ("java-mockito-1" ,java-mockito-1)
67 ("java-objenesis" ,java-objenesis)))
68 (propagated-inputs
69 (list maven-resolver-parent-pom))
70 (home-page "https://github.com/apache/maven-resolver")
71 (synopsis "Maven repository system API")
72 (description "This package contains the API for the maven repository system.")
73 (license license:asl2.0)))
74
75 (define maven-resolver-parent-pom
76 (package
77 (inherit maven-resolver-api)
78 (name "maven-resolver-parent-pom")
79 (arguments
80 `(#:tests? #f
81 #:phases
82 (modify-phases %standard-phases
83 (delete 'configure)
84 (delete 'build)
85 (add-before 'install 'fix-pom
86 (lambda _
87 (substitute* "pom.xml"
88 (("<classifier>no_aop</classifier>") ""))
89 #t))
90 (replace 'install
91 (install-pom-file "pom.xml")))))
92 (propagated-inputs '())))
93
94 (define-public maven-resolver-spi
95 (package
96 (inherit maven-resolver-api)
97 (name "maven-resolver-spi")
98 (arguments
99 `(#:jar-name "maven-resolver-spi.jar"
100 #:source-dir "maven-resolver-spi/src/main/java"
101 #:test-dir "maven-resolver-spi/src/test"
102 #:phases
103 (modify-phases %standard-phases
104 (replace 'install
105 (install-from-pom "maven-resolver-spi/pom.xml")))))
106 (propagated-inputs
107 (list maven-resolver-api))
108 (synopsis "Maven repository system SPI")
109 (description "This package contains the service provider interface (SPI)
110 for repository system implementations and repository connectors.")))
111
112 (define-public maven-resolver-test-util
113 (package
114 (inherit maven-resolver-api)
115 (name "maven-resolver-test-util")
116 (arguments
117 `(#:jar-name "maven-resolver-test-util.jar"
118 #:source-dir "maven-resolver-test-util/src/main/java"
119 #:test-dir "maven-resolver-test-util/src/test"
120 #:jdk ,icedtea-8))
121 (inputs
122 (list maven-resolver-api maven-resolver-spi))
123 (synopsis "Utility classes for testing the maven repository system")
124 (description "This package contains a collection of utility classes to
125 ease testing of the repository system.")))
126
127 (define-public maven-resolver-util
128 (package
129 (inherit maven-resolver-api)
130 (name "maven-resolver-util")
131 (arguments
132 `(#:jar-name "maven-resolver-util.jar"
133 #:source-dir "maven-resolver-util/src/main/java"
134 #:test-dir "maven-resolver-util/src/test"
135 #:phases
136 (modify-phases %standard-phases
137 (replace 'install
138 (install-from-pom "maven-resolver-util/pom.xml")))))
139 (propagated-inputs
140 (list maven-resolver-api))
141 (native-inputs
142 (list java-junit java-hamcrest-core maven-resolver-test-util))
143 (synopsis "Utility classes for the maven repository system")
144 (description "This package contains a collection of utility classes to
145 ease usage of the repository system.")))
146
147 (define-public maven-resolver-connector-basic
148 (package
149 (inherit maven-resolver-api)
150 (name "maven-resolver-connector-basic")
151 (arguments
152 `(#:jar-name "maven-resolver-connector-basic.jar"
153 #:source-dir "maven-resolver-connector-basic/src/main/java"
154 #:test-dir "maven-resolver-connector-basic/src/test"
155 #:jdk ,icedtea-8
156 #:phases
157 (modify-phases %standard-phases
158 (add-before 'build 'generate-sisu
159 (lambda _
160 (mkdir-p "build/classes/META-INF/sisu")
161 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
162 (lambda _
163 (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n")))
164 #t))
165 (replace 'install
166 (install-from-pom "maven-resolver-connector-basic/pom.xml")))))
167 (propagated-inputs
168 (list maven-resolver-api maven-resolver-spi maven-resolver-util
169 java-slf4j-api))
170 (native-inputs
171 (list java-javax-inject java-junit maven-resolver-test-util))
172 (synopsis "Maven repository connector implementation")
173 (description "This package contains a repository connector implementation
174 for repositories using URI-based layouts.")))
175
176 (define-public maven-resolver-impl
177 (package
178 (inherit maven-resolver-api)
179 (name "maven-resolver-impl")
180 (arguments
181 `(#:jar-name "maven-resolver-impl.jar"
182 #:source-dir "maven-resolver-impl/src/main/java"
183 #:test-dir "maven-resolver-impl/src/test"
184 #:phases
185 (modify-phases %standard-phases
186 (add-before 'build 'generate-sisu
187 (lambda _
188 (mkdir-p "build/classes/META-INF/sisu")
189 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
190 (lambda _
191 (display
192 (string-append
193 ;; Build this list by looking for files containing "@Named"
194 "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n"
195 "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n"
196 "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n"
197 "org.eclipse.aether.internal.impl.DefaultDeployer\n"
198 "org.eclipse.aether.internal.impl.DefaultFileProcessor\n"
199 "org.eclipse.aether.internal.impl.DefaultInstaller\n"
200 "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n"
201 "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n"
202 "org.eclipse.aether.internal.impl.DefaultOfflineController\n"
203 "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n"
204 "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n"
205 "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n"
206 "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n"
207 "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n"
208 "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n"
209 "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n"
210 "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n"
211 "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n"
212 "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n"
213 "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n"
214 "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n"
215 "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n"
216 "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory"))))
217 #t))
218 (replace 'install
219 (install-from-pom "maven-resolver-impl/pom.xml")))))
220 (propagated-inputs
221 (list maven-resolver-api
222 maven-resolver-spi
223 maven-resolver-util
224 java-commons-lang3
225 java-eclipse-sisu-inject
226 java-javax-inject
227 java-guice
228 java-slf4j-api
229 maven-resolver-parent-pom))
230 (native-inputs
231 (list java-junit maven-resolver-test-util))))
232
233 (define-public maven-resolver-transport-wagon
234 (package
235 (inherit maven-resolver-api)
236 (name "maven-resolver-transport-wagon")
237 (arguments
238 `(#:jar-name "maven-resolver-transport-wagon.jar"
239 #:source-dir "maven-resolver-transport-wagon/src/main/java"
240 #:test-dir "maven-resolver-transport-wagon/src/test"
241 #:jdk ,icedtea-8
242 #:phases
243 (modify-phases %standard-phases
244 (add-before 'build 'generate-sisu
245 (lambda _
246 (mkdir-p "build/classes/META-INF/sisu")
247 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
248 (lambda _
249 (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n")))
250 #t))
251 (add-before 'build 'generate-components.xml
252 (lambda _
253 (mkdir-p "build/classes/META-INF/plexus")
254 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
255 (lambda _
256 (display
257 (string-append
258 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
259 <component-set>
260 <components>
261 <component>
262 <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role>
263 <role-hint>plexus</role-hint>
264 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation>
265 <description />
266 <isolated-realm>false</isolated-realm>
267 <requirements>
268 <requirement>
269 <role>org.codehaus.plexus.PlexusContainer</role>
270 <role-hint />
271 <field-name>container</field-name>
272 </requirement>
273 </requirements>
274 </component>
275 <component>
276 <role>org.eclipse.aether.transport.wagon.WagonProvider</role>
277 <role-hint>plexus</role-hint>
278 <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation>
279 <description />
280 <isolated-realm>false</isolated-realm>
281 <requirements>
282 <requirement>
283 <role>org.codehaus.plexus.PlexusContainer</role>
284 <role-hint />
285 <field-name>container</field-name>
286 </requirement>
287 </requirements>
288 </component>
289 </components>
290 </component-set>\n"))))
291 #t)))))
292 (inputs
293 `(("maven-resolver-api" ,maven-resolver-api)
294 ("maven-resolver-spi" ,maven-resolver-spi)
295 ("maven-resolver-util" ,maven-resolver-util)
296 ("java-javax-inject" ,java-javax-inject)
297 ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
298 ("java-plexus-component-annotation" ,java-plexus-component-annotations-1.7)
299 ("java-plexus-classworld" ,java-plexus-classworlds)
300 ("java-plexus-plexus-util" ,java-plexus-utils)
301 ("java-slf4j-api" ,java-slf4j-api)
302 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
303 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)))
304 (native-inputs
305 (list java-junit
306 java-hamcrest-core
307 maven-resolver-test-util
308 java-guava
309 java-cglib
310 java-aopalliance
311 java-guice))
312 (synopsis "Transport implementation for Maven")
313 (description "This package contains a transport implementation based on
314 Maven Wagon, for use in Maven.")))
315
316 (define-public maven-resolver-transport-file
317 (package
318 (inherit maven-resolver-api)
319 (name "maven-resolver-transport-file")
320 (arguments
321 `(#:jar-name "maven-resolver-transport-file.jar"
322 #:source-dir "maven-resolver-transport-file/src/main/java"
323 #:test-dir "maven-resolver-transport-file/src/test"
324 #:jdk ,icedtea-8
325 #:phases
326 (modify-phases %standard-phases
327 (add-before 'build 'generate-sisu
328 (lambda _
329 (mkdir-p "build/classes/META-INF/sisu")
330 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
331 (lambda _
332 (display "org.eclipse.aether.transport.file.FileTransporterFactory\n"))))))))
333 (inputs
334 (list java-eclipse-sisu-inject
335 java-eclipse-sisu-plexus
336 java-javax-inject
337 java-plexus-classworlds
338 java-plexus-component-annotations
339 java-plexus-utils
340 java-slf4j-api
341 maven-resolver-api
342 maven-resolver-spi
343 maven-resolver-util
344 maven-wagon-provider-api))
345 (native-inputs
346 (list java-asm
347 java-aopalliance
348 java-cglib
349 java-guava
350 java-guice
351 java-hamcrest-core
352 java-junit
353 maven-resolver-test-util))
354 (synopsis "Transport implementation for Maven")
355 (description "This package contains a transport implementation based on
356 files, for use in Maven.")))
357
358 (define-public maven-resolver-transport-http
359 (package
360 (inherit maven-resolver-api)
361 (name "maven-resolver-transport-http")
362 (arguments
363 `(#:jar-name "maven-resolver-transport-http.jar"
364 #:source-dir "maven-resolver-transport-http/src/main/java"
365 #:test-dir "maven-resolver-transport-http/src/test"
366 #:jdk ,icedtea-8
367 ;; Tests all fail because
368 ;; org.eclipse.aether.transport.http.SslSocketFactory is not available.
369 #:tests? #f
370 #:phases
371 (modify-phases %standard-phases
372 (add-before 'build 'generate-sisu
373 (lambda _
374 (mkdir-p "build/classes/META-INF/sisu")
375 (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named"
376 (lambda _
377 (display "org.eclipse.aether.transport.http.HttpTransporterFactory\n"))))))))
378 (inputs
379 (list java-eclipse-sisu-inject
380 java-eclipse-sisu-plexus
381 java-javax-inject
382 java-plexus-classworlds
383 java-plexus-component-annotations
384 java-plexus-utils
385 java-slf4j-api
386 maven-resolver-api
387 maven-resolver-spi
388 maven-resolver-util
389 maven-wagon-provider-api))
390 (propagated-inputs
391 (list java-httpcomponents-httpclient
392 java-httpcomponents-httpcore))
393 (native-inputs
394 (list java-aopalliance
395 java-asm
396 java-cglib
397 java-eclipse-aether-api
398 java-eclipse-jetty-http
399 java-eclipse-jetty-io
400 java-eclipse-jetty-server
401 java-eclipse-jetty-servlet
402 java-eclipse-jetty-util
403 java-guava
404 java-guice
405 java-hamcrest-core
406 java-javaee-servletapi
407 java-junit
408 maven-resolver-test-util))
409 (synopsis "Transport implementation for Maven")
410 (description "This package contains a transport implementation based on
411 HTTP, for use in Maven.")))
412
413 ;; aether is the parent project that was forked into maven-resolver. It used
414 ;; to be used with older versions of Maven, and is still required for some
415 ;; plugins and their dependencies. This version is required for the plugins,
416 ;; even though there are newer versions of this project.
417 (define-public java-sonatype-aether-api
418 (package
419 (name "java-sonatype-aether-api")
420 (version "1.7")
421 (source (origin
422 (method git-fetch)
423 (uri (git-reference
424 (url "https://github.com/sonatype/sonatype-aether")
425 (commit (string-append "aether-" version))))
426 (file-name (git-file-name name version))
427 (sha256
428 (base32
429 "1wn9fv91n40bvlwbzy0dmh0xqibxl2mpzpnbibhqss3c0zlr1ccq"))))
430 (build-system ant-build-system)
431 (arguments
432 `(#:jar-name "aether-api.jar"
433 #:source-dir "aether-api/src/main/java"
434 #:test-dir "aether-api/src/test"
435 #:phases
436 (modify-phases %standard-phases
437 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
438 (replace 'install (install-from-pom "aether-api/pom.xml")))))
439 (propagated-inputs
440 (list java-sonatype-forge-parent-pom-6))
441 (native-inputs (list java-junit))
442 (home-page "https://github.com/sonatype/sonatype-aether")
443 (synopsis "Maven repository system API")
444 (description "This package contains the API for the maven repository system.")
445 (license license:asl2.0)))
446
447 (define-public java-sonatype-aether-spi
448 (package
449 (inherit java-sonatype-aether-api)
450 (name "java-sonatype-aether-spi")
451 (arguments
452 `(#:jar-name "aether-spi.jar"
453 #:source-dir "aether-spi/src/main/java"
454 #:tests? #f; no tests
455 #:phases
456 (modify-phases %standard-phases
457 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
458 (propagated-inputs
459 (list java-sonatype-aether-api))
460 (synopsis "Maven repository system SPI")
461 (description "This package contains the service provider interface (SPI)
462 for repository system implementations and repository connectors.")))
463
464 (define-public java-sonatype-aether-test-util
465 (package
466 (inherit java-sonatype-aether-api)
467 (name "java-sonatype-aether-test-util")
468 (arguments
469 `(#:jar-name "java-sonatype-aether-test-util.jar"
470 #:source-dir "aether-test-util/src/main/java"
471 #:test-dir "aether-test-util/src/test"))
472 (inputs
473 (list java-sonatype-aether-api java-sonatype-aether-spi))
474 (synopsis "Utility classes for testing the maven repository system")
475 (description "This package contains a collection of utility classes to
476 ease testing of the repository system.")))
477
478 (define-public java-sonatype-aether-util
479 (package
480 (inherit java-sonatype-aether-api)
481 (name "java-sonatype-aether-util")
482 (arguments
483 `(#:jar-name "aether-util.jar"
484 #:source-dir "aether-util/src/main/java"
485 #:test-dir "aether-util/src/test"
486 #:phases
487 (modify-phases %standard-phases
488 (replace 'install (install-from-pom "aether-util/pom.xml")))))
489 (propagated-inputs
490 (list java-sonatype-aether-api))
491 (native-inputs
492 (list java-junit java-sonatype-aether-test-util))
493 (synopsis "Utility classes for the maven repository system")
494 (description "This package contains a collection of utility classes to
495 ease usage of the repository system.")))
496
497 (define-public java-sonatype-aether-impl
498 (package
499 (inherit java-sonatype-aether-api)
500 (name "java-sonatype-aether-impl")
501 (arguments
502 `(#:jar-name "aether-impl.jar"
503 #:source-dir "aether-impl/src/main/java"
504 #:test-dir "aether-impl/src/test"
505 #:phases
506 (modify-phases %standard-phases
507 (add-before 'install 'fix-pom
508 (lambda _
509 (substitute* "aether-impl/pom.xml"
510 (("org.sonatype.sisu") "org.codehaus.plexus")
511 (("sisu-inject-plexus") "plexus-container-default"))
512 #t))
513 (add-after 'build 'generate-metadata
514 (lambda _
515 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
516 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
517 "--source" "src/main/java"
518 "--output" "build/classes/META-INF/plexus/components.xml"
519 "--classes" "build/classes"
520 "--descriptors" "build/classes/META-INF")
521 #t))
522 (add-after 'generate-metadata 'rebuild
523 (lambda _
524 (invoke "ant" "jar")
525 #t))
526 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
527 (propagated-inputs
528 (list java-sonatype-aether-api
529 java-sonatype-aether-spi
530 java-sonatype-aether-util
531 java-plexus-component-annotations
532 java-plexus-container-default
533 java-slf4j-api))
534 (native-inputs
535 (list java-junit java-plexus-component-metadata
536 java-sonatype-aether-test-util))))
537
538 ;; This slightly newer version is also required by some plugins
539 (define-public java-sonatype-aether-api-1.13
540 (package
541 (name "java-sonatype-aether-api")
542 (version "1.13.1")
543 (source (origin
544 (method git-fetch)
545 (uri (git-reference
546 (url "https://github.com/sonatype/sonatype-aether")
547 (commit (string-append "aether-" version))))
548 (file-name (git-file-name name version))
549 (sha256
550 (base32
551 "1yl34dqhm6ykb7h63gkssyrdxv3dsa3n5b8d8cvy8rh4qsm6p2yb"))))
552 (build-system ant-build-system)
553 (arguments
554 `(#:jar-name "aether-api.jar"
555 #:source-dir "aether-api/src/main/java"
556 #:test-dir "aether-api/src/test"
557 #:phases
558 (modify-phases %standard-phases
559 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
560 (replace 'install (install-from-pom "aether-api/pom.xml")))))
561 (propagated-inputs
562 `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-10)))
563 (native-inputs `(("java-junit" ,java-junit)))
564 (home-page "https://github.com/sonatype/sonatype-aether")
565 (synopsis "Maven repository system API")
566 (description "This package contains the API for the maven repository system.")
567 (license license:asl2.0)))
568
569 (define-public java-sonatype-aether-spi-1.13
570 (package
571 (inherit java-sonatype-aether-api-1.13)
572 (name "java-sonatype-aether-spi")
573 (arguments
574 `(#:jar-name "aether-spi.jar"
575 #:source-dir "aether-spi/src/main/java"
576 #:tests? #f; no tests
577 #:phases
578 (modify-phases %standard-phases
579 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
580 (propagated-inputs
581 `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)))
582 (synopsis "Maven repository system SPI")
583 (description "This package contains the service provider interface (SPI)
584 for repository system implementations and repository connectors.")))
585
586 (define-public java-sonatype-aether-test-util-1.13
587 (package
588 (inherit java-sonatype-aether-api-1.13)
589 (name "java-sonatype-aether-test-util")
590 (arguments
591 `(#:jar-name "java-sonatype-aether-test-util.jar"
592 #:source-dir "aether-test-util/src/main/java"
593 #:test-dir "aether-test-util/src/test"))
594 (inputs
595 `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)
596 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi-1.13)))
597 (synopsis "Utility classes for testing the maven repository system")
598 (description "This package contains a collection of utility classes to
599 ease testing of the repository system.")))
600
601 (define-public java-sonatype-aether-util-1.13
602 (package
603 (inherit java-sonatype-aether-api-1.13)
604 (name "java-sonatype-aether-util")
605 (arguments
606 `(#:jar-name "aether-util.jar"
607 #:source-dir "aether-util/src/main/java"
608 #:test-dir "aether-util/src/test"
609 #:phases
610 (modify-phases %standard-phases
611 (replace 'install (install-from-pom "aether-util/pom.xml")))))
612 (propagated-inputs
613 `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)))
614 (native-inputs
615 `(("java-junit" ,java-junit)
616 ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util-1.13)))
617 (synopsis "Utility classes for the maven repository system")
618 (description "This package contains a collection of utility classes to
619 ease usage of the repository system.")))
620
621 ;; Again, this old version is required by some maven plugins
622 (define-public java-eclipse-aether-api
623 (package
624 (name "java-eclipse-aether-api")
625 (version "1.0.2")
626 (source (origin
627 (method git-fetch)
628 (uri (git-reference
629 (url "https://github.com/eclipse/aether-core")
630 (commit "aether-1.0.2.v20150114")))
631 (file-name (git-file-name name version))
632 (sha256
633 (base32
634 "14d336nn0kh5ddf23j37va3hd8gaai19llrpxhf4bcc7g7sgdqxs"))))
635 (build-system ant-build-system)
636 (arguments
637 `(#:jar-name "aether-api.jar"
638 #:source-dir "aether-api/src/main/java"
639 #:test-dir "aether-api/src/test"
640 #:phases
641 (modify-phases %standard-phases
642 (add-before 'install 'install-parent (install-pom-file "pom.xml"))
643 (replace 'install (install-from-pom "aether-api/pom.xml")))))
644 (native-inputs (list java-junit))
645 (home-page "https://github.com/sonatype/sonatype-aether")
646 (synopsis "Maven repository system API")
647 (description "This package contains the API for the maven repository system.")
648 (license license:asl2.0)))
649
650 (define-public java-eclipse-aether-spi
651 (package
652 (inherit java-eclipse-aether-api)
653 (name "java-eclipse-aether-spi")
654 (arguments
655 `(#:jar-name "aether-spi.jar"
656 #:source-dir "aether-spi/src/main/java"
657 #:test-dir "aether-spi/src/test"
658 #:phases
659 (modify-phases %standard-phases
660 (replace 'install (install-from-pom "aether-spi/pom.xml")))))
661 (propagated-inputs
662 (list java-eclipse-aether-api))
663 (synopsis "Maven repository system SPI")
664 (description "This package contains the service provider interface (SPI)
665 for repository system implementations and repository connectors.")))
666
667 (define-public java-eclipse-aether-test-util
668 (package
669 (inherit java-eclipse-aether-api)
670 (name "java-eclipse-aether-test-util")
671 (arguments
672 `(#:jar-name "aether-test-util.jar"
673 #:source-dir "aether-test-util/src/main/java"
674 #:test-dir "aether-test-util/src/test"
675 #:phases
676 (modify-phases %standard-phases
677 (replace 'install (install-from-pom "aether-util/pom.xml")))))
678 (propagated-inputs
679 (list java-eclipse-aether-api java-eclipse-aether-spi))
680 (synopsis "Utility classes for testing the maven repository system")
681 (description "This package contains a collection of utility classes to
682 ease testing of the repository system.")))
683
684 (define-public java-eclipse-aether-util
685 (package
686 (inherit java-eclipse-aether-api)
687 (name "java-eclipse-aether-util")
688 (arguments
689 `(#:jar-name "aether-util.jar"
690 #:source-dir "aether-util/src/main/java"
691 #:test-dir "aether-util/src/test"
692 #:phases
693 (modify-phases %standard-phases
694 (replace 'install (install-from-pom "aether-util/pom.xml")))))
695 (propagated-inputs
696 (list java-eclipse-aether-api))
697 (native-inputs
698 (list java-eclipse-aether-test-util java-junit))
699 (synopsis "Utility classes for the maven repository system")
700 (description "This package contains a collection of utility classes to
701 ease usage of the repository system.")))
702
703 (define-public java-eclipse-aether-impl
704 (package
705 (inherit java-eclipse-aether-api)
706 (name "java-eclipse-aether-impl")
707 (arguments
708 `(#:jar-name "aether-impl.jar"
709 #:source-dir "aether-impl/src/main/java"
710 #:test-dir "aether-impl/src/test"
711 #:phases
712 (modify-phases %standard-phases
713 (replace 'install (install-from-pom "aether-impl/pom.xml")))))
714 (propagated-inputs
715 (list java-eclipse-aether-api
716 java-eclipse-aether-spi
717 java-eclipse-aether-util
718 java-javax-inject
719 java-eclipse-sisu-inject
720 java-guice
721 java-slf4j-api))
722 (native-inputs
723 (list java-eclipse-aether-test-util java-junit))))
724
725 (define-public maven-shared-utils
726 (package
727 (name "maven-shared-utils")
728 (version "3.2.1")
729 (source (origin
730 (method url-fetch)
731 (uri (string-append "mirror://apache/maven/shared/"
732 "maven-shared-utils-" version "-source-release.zip"))
733 (sha256
734 (base32
735 "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6"))))
736 (build-system ant-build-system)
737 (arguments
738 `(#:jar-name "maven-shared-utils.jar"
739 #:source-dir "src/main/java"
740 #:phases
741 (modify-phases %standard-phases
742 (add-before 'build 'fix-/bin/sh-invocation
743 (lambda _
744 (substitute* (find-files "src" ".*.java$")
745 (("/bin/sh") (which "sh")))
746 #t))
747 (add-before 'check 'remove-cyclic-dep
748 (lambda _
749 (delete-file
750 "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java")
751 #t))
752 (replace 'install
753 (install-from-pom "pom.xml")))))
754 (propagated-inputs
755 `(("java-jansi" ,java-jansi)
756 ("java-commons-io" ,java-commons-io)
757 ("java-jsr305" ,java-jsr305)
758 ("java-plexus-container-default" ,java-plexus-container-default)
759 ("maven-parent-pom-30" ,maven-parent-pom-30)))
760 (native-inputs
761 (list unzip java-junit java-hamcrest-core java-commons-lang3))
762 (home-page "https://maven.apache.org/shared/maven-shared-utils/")
763 (synopsis "Plexus-util replacement for maven")
764 (description "This project aims to be a functional replacement for
765 plexus-utils in Maven. It is not a 100% API compatible replacement but a
766 replacement with improvements.")
767 (license license:asl2.0)))
768
769 (define-public maven-plugin-annotations
770 (package
771 (name "maven-plugin-annotations")
772 (version "3.5")
773 (source (origin
774 (method url-fetch)
775 (uri (string-append "mirror://apache/maven/"
776 "plugin-tools/maven-plugin-tools-" version
777 "-source-release.zip"))
778 (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2"))))
779 (build-system ant-build-system)
780 (arguments
781 `(#:jar-name "maven-plugin-annotations.jar"
782 #:source-dir "maven-plugin-annotations/src/main/java"
783 #:tests? #f
784 #:phases
785 (modify-phases %standard-phases
786 (replace 'install
787 (install-from-pom "maven-plugin-annotations/pom.xml")))))
788 (propagated-inputs
789 (list maven-artifact maven-plugin-tools-parent-pom))
790 (native-inputs
791 (list unzip))
792 (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/")
793 (synopsis "Java 5 annotations to use in Mojos")
794 (description "This package contains Java 5 annotations for use in Mojos.")
795 (license license:asl2.0)))
796
797 (define maven-plugin-tools-parent-pom
798 (package
799 (inherit maven-plugin-annotations)
800 (name "maven-plugin-tools-parent-pom")
801 (arguments
802 `(#:tests? #f
803 #:phases
804 (modify-phases %standard-phases
805 (delete 'configure)
806 (delete 'build)
807 (replace 'install
808 (install-pom-file "pom.xml")))))
809 (propagated-inputs '())))
810
811 (define-public maven-wagon-provider-api
812 (package
813 (name "maven-wagon-provider-api")
814 (version "3.4.3")
815 (source (origin
816 (method url-fetch)
817 (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
818 "wagon-" version "-source-release.zip"))
819 (sha256
820 (base32
821 "1rnviw0yr4g5902fb8pkd1gyvci4bz7hndjvhkqmnkj7ay0y6mf0"))))
822 (build-system ant-build-system)
823 (arguments
824 `(#:jar-name "maven-wagon-provider-api.jar"
825 #:source-dir "wagon-provider-api/src/main/java"
826 #:test-dir "wagon-provider-api/src/test"
827 #:phases
828 (modify-phases %standard-phases
829 (replace 'install
830 (install-from-pom "wagon-provider-api/pom.xml")))))
831 (propagated-inputs
832 `(("java-plexus-utils" ,java-plexus-utils)
833 ("maven-wagon-parent-pom" ,maven-wagon-parent-pom)))
834 (native-inputs
835 (list unzip java-junit java-easymock))
836 (home-page "https://maven.apache.org/wagon")
837 (synopsis "Transport abstraction for Maven")
838 (description "Maven Wagon is a transport abstraction that is used in Maven's
839 artifact and repository handling code.")
840 (license license:asl2.0)))
841
842 (define maven-wagon-parent-pom
843 (package
844 (inherit maven-wagon-provider-api)
845 (arguments
846 `(#:tests? #f
847 #:phases
848 (modify-phases %standard-phases
849 (delete 'configure)
850 (delete 'build)
851 (replace 'install
852 (install-pom-file "pom.xml")))))
853 (propagated-inputs
854 `(("maven-parent-pom-33" ,maven-parent-pom-33)))
855 (native-inputs
856 `(("unzip" ,unzip)))))
857
858 (define-public maven-wagon-provider-test
859 (package
860 (inherit maven-wagon-provider-api)
861 (name "maven-wagon-provider-test")
862 (arguments
863 `(#:jar-name "maven-wagon-provider-test.jar"
864 #:source-dir "wagon-provider-test/src/main/java"
865 #:tests? #f; no tests
866 #:jdk ,icedtea-8))
867 (inputs
868 `(("java-plexus-utils" ,java-plexus-utils)
869 ("java-plexus-container-default" ,java-plexus-container-default)
870 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
871 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
872 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
873 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
874 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
875 ("java-slf4j-api" ,java-slf4j-api)
876 ("java-javaee-servletapi" ,java-javaee-servletapi)
877 ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
878 (synopsis "Test classes from maven-wagon")
879 (description "Maven Wagon is a transport abstraction that is used in Maven's
880 artifact and repository handling code. This package contains common test
881 classes used in multiple maven-wagon components.")))
882
883 (define-public maven-wagon-file
884 (package
885 (inherit maven-wagon-provider-api)
886 (name "maven-wagon-file")
887 (arguments
888 `(#:jar-name "maven-wagon-file.jar"
889 #:source-dir "wagon-providers/wagon-file/src/main/java"
890 #:test-dir "wagon-providers/wagon-file/src/test"
891 #:jdk ,icedtea-8
892 #:phases
893 (modify-phases %standard-phases
894 (add-before 'check 'fix-paths
895 (lambda _
896 ;; Tests assume they are run by maven, which copies test resources
897 ;; to target. Our ant-build-system does the same, but with the
898 ;; build directory.
899 (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java"
900 (("target") "build"))
901 #t))
902 (add-after 'build 'generate-metadata
903 (lambda _
904 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
905 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
906 "--source" "wagon-providers/wagon-file/src/main/java"
907 "--output" "build/classes/META-INF/plexus/components.xml"
908 "--classes" "build/classes"
909 "--descriptors" "build/classes/META-INF")
910 #t))
911 (add-after 'generate-metadata 'rebuild
912 (lambda _
913 (invoke "ant" "jar")
914 #t)))))
915 (inputs
916 (list java-plexus-utils maven-wagon-provider-api))
917 (native-inputs
918 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
919 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
920 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
921 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
922 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
923 ("java-plexus-classworlds" ,java-plexus-classworlds)
924 ("java-guava" ,java-guava)
925 ("java-guice" ,java-guice)
926 ("java-javax-inject" ,java-javax-inject)
927 ("java-cglib" ,java-cglib)
928 ("java-slf4j-api" ,java-slf4j-api)
929 ("java-plexus-utils" ,java-plexus-utils)
930 ("java-plexus-cli" ,java-plexus-cli)
931 ("maven-plugin-api" ,maven-plugin-api)
932 ("maven-plugin-annotations" ,maven-plugin-annotations)
933 ("maven-core" ,maven-core)
934 ("maven-model" ,maven-model)
935 ("java-commons-cli" ,java-commons-cli)
936 ("java-qdox" ,java-qdox)
937 ("java-jdom2" ,java-jdom2)
938 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
939 ,@(package-native-inputs maven-wagon-provider-api)))
940 (synopsis "Wagon provider that gets and puts artifacts using the file system")
941 (description "Maven Wagon is a transport abstraction that is used in Maven's
942 artifact and repository handling code. It uses providers, that are tools to
943 manage artifacts and deployment. This package contains the file provider which
944 gets and puts artifacts using the file system.")))
945
946 (define-public maven-wagon-tck-http
947 (package
948 (inherit maven-wagon-provider-api)
949 (name "maven-wagon-tck-http")
950 (arguments
951 `(#:jar-name "maven-wagon-tck-http.jar"
952 #:source-dir "wagon-tcks/wagon-tck-http/src/main/java"
953 #:tests? #f; no tests
954 #:jdk ,icedtea-8))
955 (inputs
956 `(("java-plexus-util" ,java-plexus-utils)
957 ("maven-wagon-provider-api" ,maven-wagon-provider-api)
958 ("java-javaee-servletapi" ,java-javaee-servletapi)
959 ("java-slf4j-api" ,java-slf4j-api)
960 ("java-commons-codec" ,java-commons-codec)
961 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
962 ("java-plexus-classworlds" ,java-plexus-classworlds)
963 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
964 ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2)
965 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
966 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
967 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)))
968 (synopsis "Wagon HTTP Test Compatibility Kit")
969 (description "Maven Wagon is a transport abstraction that is used in Maven's
970 artifact and repository handling code. This package contains the HTTP
971 Test Compatibility Kit.")))
972
973 (define-public maven-wagon-http-shared
974 (package
975 (inherit maven-wagon-provider-api)
976 (name "maven-wagon-http-shared")
977 (arguments
978 `(#:jar-name "maven-wagon-http-shared.jar"
979 #:source-dir "wagon-providers/wagon-http-shared/src/main/java"
980 #:test-dir "wagon-providers/wagon-http-shared/src/test"
981 #:jdk ,icedtea-8
982 #:phases
983 (modify-phases %standard-phases
984 (add-after 'build 'generate-metadata
985 (lambda _
986 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
987 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
988 "--source" "wagon-providers/wagon-http-shared/src/main/java"
989 "--output" "build/classes/META-INF/plexus/components.xml"
990 "--classes" "build/classes"
991 "--descriptors" "build/classes/META-INF")
992 #t))
993 (add-after 'generate-metadata 'rebuild
994 (lambda _
995 (invoke "ant" "jar")
996 #t)))))
997 (inputs
998 (list java-plexus-utils
999 java-httpcomponents-httpclient
1000 java-httpcomponents-httpcore
1001 java-commons-io
1002 java-jsoup
1003 maven-wagon-provider-api))
1004 (native-inputs
1005 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
1006 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
1007 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
1008 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1009 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1010 ("java-plexus-classworlds" ,java-plexus-classworlds)
1011 ("java-guava" ,java-guava)
1012 ("java-guice" ,java-guice)
1013 ("java-javax-inject" ,java-javax-inject)
1014 ("java-cglib" ,java-cglib)
1015 ("java-slf4j-api" ,java-slf4j-api)
1016 ("java-plexus-utils" ,java-plexus-utils)
1017 ("java-plexus-cli" ,java-plexus-cli)
1018 ("maven-plugin-api" ,maven-plugin-api)
1019 ("maven-plugin-annotations" ,maven-plugin-annotations)
1020 ("maven-core" ,maven-core)
1021 ("maven-model" ,maven-model)
1022 ("java-commons-cli" ,java-commons-cli)
1023 ("java-qdox" ,java-qdox)
1024 ("java-jdom2" ,java-jdom2)
1025 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1026 ,@(package-native-inputs maven-wagon-provider-api)))
1027 (synopsis "Shared Library for wagon providers supporting HTTP")
1028 (description "Maven Wagon is a transport abstraction that is used in Maven's
1029 artifact and repository handling code. It uses providers, that are tools to
1030 manage artifacts and deployment. This package contains a shared library for
1031 wagon providers supporting HTTP.")))
1032
1033 (define-public maven-wagon-http
1034 (package
1035 (inherit maven-wagon-provider-api)
1036 (name "maven-wagon-http")
1037 (arguments
1038 `(#:jar-name "maven-wagon-http.jar"
1039 #:source-dir "wagon-providers/wagon-http/src/main/java"
1040 #:test-dir "wagon-providers/wagon-http/src/test"
1041 #:test-exclude (list
1042 "**/Abstract*.java"
1043 ;; FIXME: javax.net.ssl.SSLHandshakeException:
1044 ;; sun.security.validator.ValidatorException:
1045 ;; PKIX path building failed:
1046 ;; sun.security.provider.certpath.SunCertPathBuilderException:
1047 ;; unable to find valid certification path to requested target
1048 "**/HttpsWagonPreemptiveTest.java"
1049 "**/HttpsWagonTest.java"
1050 ;; Timeout
1051 "**/HugeFileDownloadTest.java"
1052 ;; Injection errors
1053 "**/TckTest.java")
1054 #:jdk ,icedtea-8
1055 #:phases
1056 (modify-phases %standard-phases
1057 (add-before 'build 'copy-resources
1058 (lambda _
1059 (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml"
1060 "build/classes/META-INF/plexus")
1061 #t))
1062 (add-before 'check 'fix-resource-path
1063 (lambda _
1064 (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java"
1065 "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java")
1066 (("src/test") "wagon-providers/wagon-http/src/test"))
1067 #t)))))
1068 (inputs
1069 (list java-plexus-utils
1070 java-httpcomponents-httpclient
1071 java-httpcomponents-httpcore
1072 maven-wagon-http-shared
1073 maven-wagon-tck-http
1074 maven-wagon-provider-api))
1075 (native-inputs
1076 `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
1077 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
1078 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
1079 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1080 ("java-plexus-container-default" ,java-plexus-container-default)
1081 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1082 ("java-plexus-classworlds" ,java-plexus-classworlds)
1083 ("java-guava" ,java-guava)
1084 ("java-guice" ,java-guice)
1085 ("java-inject" ,java-javax-inject)
1086 ("java-cglib" ,java-cglib)
1087 ("java-slf4j-api" ,java-slf4j-api)
1088 ("java-plexus-utils" ,java-plexus-utils)
1089 ("java-plexus-cli" ,java-plexus-cli)
1090 ("maven-plugin-api" ,maven-plugin-api)
1091 ("maven-plugin-annotations" ,maven-plugin-annotations)
1092 ("maven-slf4j-provider" ,maven-slf4j-provider)
1093 ("maven-core" ,maven-core)
1094 ("maven-model" ,maven-model)
1095 ("java-commons-cli" ,java-commons-cli)
1096 ("java-qdox" ,java-qdox)
1097 ("java-jdom2" ,java-jdom2)
1098 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1099 ("java-javaee-servletapi" ,java-javaee-servletapi)
1100 ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
1101 ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2)
1102 ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2)
1103 ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
1104 ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
1105 ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2)
1106 ("java-hamcrest-core" ,java-hamcrest-core)
1107 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
1108 ("java-commons-codec" ,java-commons-codec)
1109 ("java-commons-io" ,java-commons-io)
1110 ("java-jsoup" ,java-jsoup)
1111 ,@(package-native-inputs maven-wagon-provider-api)))
1112 (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)")
1113 (description "Maven Wagon is a transport abstraction that is used in Maven's
1114 artifact and repository handling code. It uses providers, that are tools to
1115 manage artifacts and deployment. This package contains a Wagon provider that
1116 gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
1117
1118 (define maven-pom
1119 (package
1120 (name "maven-pom")
1121 (version "3.8.5")
1122 (source (origin
1123 (method url-fetch)
1124 (uri (string-append "mirror://apache/maven/"
1125 "maven-3/" version "/source/"
1126 "apache-maven-" version "-src.tar.gz"))
1127 (sha256 (base32 "01y0fjvlvgy1bl3mdhbjll2xhzpli6aklqb3w29xpbgk6frxn3d6"))
1128 (modules '((guix build utils)))
1129 (snippet
1130 '(begin
1131 (for-each delete-file (find-files "." "\\.jar$"))
1132 #t))
1133 (patches
1134 (search-patches "maven-generate-component-xml.patch"
1135 "maven-generate-javax-inject-named.patch"))))
1136 (build-system ant-build-system)
1137 (arguments
1138 `(#:tests? #f
1139 #:phases
1140 (modify-phases %standard-phases
1141 (delete 'configure)
1142 (delete 'build)
1143 (add-before 'install 'fix-dependencies
1144 (lambda _
1145 (substitute* "pom.xml"
1146 (("classWorldsVersion>.*")
1147 (string-append
1148 "classWorldsVersion>"
1149 ,(package-version java-plexus-classworlds)
1150 "</classWorldsVersion>\n"))
1151 (("commonsCliVersion>.*")
1152 (string-append
1153 "commonsCliVersion>"
1154 ,(package-version java-commons-cli)
1155 "</commonsCliVersion>\n"))
1156 (("commonsLangVersion>.*")
1157 (string-append
1158 "commonsLangVersion>"
1159 ,(package-version java-commons-lang3)
1160 "</commonsLangVersion>\n"))
1161 (("plexusUtilsVersion>.*")
1162 (string-append
1163 "plexusUtilsVersion>"
1164 ,(package-version java-plexus-utils)
1165 "</plexusUtilsVersion>\n"))
1166 (("plexusInterpolationVersion>.*")
1167 (string-append
1168 "plexusInterpolationVersion>"
1169 ,(package-version java-plexus-interpolation)
1170 "</plexusInterpolationVersion>\n"))
1171 (("guiceVersion>.*")
1172 (string-append
1173 "guiceVersion>"
1174 ,(package-version java-guice)
1175 "</guiceVersion>\n"))
1176 (("sisuInjectVersion>.*")
1177 (string-append
1178 "sisuInjectVersion>"
1179 ,(package-version java-eclipse-sisu-inject)
1180 "</sisuInjectVersion>\n"))
1181 (("securityDispatcherVersion>.*")
1182 (string-append
1183 "securityDispatcherVersion>"
1184 ,(package-version java-plexus-sec-dispatcher)
1185 "</securityDispatcherVersion>\n"))
1186 (("cipherVersion>.*")
1187 (string-append
1188 "cipherVersion>"
1189 ,(package-version java-plexus-cipher)
1190 "</cipherVersion>\n"))
1191 (("slf4jVersion>.*")
1192 (string-append
1193 "slf4jVersion>"
1194 ,(package-version java-slf4j-api)
1195 "</slf4jVersion>\n"))
1196 (("<classifier>no_aop</classifier>") ""))
1197 #t))
1198 (replace 'install
1199 (install-pom-file "pom.xml")))))
1200 (propagated-inputs
1201 (list maven-parent-pom-35))
1202 (home-page "https://maven.apache.org/")
1203 (synopsis "Build system")
1204 (description "Apache Maven is a software project management and comprehension
1205 tool. This package contains the Maven pom file, used by all maven components.")
1206 (license license:asl2.0)))
1207
1208 (define-public maven-artifact
1209 (package
1210 (inherit maven-pom)
1211 (name "maven-artifact")
1212 (arguments
1213 `(#:jar-name "maven-artifact.jar"
1214 #:source-dir "maven-artifact/src/main/java"
1215 #:test-dir "maven-artifact/src/test"
1216 #:main-class "org.apache.maven.artifact.versioning.ComparableVersion"
1217 #:phases
1218 (modify-phases %standard-phases
1219 (replace 'install
1220 (install-from-pom "maven-artifact/pom.xml")))))
1221 (propagated-inputs
1222 (list java-plexus-utils java-commons-lang3 maven-pom))
1223 (native-inputs
1224 (list java-junit))
1225 (description "Apache Maven is a software project management and comprehension
1226 tool. This package contains the Maven Artifact classes, providing the
1227 @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The
1228 jar file is executable and provides a little tool to display how Maven parses
1229 and compares versions:")))
1230
1231 (define-public maven-model
1232 (package
1233 (inherit maven-artifact)
1234 (name "maven-model")
1235 (arguments
1236 `(#:jar-name "maven-model.jar"
1237 #:source-dir "maven-model/src/main/java"
1238 #:test-dir "maven-model/src/test"
1239 #:phases
1240 (modify-phases %standard-phases
1241 (add-before 'build 'generate-models
1242 (lambda* (#:key inputs #:allow-other-keys)
1243 (define (modello-single-mode file version mode)
1244 (invoke "java" "org.codehaus.modello.ModelloCli"
1245 file mode "maven-model/src/main/java" version
1246 "false" "true"))
1247 (let ((file "maven-model/src/main/mdo/maven.mdo"))
1248 (modello-single-mode file "4.0.0" "java")
1249 (modello-single-mode file "4.0.0" "xpp3-reader")
1250 (modello-single-mode file "4.0.0" "xpp3-extended-reader")
1251 (modello-single-mode file "4.0.0" "xpp3-writer")
1252 (modello-single-mode file "4.0.0" "xpp3-extended-writer"))
1253 #t))
1254 (replace 'install (install-from-pom "maven-model/pom.xml")))))
1255 (propagated-inputs
1256 (list java-commons-lang3 java-plexus-utils maven-pom))
1257 (native-inputs
1258 (list java-modello-core
1259 ;; for modello:
1260 java-eclipse-sisu-plexus
1261 java-plexus-component-annotations
1262 java-guice
1263 java-cglib
1264 java-asm
1265 java-eclipse-sisu-inject
1266 java-javax-inject
1267 java-plexus-classworlds
1268 java-guava
1269 java-geronimo-xbean-reflect
1270 java-plexus-build-api
1271 ;; modello plugins:
1272 java-modello-plugins-java
1273 java-modello-plugins-xml
1274 java-modello-plugins-xpp3
1275 ;; for tests
1276 java-junit))
1277 (description "Apache Maven is a software project management and comprehension
1278 tool. This package contains the model for Maven @dfn{POM} (Project Object Model),
1279 so really just plain Java objects.")))
1280
1281 (define-public maven-builder-support
1282 (package
1283 (inherit maven-artifact)
1284 (name "maven-builder-support")
1285 (arguments
1286 `(#:jar-name "maven-builder-support.jar"
1287 #:source-dir "maven-builder-support/src/main/java"
1288 #:jdk ,icedtea-8
1289 #:test-dir "maven-builder-support/src/test"
1290 #:phases
1291 (modify-phases %standard-phases
1292 (add-before 'check 'fix-paths
1293 (lambda _
1294 (with-directory-excursion "maven-builder-support/src/test/java"
1295 (substitute*
1296 '("org/apache/maven/building/FileSourceTest.java"
1297 "org/apache/maven/building/UrlSourceTest.java")
1298 (("target/test-classes") "maven-builder-support/src/test/resources")))
1299 #t))
1300 (replace 'install (install-from-pom "maven-builder-support/pom.xml")))))
1301 (propagated-inputs
1302 (list maven-pom))
1303 (native-inputs
1304 (list java-junit))
1305 (description "Apache Maven is a software project management and comprehension
1306 tool. This package contains a support library for descriptor builders (model,
1307 setting, toolchains)")))
1308
1309 (define-public maven-settings
1310 (package
1311 (inherit maven-artifact)
1312 (name "maven-settings")
1313 (arguments
1314 `(#:jar-name "maven-settings.jar"
1315 #:source-dir "maven-settings/src/main/java"
1316 #:tests? #f; no tests
1317 #:phases
1318 (modify-phases %standard-phases
1319 (add-before 'build 'generate-models
1320 (lambda* (#:key inputs #:allow-other-keys)
1321 (define (modello-single-mode file version mode)
1322 (invoke "java" "org.codehaus.modello.ModelloCli"
1323 file mode "maven-settings/src/main/java" version
1324 "false" "true"))
1325 (let ((file "maven-settings/src/main/mdo/settings.mdo"))
1326 (modello-single-mode file "1.2.0" "java")
1327 (modello-single-mode file "1.2.0" "xpp3-reader")
1328 (modello-single-mode file "1.2.0" "xpp3-writer"))
1329 #t))
1330 (replace 'install (install-from-pom "maven-settings/pom.xml")))))
1331 (propagated-inputs
1332 (list java-plexus-utils maven-pom))
1333 (native-inputs
1334 (list java-modello-core
1335 ;; for modello:
1336 ;("container" ,java-plexus-container-default)
1337 java-eclipse-sisu-plexus
1338 java-plexus-component-annotations
1339 java-guice
1340 java-cglib
1341 java-eclipse-sisu-inject
1342 java-javax-inject
1343 java-plexus-classworlds
1344 java-plexus-utils
1345 java-guava
1346 java-geronimo-xbean-reflect
1347 java-plexus-build-api
1348 ;; modello plugins:
1349 java-modello-plugins-java
1350 java-modello-plugins-xml
1351 java-modello-plugins-xpp3))
1352 (description "Apache Maven is a software project management and comprehension
1353 tool. This package contains strictly the model for Maven settings, that is
1354 simply plain java objects.")))
1355
1356 (define-public maven-settings-builder
1357 (package
1358 (inherit maven-artifact)
1359 (name "maven-settings-builder")
1360 (arguments
1361 `(#:jar-name "maven-settings-builder.jar"
1362 #:source-dir "maven-settings-builder/src/main/java"
1363 #:jdk ,icedtea-8
1364 #:test-dir "maven-settings-builder/src/test"
1365 #:phases
1366 (modify-phases %standard-phases
1367 (add-before 'build 'generate-sisu-named
1368 (lambda _
1369 (mkdir-p "build/classes/META-INF/sisu")
1370 (chmod "sisu.sh" #o755)
1371 (invoke "./sisu.sh" "maven-settings-builder/src/main/java"
1372 "build/classes/META-INF/sisu/javax.inject.Named")))
1373 (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
1374 (propagated-inputs
1375 (list java-plexus-utils
1376 java-plexus-interpolation
1377 java-plexus-sec-dispatcher
1378 maven-builder-support
1379 maven-settings
1380 maven-pom))
1381 (native-inputs
1382 (list java-junit java-javax-inject java-plexus-component-annotations))
1383 (description "Apache Maven is a software project management and comprehension
1384 tool. This package contains the effective model builder, with profile activation,
1385 inheritance, interpolation, @dots{}")))
1386
1387 (define-public maven-model-builder
1388 (package
1389 (inherit maven-artifact)
1390 (name "maven-model-builder")
1391 (arguments
1392 `(#:jar-name "maven-model-builder.jar"
1393 #:source-dir "src/main/java"
1394 #:jdk ,icedtea-8
1395 #:test-dir "src/test"
1396 #:phases
1397 (modify-phases %standard-phases
1398 (add-before 'configure 'chdir
1399 (lambda _
1400 ;; Required for tests that rely on the package's default
1401 ;; locations, that reference ${basedir}/src/test.
1402 (chdir "maven-model-builder")))
1403 (add-before 'build 'copy-resources
1404 (lambda _
1405 (copy-recursively "src/main/resources"
1406 "build/classes")
1407 #t))
1408 (add-before 'build 'generate-sisu-named
1409 (lambda _
1410 (mkdir-p "build/classes/META-INF/sisu")
1411 (chmod "../sisu.sh" #o755)
1412 (invoke "../sisu.sh" "src/main/java"
1413 "build/classes/META-INF/sisu/javax.inject.Named")))
1414 (replace 'install
1415 (install-from-pom "pom.xml")))))
1416 (propagated-inputs
1417 (list java-plexus-interpolation
1418 java-plexus-utils
1419 maven-artifact
1420 maven-builder-support
1421 maven-model
1422 maven-pom))
1423 (native-inputs
1424 `(("java-junit" ,java-junit)
1425 ("java-guava" ,java-guava)
1426 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1427 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1428 ("java-powermock-reflect" ,java-powermock-reflect)
1429 ("java-objenesis" ,java-objenesis)
1430 ("guice" ,java-guice)
1431 ("java-cglib" ,java-cglib)
1432 ("sisu-inject" ,java-eclipse-sisu-inject)
1433 ("javax-inject" ,java-javax-inject)
1434 ("java-xmlunit" ,java-xmlunit)
1435 ("java-xmlunit-matchers" ,java-xmlunit-matchers)
1436 ("xbean" ,java-geronimo-xbean-reflect)
1437 ("classworlds" ,java-plexus-classworlds)))
1438 (description "Apache Maven is a software project management and comprehension
1439 tool. This package contains the effective model builder, with profile activation,
1440 inheritance, interpolation, @dots{}")))
1441
1442 (define-public maven-repository-metadata
1443 (package
1444 (inherit maven-artifact)
1445 (name "maven-repository-metadata")
1446 (arguments
1447 `(#:jar-name "maven-repository-metadata.jar"
1448 #:source-dir "maven-repository-metadata/src/main/java"
1449 #:jdk ,icedtea-8
1450 #:tests? #f; no tests
1451 #:phases
1452 (modify-phases %standard-phases
1453 (add-before 'build 'generate-models
1454 (lambda* (#:key inputs #:allow-other-keys)
1455 (define (modello-single-mode file version mode)
1456 (invoke "java" "org.codehaus.modello.ModelloCli"
1457 file mode "maven-repository-metadata/src/main/java" version
1458 "false" "true"))
1459 (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo"))
1460 (modello-single-mode file "1.1.0" "java")
1461 (modello-single-mode file "1.1.0" "xpp3-reader")
1462 (modello-single-mode file "1.1.0" "xpp3-writer"))
1463 #t))
1464 (replace 'install
1465 (install-from-pom "maven-repository-metadata/pom.xml")))))
1466 (propagated-inputs
1467 (list java-plexus-utils maven-pom))
1468 (native-inputs
1469 `(("modello" ,java-modello-core)
1470 ;; for modello:
1471 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1472 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1473 ("java-guice" ,java-guice)
1474 ("java-cglib" ,java-cglib)
1475 ("java-asm" ,java-asm)
1476 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1477 ("java-javax-inject" ,java-javax-inject)
1478 ("java-plexus-utils" ,java-plexus-utils)
1479 ("java-plexus-classworlds" ,java-plexus-classworlds)
1480 ("java-guava" ,java-guava)
1481 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1482 ("java-plexus-build-api" ,java-plexus-build-api)
1483 ;; modello plugins:
1484 ("java-modello-plugins-java" ,java-modello-plugins-java)
1485 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1486 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)))
1487 (description "Apache Maven is a software project management and comprehension
1488 tool. This package contains strictly the model for Maven Repository Metadata,
1489 so really just plain objects.")))
1490
1491 (define-public maven-resolver-provider
1492 (package
1493 (inherit maven-artifact)
1494 (name "maven-resolver-provider")
1495 (arguments
1496 `(#:jar-name "maven-resolver-provider.jar"
1497 #:source-dir "maven-resolver-provider/src/main/java"
1498 #:test-dir "maven-resolver-provider/src/test"
1499 #:jdk ,icedtea-8
1500 #:tests? #f; dependency loop on maven-core (@Component RepositorySystem)
1501 #:phases
1502 (modify-phases %standard-phases
1503 (add-before 'build 'generate-sisu-named
1504 (lambda _
1505 (mkdir-p "build/classes/META-INF/sisu")
1506 (chmod "./sisu.sh" #o755)
1507 (invoke "./sisu.sh" "maven-resolver-provider/src/main/java"
1508 "build/classes/META-INF/sisu/javax.inject.Named")
1509 #t))
1510 (replace 'install
1511 (install-from-pom "maven-resolver-provider/pom.xml")))))
1512 (propagated-inputs
1513 (list maven-model
1514 maven-model-builder
1515 maven-resolver-spi
1516 maven-resolver-api
1517 maven-resolver-impl
1518 maven-resolver-util
1519 maven-builder-support
1520 maven-repository-metadata
1521 java-plexus-utils
1522 java-plexus-component-annotations
1523 java-guice
1524 java-javax-inject))))
1525
1526 (define-public maven-plugin-api
1527 (package
1528 (inherit maven-artifact)
1529 (name "maven-plugin-api")
1530 (arguments
1531 `(#:jar-name "maven-plugin-api.jar"
1532 #:source-dir "maven-plugin-api/src/main/java"
1533 #:jdk ,icedtea-8
1534 #:test-dir "maven-plugin-api/src/test"
1535 #:phases
1536 (modify-phases %standard-phases
1537 (add-before 'build 'generate-models
1538 (lambda* (#:key inputs #:allow-other-keys)
1539 (define (modello-single-mode file version mode)
1540 (invoke "java" "org.codehaus.modello.ModelloCli"
1541 file mode "maven-plugin-api/src/main/java" version
1542 "false" "true"))
1543 (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo"))
1544 (modello-single-mode file "1.0.0" "java")
1545 (modello-single-mode file "1.0.0" "xpp3-reader")
1546 (modello-single-mode file "1.0.0" "xpp3-writer"))
1547 #t))
1548 (replace 'install
1549 (install-from-pom "maven-plugin-api/pom.xml")))))
1550 (propagated-inputs
1551 `(("maven-artifact" ,maven-artifact)
1552 ("maven-model" ,maven-model)
1553 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1554 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1555 ("guice" ,java-guice)
1556 ("java-cglib" ,java-cglib)
1557 ("sisu-inject" ,java-eclipse-sisu-inject)
1558 ("javax-inject" ,java-javax-inject)
1559 ("utils" ,java-plexus-utils)))
1560 (native-inputs
1561 `(("modello" ,java-modello-core)
1562 ;; for modello:
1563 ("classworlds" ,java-plexus-classworlds)
1564 ("guava" ,java-guava)
1565 ("xbean" ,java-geronimo-xbean-reflect)
1566 ("build-api" ,java-plexus-build-api)
1567 ;; modello plugins:
1568 ("java" ,java-modello-plugins-java)
1569 ("xml" ,java-modello-plugins-xml)
1570 ("xpp3" ,java-modello-plugins-xpp3)
1571 ;; for tests
1572 ("java-junit" ,java-junit)))
1573 (description "Apache Maven is a software project management and comprehension
1574 tool. This package contains strictly the API for plugins -- composed of goals
1575 implemented by Mojos -- development.
1576
1577 A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor,
1578 generally generated from plugin sources using maven-plugin-plugin.")))
1579
1580 (define-public maven-core-bootstrap
1581 (hidden-package
1582 (package
1583 (inherit maven-artifact)
1584 (name "maven-core")
1585 (arguments
1586 `(#:jar-name "maven-core.jar"
1587 #:source-dir "src/main/java"
1588 #:jdk ,icedtea-8
1589 ;; Tests need maven-compat, which requires maven-core
1590 #:tests? #f
1591 #:phases
1592 (modify-phases %standard-phases
1593 (add-before 'configure 'chdir
1594 (lambda _
1595 ;; Required for generating components.xml in maven-core
1596 (chdir "maven-core")
1597 #t))
1598 (add-before 'build 'copy-resources
1599 (lambda _
1600 (mkdir-p "build/classes/")
1601 (copy-recursively "src/main/resources" "build/classes")
1602 #t))
1603 (add-after 'copy-resources 'fill-properties
1604 (lambda _
1605 ;; This file controls the output of some mvn subcommands, such as
1606 ;; mvn -version.
1607 (substitute* "build/classes/org/apache/maven/messages/build.properties"
1608 (("\\$\\{buildNumber\\}") "guix_build")
1609 (("\\$\\{timestamp\\}") "0")
1610 (("\\$\\{project.version\\}") ,(package-version maven-artifact))
1611 (("\\$\\{distributionId\\}") "apache-maven")
1612 (("\\$\\{distributionShortName\\}") "Maven")
1613 (("\\$\\{distributionName\\}") "Apache Maven"))
1614 #t))
1615 (add-before 'build 'generate-sisu-named
1616 (lambda _
1617 (mkdir-p "build/classes/META-INF/sisu")
1618 (chmod "../sisu.sh" #o755)
1619 (invoke "../sisu.sh" "src/main/java"
1620 "build/classes/META-INF/sisu/javax.inject.Named")
1621 #t))
1622 (add-before 'build 'generate-models
1623 (lambda* (#:key inputs #:allow-other-keys)
1624 (define (modello-single-mode file version mode)
1625 (invoke "java" "org.codehaus.modello.ModelloCli"
1626 file mode "src/main/java" version
1627 "false" "true"))
1628 (let ((file "src/main/mdo/toolchains.mdo"))
1629 (modello-single-mode file "1.1.0" "java")
1630 (modello-single-mode file "1.1.0" "xpp3-reader")
1631 (modello-single-mode file "1.1.0" "xpp3-writer"))
1632 #t))
1633 (add-before 'install 'fix-pom
1634 (lambda _
1635 (substitute* "pom.xml"
1636 (("<classifier>no_aop</classifier>") ""))
1637 #t))
1638 (replace 'install
1639 (install-from-pom "pom.xml")))))
1640 (propagated-inputs
1641 `(("maven-artifact" ,maven-artifact)
1642 ("maven-resolver-provider" ,maven-resolver-provider)
1643 ("maven-builder-support" ,maven-builder-support)
1644 ("maven-model" ,maven-model)
1645 ("maven-model-builder" ,maven-model-builder)
1646 ("maven-settings" ,maven-settings)
1647 ("maven-settings-builder" ,maven-settings-builder)
1648 ("maven-plugin-api" ,maven-plugin-api)
1649 ("maven-repository-metadata" ,maven-repository-metadata)
1650 ("maven-shared-utils" ,maven-shared-utils)
1651 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
1652 ("java-plexus-utils" ,java-plexus-utils)
1653 ("java-commons-lang3" ,java-commons-lang3)
1654 ("java-guava" ,java-guava)
1655 ("java-guice" ,java-guice)
1656 ("maven-resolver-api" ,maven-resolver-api)
1657 ("maven-resolver-spi" ,maven-resolver-spi)
1658 ("maven-resolver-util" ,maven-resolver-util)
1659 ("maven-resolver-impl" ,maven-resolver-impl)
1660 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1661 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1662 ("java-javax-inject" ,java-javax-inject)
1663 ("java-plexus-classworld" ,java-plexus-classworlds)))
1664 (native-inputs
1665 `(("java-modello-core" ,java-modello-core)
1666 ("java-cglib" ,java-cglib)
1667 ("java-plexus-classworlds" ,java-plexus-classworlds)
1668 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1669 ("java-plexus-build-api" ,java-plexus-build-api)
1670 ("java-modello-plugins-java" ,java-modello-plugins-java)
1671 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1672 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1673 ;; tests
1674 ("java-junit" ,java-junit)
1675 ("java-mockito-1" ,java-mockito-1)
1676 ("java-commons-jxpath" ,java-commons-jxpath)))
1677 (description "Apache Maven is a software project management and comprehension
1678 tool. This package contains the maven core classes managing the whole build
1679 process."))))
1680
1681 (define-public maven-core
1682 (package
1683 (inherit maven-core-bootstrap)
1684 (arguments
1685 (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
1686 ((#:phases phases)
1687 `(modify-phases ,phases
1688 (add-before 'build 'modify-metainf
1689 (lambda _
1690 (substitute* "build.xml"
1691 (("message=\"\"")
1692 (string-append "message=\"Implementation-Version: "
1693 (package-version maven) "\n\"")))
1694 #t))
1695 (add-before 'build 'add-maven-files
1696 (lambda _
1697 (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
1698 (copy-file "pom.xml"
1699 "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
1700 (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
1701 (lambda _
1702 (format #t "version=~a~%
1703 groupId=org.apache.maven~%
1704 artifactId=maven-core" ,(package-version maven-core-bootstrap))))
1705 #t))
1706 (add-after 'build 'generate-metadata
1707 (lambda _
1708 (define (components file)
1709 (let ((sxml (with-input-from-file file
1710 (lambda _ (xml->sxml (current-input-port)
1711 #:trim-whitespace? #t)))))
1712 ;; Select the list of <component>s inside the <component-set>
1713 ;; and <components>.
1714 ((@ (ice-9 match) match) sxml
1715 (('*TOP*
1716 ('*PI* foo ...)
1717 ('component-set
1718 ('components x ...))) x))))
1719 (use-modules (sxml simple))
1720 (delete-file "build/classes/META-INF/plexus/components.xml")
1721 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
1722 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
1723 "--source" "build/classes/META-INF/plexus"
1724 "--output" "build/classes/META-INF/plexus/components.t.xml"
1725 "--classes" "build/classes"
1726 "--descriptors" "build/classes")
1727 ;; Now we merge all other components from hand-written xml
1728 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
1729 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
1730 (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
1731 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
1732 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
1733 (lambda _
1734 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
1735 (sxml->xml
1736 `(component-set
1737 (components
1738 ,@(append generated-xml components-xml
1739 default-bindings-xml
1740 artifact-handlers-xml)))))))
1741 #t))
1742 (add-after 'generate-metadata 'fix-plugin-versions
1743 (lambda _
1744 ;; This file controls the default plugins used by Maven. Ensure
1745 ;; we use the versions we have packaged by default
1746 (substitute* '("build/classes/META-INF/plexus/default-bindings.xml"
1747 "build/classes/META-INF/plexus/components.xml")
1748 (("maven-install-plugin:[0-9.]+")
1749 (string-append "maven-install-plugin:"
1750 ,(package-version maven-install-plugin)))
1751 (("maven-resources-plugin:[0-9.]+")
1752 (string-append "maven-resources-plugin:"
1753 ,(package-version maven-resources-plugin)))
1754 (("maven-compiler-plugin:[0-9.]+")
1755 (string-append "maven-compiler-plugin:"
1756 ,(package-version maven-compiler-plugin)))
1757 (("maven-surefire-plugin:[0-9.]+")
1758 (string-append "maven-surefire-plugin:"
1759 ,(package-version maven-surefire-plugin)))
1760 (("maven-jar-plugin:[0-9.]+")
1761 (string-append "maven-jar-plugin:"
1762 ,(package-version maven-jar-plugin))))))
1763 (add-after 'fix-plugin-versions 'rebuild
1764 (lambda _
1765 (invoke "ant" "jar")
1766 #t))))))
1767 (native-inputs
1768 `(("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
1769 ("java-commons-cli" ,java-commons-cli)
1770 ("java-plexus-cli" ,java-plexus-cli)
1771 ("java-jdom2" ,java-jdom2)
1772 ("java-qdox" ,java-qdox)
1773 ("maven-core-boot" ,maven-core-bootstrap)
1774 ,@(package-native-inputs maven-core-bootstrap)))))
1775
1776 (define-public maven-slf4j-provider
1777 (package
1778 (inherit maven-artifact)
1779 (name "maven-slf4j-provider")
1780 (arguments
1781 `(#:jar-name "maven-slf4j-provider.jar"
1782 #:source-dir "maven-slf4j-provider/src/main/java"
1783 #:tests? #f; no tests
1784 #:phases
1785 (modify-phases %standard-phases
1786 (add-after 'unpack 'unpack-slf4j
1787 (lambda* (#:key inputs #:allow-other-keys)
1788 (mkdir-p "generated-sources")
1789 (with-directory-excursion "generated-sources"
1790 (invoke "tar" "xf" (assoc-ref inputs "java-slf4j-simple-source"))
1791 (for-each delete-file (find-files "." "StaticLoggerBinder.java")))
1792 (for-each
1793 (lambda (simple)
1794 (for-each
1795 (lambda (java)
1796 (copy-file java
1797 (string-append
1798 "maven-slf4j-provider/src/main/java/org/slf4j/impl/"
1799 (basename java))))
1800 (find-files (string-append simple "/src/main/java/") "\\.java$")))
1801 (find-files "generated-sources" "slf4j-simple" #:directories? #t))))
1802 (replace 'install
1803 (install-from-pom "maven-slf4j-provider/pom.xml")))))
1804 (inputs
1805 `(("java-slf4j-api" ,java-slf4j-api)
1806 ("java-slf4j-simple-source" ,(package-source java-slf4j-simple))
1807 ("maven-shared-utils" ,maven-shared-utils)))
1808 (native-inputs (list unzip))))
1809
1810 (define-public maven-embedder
1811 (package
1812 (inherit maven-artifact)
1813 (name "maven-embedder")
1814 (arguments
1815 `(#:jar-name "maven-embedder.jar"
1816 #:source-dir "maven-embedder/src/main/java"
1817 #:test-dir "maven-embedder/src/test"
1818 #:test-exclude (list "**/MavenCliTest.java")
1819 #:jdk ,icedtea-8
1820 #:phases
1821 (modify-phases %standard-phases
1822 (add-before 'build 'generate-sisu-named
1823 (lambda _
1824 (mkdir-p "build/classes/META-INF/sisu")
1825 (chmod "sisu.sh" #o755)
1826 (invoke "./sisu.sh" "maven-embedder/src/main/java"
1827 "build/classes/META-INF/sisu/javax.inject.Named")
1828 #t))
1829 (add-before 'build 'copy-resources
1830 (lambda _
1831 (mkdir-p "build/classes/")
1832 (copy-recursively "maven-embedder/src/main/resources" "build/classes")))
1833 (add-before 'build 'generate-models
1834 (lambda* (#:key inputs #:allow-other-keys)
1835 (define (modello-single-mode file version mode)
1836 (invoke "java" "org.codehaus.modello.ModelloCli"
1837 file mode "maven-embedder/src/main/java" version
1838 "false" "true"))
1839 (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo"))
1840 (modello-single-mode file "1.0.0" "java")
1841 (modello-single-mode file "1.0.0" "xpp3-reader")
1842 (modello-single-mode file "1.0.0" "xpp3-writer"))
1843 #t))
1844 (add-before 'check 'fix-test-paths
1845 (lambda _
1846 (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java"
1847 (("target/test-classes") "build/test-classes"))
1848 #t))
1849 (add-before 'check 'fix-test-compilation
1850 (lambda _
1851 ;; Tests are in the java/ subdir. Other subdirectories contain
1852 ;; additional test plugins, with duplicate classes, so we can't
1853 ;; compile them. Also, they are meant to be built with maven, to
1854 ;; test its build process.
1855 (substitute* "build.xml"
1856 (("srcdir=\"maven-embedder/src/test\"")
1857 "srcdir=\"maven-embedder/src/test/java\""))
1858 #t))
1859 (add-before 'check 'disable-failing-test
1860 (lambda _
1861 (delete-file "maven-embedder/src/test/java/org/apache/maven/cli/event/ExecutionEventLoggerTest.java")))
1862 (add-before 'install 'fix-pom
1863 (lambda _
1864 (substitute* "maven-embedder/pom.xml"
1865 (("jsr250-api") "javax.annotation-api"))))
1866 (replace 'install
1867 (install-from-pom "maven-embedder/pom.xml")))))
1868 (propagated-inputs
1869 `(("maven-core" ,maven-core)
1870 ("maven-artifact" ,maven-artifact)
1871 ("maven-plugin-api" ,maven-plugin-api)
1872 ("maven-builder-support" ,maven-builder-support)
1873 ("maven-model" ,maven-model)
1874 ("maven-model-builder" ,maven-model-builder)
1875 ("maven-settings" ,maven-settings)
1876 ("maven-settings-builder" ,maven-settings-builder)
1877 ("maven-shared-utils" ,maven-shared-utils)
1878 ("maven-slf4j-provider" ,maven-slf4j-provider)
1879 ("java-plexus-classworlds" ,java-plexus-classworlds)
1880 ("java-plexus-util" ,java-plexus-utils)
1881 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1882 ("java-plexus-cipher" ,java-plexus-cipher)
1883 ("java-plexus-component-annotations" ,java-plexus-component-annotations)
1884 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
1885 ("maven-resolevr-util" ,maven-resolver-util)
1886 ("maven-resolevr-api" ,maven-resolver-api)
1887 ("java-logback-core" ,java-logback-core)
1888 ("java-logback-classic" ,java-logback-classic)
1889 ("java-commons-cli" ,java-commons-cli)
1890 ("java-commons-io" ,java-commons-io)
1891 ("java-commons-lang3" ,java-commons-lang3)
1892 ("java-guava" ,java-guava)
1893 ("java-guice" ,java-guice)
1894 ("java-javax-inject" ,java-javax-inject)
1895 ("java-slf4j-api" ,java-slf4j-api)
1896 ("java-jsr250" ,java-jsr250)))
1897 (native-inputs
1898 `(("java-asm-8" ,java-asm-8)
1899 ("java-modello-core" ,java-modello-core)
1900 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
1901 ("java-plexus-build-api" ,java-plexus-build-api)
1902 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
1903 ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
1904 ("java-cglib" ,java-cglib)
1905 ("java-modello-plugins-java" ,java-modello-plugins-java)
1906 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
1907 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
1908 ;; tests
1909 ("java-junit" ,java-junit)
1910 ("java-objenesis" ,java-objenesis)
1911 ("java-mockito-1" ,java-mockito-1)
1912 ("java-hamcrest-core" ,java-hamcrest-core)))
1913 (description "Apache Maven is a software project management and comprehension
1914 tool. This package contains a Maven embeddable component, with CLI and
1915 logging support.")))
1916
1917 (define-public maven-compat
1918 (package
1919 (inherit maven-artifact)
1920 (name "maven-compat")
1921 (arguments
1922 `(#:jar-name "maven-compat.jar"
1923 #:source-dir "src/main/java"
1924 #:jdk ,icedtea-8
1925 #:test-dir "src/test"
1926 #:phases
1927 (modify-phases %standard-phases
1928 ;; Tests assume we're in this directory
1929 (add-before 'configure 'chdir
1930 (lambda _
1931 (chdir "maven-compat")
1932 #t))
1933 (add-before 'build 'recreate-removed-jar
1934 (lambda _
1935 (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar"
1936 (const #t))
1937 (with-directory-excursion "src/test/resources"
1938 (with-output-to-file "artifact-install/artifact-1.0.jar"
1939 (lambda _
1940 (format #t "dummy~%")))
1941 (for-each
1942 (lambda (file)
1943 (with-output-to-file file
1944 (lambda _
1945 (format #t "foo~%"))))
1946 '("local-repo/maven-test/jars/maven-test-a-1.0.jar"
1947 "local-repo/maven-test/jars/maven-test-c-1.0.jar"
1948 "local-repo/maven-test/jars/maven-test-d-1.0.jar"
1949 "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar"
1950 "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar"
1951 "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar"
1952 "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar"
1953 "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar"
1954 "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar"
1955 "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar"
1956 "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar"
1957 "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar"
1958 "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar"
1959 "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar"
1960 "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar"
1961 "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar"
1962 "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar"
1963 "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar"
1964 "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar"
1965 "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar"
1966 "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar"
1967 "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar"
1968 "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar"
1969 "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar"
1970 "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar"
1971 "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar"
1972 "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar"
1973 "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar"
1974 "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar"
1975 "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar"
1976 "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar"
1977 "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar"
1978 "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar"
1979 "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar"
1980 "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar"
1981 "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar"
1982 "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar"
1983 "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar"
1984 "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar"
1985 "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar"
1986 "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar"
1987 "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar"
1988 "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar"
1989 "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar"
1990 "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar"))
1991 (with-directory-excursion "local-repo/snapshot-test/jars"
1992 (for-each
1993 (lambda (file)
1994 (with-output-to-file file
1995 (lambda _
1996 ;; No end-of-line
1997 (format #t "local"))))
1998 '("maven-snapshot-e-1.0-SNAPSHOT.jar"
1999 "maven-snapshot-b-1.0-SNAPSHOT.jar"
2000 "maven-snapshot-a-1.0-SNAPSHOT.jar"))))
2001 (for-each
2002 (lambda (letter)
2003 (with-directory-excursion
2004 (string-append "src/test/remote-repo/org/apache/maven/its/"
2005 letter "/0.1")
2006 (let ((dir (string-append "META-INF/maven/org.apache.maven.its/"
2007 letter)))
2008 (mkdir-p dir)
2009 (copy-file (string-append letter "-0.1.pom")
2010 (string-append dir "/pom.xml"))
2011 (with-output-to-file (string-append dir "/pom.properties")
2012 (lambda _
2013 (format #t "version=0.1~%")
2014 (format #t "groupId=org.apache.maven.its")
2015 (format #t (string-append "artifactId=" letter))))
2016 (with-output-to-file "META-INF/MANIFEST.MF"
2017 (lambda _
2018 (format #t "Manifest-Version: 1.0~%"))))
2019 (invoke "jar" "cmf" "META-INF/MANIFEST.MF"
2020 (string-append letter "-0.1.jar") "META-INF")))
2021 '("a" "b"))
2022 #t))
2023 (add-before 'build 'generate-models
2024 (lambda* (#:key inputs #:allow-other-keys)
2025 (define (modello-single-mode file version mode)
2026 (invoke "java" "org.codehaus.modello.ModelloCli"
2027 file mode "src/main/java" version
2028 "false" "true"))
2029 (let ((file "src/main/mdo/profiles.mdo"))
2030 (modello-single-mode file "1.0.0" "java")
2031 (modello-single-mode file "1.0.0" "xpp3-reader")
2032 (modello-single-mode file "1.0.0" "xpp3-writer"))
2033 (let ((file "src/main/mdo/paramdoc.mdo"))
2034 (modello-single-mode file "1.0.0" "java")
2035 (modello-single-mode file "1.0.0" "xpp3-reader")
2036 (modello-single-mode file "1.0.0" "xpp3-writer"))
2037 #t))
2038 (add-before 'build 'copy-resources
2039 (lambda _
2040 (mkdir-p "build/classes/")
2041 (copy-recursively "src/main/resources" "build/classes")))
2042 (add-after 'build 'generate-metadata
2043 (lambda _
2044 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2045 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2046 "--source" "src/main/java"
2047 "--output" "build/classes/META-INF/plexus/components.xml"
2048 "--classes" "build/classes"
2049 "--descriptors" "build/classes/META-INF")
2050 #t))
2051 (add-before 'check 'build-tests
2052 (lambda _
2053 (invoke "ant" "compile-tests")
2054 #t))
2055 (add-after 'build-tests 'generate-test-metadata
2056 (lambda _
2057 (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
2058 ":build/classes"
2059 ":build/test-classes")
2060 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2061 "--source" "src/test/java"
2062 "--output" "build/test-classes/META-INF/plexus/components.xml"
2063 "--classes" "build/test-classes"
2064 "--descriptors" "build/test-classes/META-INF")
2065 #t))
2066 (add-before 'check 'disable-failing-test
2067 (lambda _
2068 (delete-file "src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java")))
2069 (add-after 'generate-metadata 'rebuild
2070 (lambda _
2071 (invoke "ant" "jar")
2072 #t))
2073 (replace 'install
2074 (install-from-pom "pom.xml")))))
2075 (propagated-inputs
2076 (list maven-artifact
2077 maven-repository-metadata
2078 maven-builder-support
2079 maven-model
2080 maven-model-builder
2081 maven-settings
2082 maven-settings-builder
2083 maven-core
2084 maven-wagon-provider-api
2085 maven-wagon-file
2086 maven-resolver-api
2087 maven-resolver-util
2088 maven-resolver-spi
2089 java-plexus-interpolation))
2090 (native-inputs
2091 `(("java-modello-core" ,java-modello-core)
2092 ("java-plexus-utils" ,java-plexus-utils)
2093 ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
2094 ("java-plexus-classworlds" ,java-plexus-classworlds)
2095 ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
2096 ("java-plexus-build-api" ,java-plexus-build-api)
2097 ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
2098 ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
2099 ("java-javax-inject" ,java-javax-inject)
2100 ("java-guice" ,java-guice)
2101 ("java-guava" ,java-guava)
2102 ("java-cglib" ,java-cglib)
2103 ("java-asm" ,java-asm)
2104 ("java-modello-plugins-java" ,java-modello-plugins-java)
2105 ("java-modello-plugins-xml" ,java-modello-plugins-xml)
2106 ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
2107 ;; metadata
2108 ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
2109 ("java-commons-cli" ,java-commons-cli)
2110 ("java-plexus-cli" ,java-plexus-cli)
2111 ("java-jdom2" ,java-jdom2)
2112 ("maven-plugin-api" ,maven-plugin-api)
2113 ("java-qdox" ,java-qdox)
2114 ;; tests
2115 ("java-plexus-cipher" ,java-plexus-cipher)
2116 ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
2117 ("java-jsr250" ,java-jsr250)
2118 ("java-cdi-api" ,java-cdi-api)
2119 ("java-junit" ,java-junit)
2120 ("maven-resolver-impl" ,maven-resolver-impl)
2121 ("maven-resolver-connector-basic" ,maven-resolver-connector-basic)
2122 ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon)
2123 ("java-commons-lang3" ,java-commons-lang3)
2124 ("java-aop" ,java-aopalliance)
2125 ("maven-resolver-provider" ,maven-resolver-provider)
2126 ("maven-slf4j-provider" ,maven-slf4j-provider)
2127 ("java-slf4j-api" ,java-slf4j-api)
2128 ,@(package-inputs java-slf4j-api)))
2129 (description "Apache Maven is a software project management and comprehension
2130 tool. This package contains Maven2 classes maintained as compatibility
2131 layer for plugins that need to keep Maven2 compatibility.")))
2132
2133 (define-public maven
2134 (package
2135 (inherit maven-artifact)
2136 (name "maven")
2137 (arguments
2138 `(#:phases
2139 (modify-phases %standard-phases
2140 (replace 'build
2141 (lambda* (#:key inputs #:allow-other-keys)
2142 ;; Recreate the configuration for the loader
2143 (with-output-to-file "apache-maven/src/bin/m2.conf"
2144 (lambda _
2145 (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%")
2146 (format #t "~%")
2147 (format #t "set maven.conf default ${maven.home}/conf~%")
2148 (format #t "~%")
2149 (format #t "[plexus.core]~%")
2150 (format #t "load ${maven.conf}/logging~%")
2151 (format #t "optionally ${maven.home}/lib/ext/*.jar~%")
2152 ;; Reference every jar so plexus-classworlds can find them.
2153 (for-each
2154 (lambda (dependency)
2155 (for-each
2156 (lambda (file)
2157 (format #t "load ~a~%" file))
2158 (find-files (assoc-ref inputs dependency) ".*.jar$")))
2159 '("maven-artifact" "maven-embedder" "maven-core" "maven-compat"
2160 "maven-builder-support" "maven-model" "maven-model-builder"
2161 "maven-settings" "maven-settings-builder" "maven-plugin-api"
2162 "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
2163 "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
2164 "maven-resolver-connector-basic" "maven-resolver-provider"
2165 "maven-resolver-transport-wagon" "maven-slf4j-provider"
2166 "maven-wagon-provider-api"
2167 "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
2168 "java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
2169 "maven-wagon-http-shared" "maven-wagon-tck-http"
2170 "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance"
2171 "java-cglib" "java-asm" "java-eclipse-sisu-inject"
2172 "java-javax-inject" "java-plexus-component-annotations"
2173 "java-plexus-utils" "java-plexus-interpolation"
2174 "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
2175 "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
2176 "java-commons-io" "java-commons-lang3" "java-slf4j-api"))))
2177 (substitute* "apache-maven/src/bin/mvn"
2178 (("cygwin=false;")
2179 (string-append
2180 "CLASSPATH="
2181 (car (find-files
2182 (assoc-ref inputs "java-plexus-classworlds")
2183 ".*.jar"))
2184 "\ncygwin=false;"))
2185 (("-classpath.*") "-classpath ${CLASSPATH} \\\n"))
2186 #t))
2187 (delete 'check)
2188 (replace 'install
2189 (lambda* (#:key outputs #:allow-other-keys)
2190 (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))
2191 (conf (string-append (assoc-ref outputs "out") "/conf/")))
2192 (mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
2193 (for-each (lambda (file)
2194 (install-file (string-append "apache-maven/src/bin/" file)
2195 bin)
2196 (chmod (string-append bin file) #o755))
2197 '("mvn" "mvnDebug" "mvnyjp"))
2198 (install-file "apache-maven/src/bin/m2.conf" bin)
2199 (copy-recursively "apache-maven/src/conf" conf))
2200 #t)))))
2201 (inputs
2202 (list java-plexus-classworlds
2203 maven-artifact
2204 maven-embedder
2205 maven-core
2206 maven-compat
2207 maven-builder-support
2208 maven-model
2209 maven-model-builder
2210 maven-settings
2211 maven-settings-builder
2212 maven-plugin-api
2213 maven-repository-metadata
2214 maven-shared-utils
2215 maven-resolver-api
2216 maven-resolver-spi
2217 maven-resolver-util
2218 maven-resolver-impl
2219 maven-resolver-connector-basic
2220 maven-resolver-provider
2221 maven-resolver-transport-wagon
2222 maven-slf4j-provider
2223 maven-wagon-provider-api
2224 maven-wagon-file
2225 maven-wagon-http
2226 java-commons-logging-minimal
2227 java-httpcomponents-httpclient
2228 java-httpcomponents-httpcore
2229 maven-wagon-http-shared
2230 maven-wagon-tck-http
2231 java-eclipse-sisu-plexus
2232 java-guice
2233 java-aopalliance
2234 java-cglib
2235 java-asm-8
2236 java-eclipse-sisu-inject
2237 java-javax-inject
2238 java-plexus-component-annotations
2239 java-plexus-utils
2240 java-plexus-interpolation
2241 java-plexus-sec-dispatcher
2242 java-plexus-cipher
2243 java-guava
2244 java-jansi
2245 java-jsr250
2246 java-cdi-api
2247 java-commons-cli
2248 java-commons-io
2249 java-commons-lang3
2250 java-slf4j-api))
2251 (propagated-inputs
2252 (list coreutils which))
2253 (description "Apache Maven is a software project management and comprehension
2254 tool. Based on the concept of a project object model: builds, dependency
2255 management, documentation creation, site publication, and distribution
2256 publication are all controlled from the @file{pom.xml} declarative file. Maven
2257 can be extended by plugins to utilise a number of other development tools for
2258 reporting or the build process.")))
2259
2260 ;; Many plugins require maven 3.0 as a dependency.
2261 (define maven-3.0-pom
2262 (package
2263 (inherit maven-pom)
2264 (version "3.0")
2265 (source (origin
2266 (method git-fetch)
2267 (uri (git-reference
2268 (url "https://github.com/apache/maven")
2269 (commit (string-append "maven-" version))))
2270 (file-name (git-file-name "maven" version))
2271 (sha256
2272 (base32
2273 "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
2274 (modules '((guix build utils)))
2275 (snippet
2276 '(begin
2277 (for-each delete-file (find-files "." "\\.jar$"))
2278 (for-each (lambda (file) (chmod file #o644))
2279 (find-files "." "."))
2280 #t))
2281 (patches
2282 (search-patches "maven-generate-component-xml.patch"
2283 "maven-generate-javax-inject-named.patch"))))
2284 (propagated-inputs
2285 `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
2286
2287 (define-public maven-3.0-artifact
2288 (package
2289 (inherit maven-artifact)
2290 (version (package-version maven-3.0-pom))
2291 (source (package-source maven-3.0-pom))
2292 (propagated-inputs
2293 (map
2294 (lambda (input)
2295 (if (equal? (car input) "maven-pom")
2296 `("maven-pom" ,maven-3.0-pom)
2297 input))
2298 (package-propagated-inputs maven-artifact)))))
2299
2300 (define-public maven-3.0-model
2301 (package
2302 (inherit maven-model)
2303 (version (package-version maven-3.0-pom))
2304 (source (package-source maven-3.0-pom))
2305 (propagated-inputs
2306 (map
2307 (lambda (input)
2308 (if (equal? (car input) "maven-pom")
2309 `("maven-pom" ,maven-3.0-pom)
2310 input))
2311 (package-propagated-inputs maven-artifact)))
2312 (arguments
2313 `(#:jar-name "maven-model.jar"
2314 #:source-dir "maven-model/src/main/java"
2315 #:test-dir "maven-model/src/test"
2316 #:modules
2317 ((guix build ant-build-system)
2318 (guix build java-utils)
2319 (guix build syscalls)
2320 (guix build utils))
2321 #:phases
2322 (modify-phases %standard-phases
2323 (add-after 'configure 'use-newer-model
2324 (lambda* (#:key inputs #:allow-other-keys)
2325 ;; The model has almost not changed, but the newer version is
2326 ;; needed to prevent an error in the newer modello we have
2327 (let ((source (assoc-ref inputs "maven-source"))
2328 (dir (mkdtemp! "maven-source-XXXXXXXX")))
2329 (with-directory-excursion dir
2330 (invoke "tar" "xf" source)
2331 (copy-file (car (find-files "." "maven.mdo"))
2332 "../maven-model/src/main/mdo/maven.mdo")))
2333 #t))
2334 (add-before 'build 'generate-models
2335 (lambda* (#:key inputs #:allow-other-keys)
2336 (define (modello-single-mode file version mode)
2337 (invoke "java" "org.codehaus.modello.ModelloCli"
2338 file mode "maven-model/src/main/java" version
2339 "false" "true" "UTF-8"))
2340 (let ((file "maven-model/src/main/mdo/maven.mdo"))
2341 (modello-single-mode file "4.0.0" "java")
2342 (modello-single-mode file "4.0.0" "xpp3-reader")
2343 (modello-single-mode file "4.0.0" "xpp3-writer")
2344 (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
2345 #t))
2346 (replace 'install
2347 (install-from-pom "maven-model/pom.xml")))))
2348 (inputs
2349 `(("maven-source" ,(package-source maven-pom))
2350 ,@(package-inputs maven-model)))))
2351
2352 (define-public maven-3.0-settings
2353 (package
2354 (inherit maven-settings)
2355 (version (package-version maven-3.0-pom))
2356 (source (package-source maven-3.0-pom))
2357 (propagated-inputs
2358 (map
2359 (lambda (input)
2360 (if (equal? (car input) "maven-pom")
2361 `("maven-pom" ,maven-3.0-pom)
2362 input))
2363 (package-propagated-inputs maven-settings)))))
2364
2365 (define-public maven-3.0-settings-builder
2366 (package
2367 (inherit maven-settings-builder)
2368 (version (package-version maven-3.0-pom))
2369 (source (package-source maven-3.0-pom))
2370 (arguments
2371 (substitute-keyword-arguments (package-arguments maven-settings-builder)
2372 ((#:phases phases)
2373 `(modify-phases ,phases
2374 (add-before 'build 'generate-components.xml
2375 (lambda _
2376 (mkdir-p "build/classes/META-INF/plexus")
2377 (chmod "components.sh" #o755)
2378 (invoke "./components.sh" "maven-settings-builder/src/main/java"
2379 "build/classes/META-INF/plexus/components.xml")))))))
2380 (propagated-inputs
2381 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2382 ,@(filter
2383 (lambda (a) a)
2384 (map
2385 (lambda (input)
2386 (match (car input)
2387 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2388 ("maven-settings" `("maven-settings" ,maven-3.0-settings))
2389 ("maven-builder-support" #f)
2390 ("java-plexus-sec-dispatcher"
2391 `("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher-1.4))
2392 (_ input)))
2393 (package-propagated-inputs maven-settings-builder)))))))
2394
2395 (define-public maven-3.0-model-builder
2396 (package
2397 (inherit maven-model-builder)
2398 (version (package-version maven-3.0-pom))
2399 (source (package-source maven-3.0-pom))
2400 (arguments
2401 (substitute-keyword-arguments (package-arguments maven-model-builder)
2402 ((#:phases phases)
2403 `(modify-phases ,phases
2404 (add-before 'build 'generate-components.xml
2405 (lambda _
2406 (mkdir-p "build/classes/META-INF/plexus")
2407 (chmod "../components.sh" #o755)
2408 (invoke "../components.sh" "src/main/java"
2409 "build/classes/META-INF/plexus/components.xml")))
2410 (add-before 'check 'remove-failing-test
2411 (lambda _
2412 (delete-file "src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java")))))))
2413 (propagated-inputs
2414 `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
2415 ,@(filter
2416 (lambda (a) a)
2417 (map
2418 (lambda (input)
2419 (match (car input)
2420 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2421 ("maven-model" `("maven-model" ,maven-3.0-model))
2422 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2423 ("maven-builder-support" #f)
2424 (_ input)))
2425 (package-propagated-inputs maven-model-builder)))))))
2426
2427 (define-public maven-3.0-plugin-api
2428 (package
2429 (inherit maven-plugin-api)
2430 (version (package-version maven-3.0-pom))
2431 (source (package-source maven-3.0-pom))
2432 (arguments
2433 (substitute-keyword-arguments (package-arguments maven-plugin-api)
2434 ((#:phases phases)
2435 `(modify-phases ,phases
2436 (add-before 'install 'fix-pom
2437 (lambda _
2438 (substitute* "maven-plugin-api/pom.xml"
2439 (("org.sonatype.sisu") "org.codehaus.plexus")
2440 (("sisu-inject-plexus") "plexus-container-default"))
2441 #t))))))
2442 (propagated-inputs
2443 (map
2444 (lambda (input)
2445 (match (car input)
2446 ("maven-pom" `("maven-pom" ,maven-3.0-pom))
2447 ("maven-artifact" `("maven-artifact" ,maven-3.0-artifact))
2448 ("maven-model" `("maven-model" ,maven-3.0-model))
2449 (_ input)))
2450 (package-propagated-inputs maven-model-builder)))
2451 (native-inputs
2452 (modify-inputs (package-native-inputs maven-plugin-api)
2453 (prepend java-plexus-container-default)))))
2454
2455 (define-public maven-3.0-repository-metadata
2456 (package
2457 (inherit maven-repository-metadata)
2458 (version (package-version maven-3.0-pom))
2459 (source (package-source maven-3.0-pom))
2460 (propagated-inputs
2461 (map
2462 (lambda (input)
2463 (if (equal? (car input) "maven-pom")
2464 `("maven-pom" ,maven-3.0-pom)
2465 input))
2466 (package-propagated-inputs maven-repository-metadata)))))
2467
2468 (define-public maven-3.0-aether-provider
2469 (package
2470 (inherit maven-3.0-pom)
2471 (name "maven-aether-provider")
2472 (arguments
2473 `(#:jar-name "maven-aether-provider.jar"
2474 #:source-dir "maven-aether-provider/src/main/java"
2475 #:tests? #f; no tests in 3.0
2476 #:phases
2477 (modify-phases %standard-phases
2478 (add-after 'build 'generate-metadata
2479 (lambda _
2480 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2481 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2482 "--source" "src/main/java"
2483 "--output" "build/classes/META-INF/plexus/components.xml"
2484 "--classes" "build/classes"
2485 "--descriptors" "build/classes/META-INF")
2486 #t))
2487 (add-after 'generate-metadata 'rebuild
2488 (lambda _
2489 (invoke "ant" "jar")
2490 #t))
2491 (replace 'install
2492 (install-from-pom "maven-aether-provider/pom.xml")))))
2493 (propagated-inputs
2494 `(("maven-model" ,maven-3.0-model)
2495 ("maven-model-builder" ,maven-3.0-model-builder)
2496 ("maven-repository-metadata" ,maven-3.0-repository-metadata)
2497 ("java-sonatype-aether-api" ,java-sonatype-aether-api)
2498 ("java-sonatype-aether-spi" ,java-sonatype-aether-spi)
2499 ("java-sonatype-aether-impl" ,java-sonatype-aether-impl)
2500 ("java-plexus-component-annotation" ,java-plexus-component-annotations)
2501 ("java-plexus-utils" ,java-plexus-utils)
2502 ("maven-pom" ,maven-3.0-pom)))
2503 (native-inputs
2504 (list java-plexus-component-metadata))))
2505
2506 (define-public maven-3.0-core
2507 (package
2508 (inherit maven-core)
2509 (version (package-version maven-3.0-pom))
2510 (source (package-source maven-3.0-pom))
2511 (arguments
2512 `(#:jar-name "maven-core.jar"
2513 #:source-dir "src/main/java"
2514 #:tests? #f
2515 #:phases
2516 (modify-phases %standard-phases
2517 (add-before 'configure 'chdir
2518 (lambda _
2519 ;; Required for generating components.xml in maven-core
2520 (chdir "maven-core")
2521 #t))
2522 (add-before 'build 'generate-models
2523 (lambda* (#:key inputs #:allow-other-keys)
2524 (define (modello-single-mode file version mode)
2525 (invoke "java" "org.codehaus.modello.ModelloCli"
2526 file mode "src/main/java" version
2527 "false" "true" "UTF-8"))
2528 (let ((file "src/main/mdo/toolchains.mdo"))
2529 (modello-single-mode file "1.0.0" "java")
2530 (modello-single-mode file "1.0.0" "xpp3-reader")
2531 (modello-single-mode file "1.0.0" "xpp3-writer"))
2532 #t))
2533 (add-before 'build 'copy-resources
2534 (lambda _
2535 (mkdir-p "build/classes/")
2536 (copy-recursively "src/main/resources" "build/classes")
2537 #t))
2538 (add-after 'build 'generate-metadata
2539 (lambda _
2540 (define (components file)
2541 (let ((sxml (with-input-from-file file
2542 (lambda _ (xml->sxml (current-input-port)
2543 #:trim-whitespace? #t)))))
2544 ;; Select the list of <component>s inside the <component-set>
2545 ;; and <components>.
2546 ((@ (ice-9 match) match) sxml
2547 (('*TOP*
2548 ('*PI* foo ...)
2549 ('component-set
2550 ('components x ...))) x))))
2551 (use-modules (sxml simple))
2552 (delete-file "build/classes/META-INF/plexus/components.xml")
2553 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
2554 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
2555 "--source" "build/classes/META-INF/plexus"
2556 "--output" "build/classes/META-INF/plexus/components.t.xml"
2557 "--classes" "build/classes"
2558 "--descriptors" "build/classes")
2559 ;; Now we merge all other components from hand-written xml
2560 (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
2561 (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
2562 (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
2563 (with-output-to-file "build/classes/META-INF/plexus/components.xml"
2564 (lambda _
2565 (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
2566 (sxml->xml
2567 `(component-set
2568 (components
2569 ,@(append generated-xml components-xml
2570 artifact-handlers-xml)))))))
2571 #t))
2572 (add-after 'generate-metadata 'rebuild
2573 (lambda _
2574 (invoke "ant" "jar")
2575 #t))
2576 (add-before 'install 'fix-pom
2577 (lambda _
2578 (substitute* "pom.xml"
2579 (("org.sonatype.sisu") "org.codehaus.plexus")
2580 (("sisu-inject-plexus") "plexus-container-default"))
2581 #t))
2582 (replace 'install
2583 (install-from-pom "pom.xml")))))
2584 (propagated-inputs
2585 (list maven-3.0-model
2586 maven-3.0-settings
2587 maven-3.0-settings-builder
2588 maven-3.0-repository-metadata
2589 maven-3.0-artifact
2590 maven-3.0-model-builder
2591 maven-3.0-aether-provider
2592 java-sonatype-aether-impl
2593 java-sonatype-aether-api
2594 java-sonatype-aether-util
2595 java-plexus-interpolation
2596 java-plexus-utils
2597 java-plexus-classworlds
2598 java-plexus-component-annotations
2599 java-plexus-container-default
2600 java-plexus-sec-dispatcher-1.4
2601 maven-3.0-pom))))
2602
2603 (define-public maven-3.0-compat
2604 (package
2605 (inherit maven-compat)
2606 (version (package-version maven-3.0-pom))
2607 (source (package-source maven-3.0-pom))
2608 (arguments
2609 `(#:tests? #f ;require an old version of java-easymock
2610 ,@(substitute-keyword-arguments (package-arguments maven-compat)
2611 ((#:phases phases)
2612 `(modify-phases ,phases
2613 (add-before 'install 'fix-pom
2614 (lambda _
2615 (substitute* "pom.xml"
2616 (("org.sonatype.sisu") "org.codehaus.plexus")
2617 (("sisu-inject-plexus") "plexus-container-default"))
2618 #t))
2619 (delete 'build-tests))))))
2620 (propagated-inputs
2621 (list maven-3.0-model
2622 maven-3.0-model-builder
2623 maven-3.0-settings
2624 maven-3.0-settings-builder
2625 maven-3.0-artifact
2626 maven-3.0-core
2627 maven-3.0-aether-provider
2628 maven-3.0-repository-metadata
2629 java-sonatype-aether-api
2630 java-sonatype-aether-util
2631 java-sonatype-aether-impl
2632 java-plexus-utils
2633 java-plexus-interpolation
2634 java-eclipse-sisu-plexus
2635 java-plexus-component-annotations
2636 java-plexus-container-default
2637 maven-wagon-provider-api
2638 maven-3.0-pom))))
2639
2640 (define-public maven-shared-utils-3.0
2641 (package
2642 (inherit maven-shared-utils)
2643 (version "3.0.0")
2644 (source (origin
2645 (method url-fetch)
2646 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2647 "maven-shared-utils-" version "-source-release.zip"))
2648 (sha256
2649 (base32
2650 "0qm8y85kip2hyhnhlkqgj0rhmf83z07s7l7gzsfl5dzl3kvp8nal"))))
2651 (propagated-inputs
2652 (modify-inputs (package-propagated-inputs maven-shared-utils)
2653 (prepend maven-3.0-core maven-components-parent-pom-21)))))
2654
2655 (define-public maven-shared-utils-3.1
2656 (package
2657 (inherit maven-shared-utils)
2658 (version "3.1.0")
2659 (source (origin
2660 (method url-fetch)
2661 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
2662 "maven-shared-utils-" version "-source-release.zip"))
2663 (sha256
2664 (base32
2665 "0vfaas4g09ch0agrd1dcxcmhdd3w971ssvfr9mx9gi2lp5nv8w66"))))))
2666
2667 (define-public maven-shared-io
2668 (package
2669 (name "maven-shared-io")
2670 (version "3.0.0")
2671 (source (origin
2672 (method url-fetch)
2673 (uri (string-append "mirror://apache/maven/shared/"
2674 "maven-shared-io-" version
2675 "-source-release.zip"))
2676 (sha256
2677 (base32
2678 "0hsyll8gg581802xhs4achdz8fpmfz7y02abx9s4mb8bc6yfh229"))))
2679 (build-system ant-build-system)
2680 (arguments
2681 `(#:jar-name "maven-shared-io.jar"
2682 #:source-dir "src/main/java"
2683 #:test-dir "src/test"
2684 #:phases
2685 (modify-phases %standard-phases
2686 (add-before 'build 'copy-resources
2687 (lambda _
2688 (copy-recursively "src/main/resources" "build/classes/")
2689 (copy-recursively "src/test/resources" "build/test-classes/")
2690 #t))
2691 (replace 'install
2692 (install-from-pom "pom.xml")))))
2693 (propagated-inputs
2694 (list maven-3.0-artifact
2695 maven-3.0-compat
2696 maven-3.0-plugin-api
2697 maven-shared-utils
2698 maven-wagon-provider-api
2699 java-plexus-utils
2700 maven-components-parent-pom-22))
2701 (native-inputs
2702 (list unzip java-junit java-easymock))
2703 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2704 (synopsis "Tree-based API for resolution of Maven project dependencies")
2705 (description "This package provides a tree-based API for resolution of
2706 Maven project dependencies.")
2707 (license license:asl2.0)))
2708
2709 (define-public maven-file-management
2710 (package
2711 (name "maven-file-management")
2712 (version "3.0.0")
2713 (source (origin
2714 (method url-fetch)
2715 (uri (string-append "mirror://apache/maven/shared/"
2716 "file-management-" version
2717 "-source-release.zip"))
2718 (sha256
2719 (base32
2720 "0wisz6sm67axrwvx8a75mb9s03h7kzkzfw8j3aaa4sx4k9ph58da"))))
2721 (build-system ant-build-system)
2722 (arguments
2723 `(#:jar-name "maven-file-management.jar"
2724 #:source-dir "src/main/java"
2725 #:phases
2726 (modify-phases %standard-phases
2727 (add-before 'build 'copy-resources
2728 (lambda _
2729 (copy-recursively "src/main/resources" "build/classes/")
2730 #t))
2731 (add-before 'build 'generate-models
2732 (lambda* (#:key inputs #:allow-other-keys)
2733 (define (modello-single-mode file version mode)
2734 (invoke "java"
2735 "org.codehaus.modello.ModelloCli"
2736 file mode "src/main/java" version
2737 "false" "true"))
2738 (let ((file "src/main/mdo/fileset.mdo"))
2739 (modello-single-mode file "1.1.0" "java")
2740 (modello-single-mode file "1.1.0" "xpp3-reader")
2741 (modello-single-mode file "1.1.0" "xpp3-writer"))
2742 #t))
2743 (replace 'install
2744 (install-from-pom "pom.xml")))))
2745 (propagated-inputs
2746 (list maven-3.0-plugin-api maven-shared-io maven-shared-utils
2747 java-plexus-utils maven-components-parent-pom-22))
2748 (native-inputs
2749 `(("java-modello-core" ,java-modello-core)
2750 ;; modello plugins:
2751 ("java-modellop-plugins-java" ,java-modello-plugins-java)
2752 ("java-modellop-plugins-xpp3" ,java-modello-plugins-xpp3)
2753 ("unzip" ,unzip)))
2754 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2755 (synopsis "Tree-based API for resolution of Maven project dependencies")
2756 (description "This package provides a tree-based API for resolution of
2757 Maven project dependencies.")
2758 (license license:asl2.0)))
2759
2760 (define-public maven-archiver
2761 (package
2762 (name "maven-archiver")
2763 (version "3.5.0")
2764 (source (origin
2765 (method url-fetch)
2766 (uri (string-append "mirror://apache/maven/shared/"
2767 "maven-archiver-" version
2768 "-source-release.zip"))
2769 (sha256
2770 (base32
2771 "1204xkqj259brpk3yscprml0lbfbyn1vn5nrgqjk44z5vx127lbw"))))
2772 (build-system ant-build-system)
2773 (arguments
2774 `(#:jar-name "maven-archiver.jar"
2775 #:source-dir "src/main/java"
2776 #:phases
2777 (modify-phases %standard-phases
2778 (replace 'install
2779 (install-from-pom "pom.xml")))))
2780 (propagated-inputs
2781 `(("java-commons-io" ,java-commons-io)
2782 ("maven-artifact" ,maven-3.0-artifact)
2783 ("maven-core" ,maven-3.0-core)
2784 ("maven-model" ,maven-3.0-model)
2785 ("maven-shared-utils" ,maven-shared-utils)
2786 ("java-plexus-archiver" ,java-plexus-archiver)
2787 ("java-plexus-interpolation" ,java-plexus-interpolation)
2788 ("java-plexus-utils" ,java-plexus-utils)
2789 ("maen-parent-pom" ,maven-parent-pom-33)))
2790 (native-inputs
2791 (list java-junit java-assertj unzip))
2792 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2793 (synopsis "Tree-based API for resolution of Maven project dependencies")
2794 (description "This package provides a tree-based API for resolution of
2795 Maven project dependencies.")
2796 (license license:asl2.0)))
2797
2798 (define-public maven-dependency-tree
2799 (package
2800 (name "maven-dependency-tree")
2801 (version "3.1.0")
2802 (source (origin
2803 (method url-fetch)
2804 (uri (string-append "mirror://apache/maven/shared/"
2805 "maven-dependency-tree-" version
2806 "-source-release.zip"))
2807 (sha256
2808 (base32
2809 "1vhcd3lmbyy8q61c37sqgbllqj4ypkxm344l6pb05mkchlyk5dy5"))))
2810 (build-system ant-build-system)
2811 (arguments
2812 `(#:jar-name "maven-dependency-tree.jar"
2813 #:source-dir "src/main/java"
2814 #:tests? #f; no tests
2815 #:phases
2816 (modify-phases %standard-phases
2817 (replace 'install
2818 (install-from-pom "pom.xml")))))
2819 (propagated-inputs
2820 (list maven-3.0-core java-plexus-component-annotations
2821 maven-parent-pom-34))
2822 (inputs
2823 (list java-sonatype-aether-api-1.13 java-sonatype-aether-util-1.13
2824 java-eclipse-aether-api java-eclipse-aether-util))
2825 (native-inputs
2826 (list unzip java-junit))
2827 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2828 (synopsis "Tree-based API for resolution of Maven project dependencies")
2829 (description "This package provides a tree-based API for resolution of
2830 Maven project dependencies.")
2831 (license license:asl2.0)))
2832
2833 (define-public maven-common-artifact-filters
2834 (package
2835 (name "maven-common-artifact-filters")
2836 (version "3.2.0")
2837 (source (origin
2838 (method url-fetch)
2839 (uri (string-append "mirror://apache/maven/shared/"
2840 "maven-common-artifact-filters-" version
2841 "-source-release.zip"))
2842 (sha256
2843 (base32
2844 "1mr92s4zz6gf028wiskjg8rd1znxzdnmskg42ac55ifg9v1p1884"))))
2845 (build-system ant-build-system)
2846 (arguments
2847 `(#:jar-name "maven-common-artifact-filters.jar"
2848 #:source-dir "src/main/java"
2849 #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
2850 #:phases
2851 (modify-phases %standard-phases
2852 (add-before 'build 'fix-aether
2853 (lambda _
2854 (substitute* "pom.xml"
2855 (("eclipse.aether") "sonatype.aether"))
2856 (substitute* "src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java"
2857 (("eclipse") "sonatype"))))
2858 (replace 'install
2859 (install-from-pom "pom.xml")))))
2860 (propagated-inputs
2861 (list maven-3.0-artifact
2862 maven-3.0-model
2863 maven-3.0-core
2864 maven-3.0-plugin-api
2865 maven-shared-utils
2866 maven-parent-pom-33
2867 java-eclipse-sisu-plexus
2868 java-sonatype-aether-api
2869 java-sonatype-aether-util))
2870 (inputs
2871 (list maven-resolver-api maven-resolver-util))
2872 (native-inputs
2873 (list unzip))
2874 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2875 (synopsis "Tree-based API for resolution of Maven project dependencies")
2876 (description "This package provides a tree-based API for resolution of
2877 Maven project dependencies.")
2878 (license license:asl2.0)))
2879
2880 (define-public maven-common-artifact-filters-3.1.0
2881 (package
2882 (inherit maven-common-artifact-filters)
2883 (version "3.1.0")
2884 (source (origin
2885 (method url-fetch)
2886 (uri (string-append "mirror://apache/maven/shared/"
2887 "maven-common-artifact-filters-" version
2888 "-source-release.zip"))
2889 (sha256
2890 (base32
2891 "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
2892 (arguments
2893 (substitute-keyword-arguments (package-arguments maven-common-artifact-filters)
2894 ((#:phases phases)
2895 `(modify-phases ,phases
2896 (delete 'fix-aether)
2897 (add-before 'build 'remove-sisu
2898 (lambda _
2899 (substitute* "pom.xml"
2900 (("sisu-inject-plexus") "maven-plugin-api")
2901 (("org.sonatype.sisu") "org.apache.maven"))))))))))
2902
2903 (define-public maven-enforcer-api
2904 (package
2905 (name "maven-enforcer-api")
2906 (version "3.0.0")
2907 (source (origin
2908 (method url-fetch)
2909 (uri (string-append "mirror://apache/maven/enforcer/"
2910 "enforcer-" version "-source-release.zip"))
2911 (sha256
2912 (base32
2913 "1479yp58jv788xc1jc2sbdxpajlbvwlk60639vd2h4s8r6x7naqh"))))
2914 (build-system ant-build-system)
2915 (arguments
2916 `(#:jar-name "maven-enforcer-api.jar"
2917 #:source-dir "enforcer-api/src/main/java"
2918 #:tests? #f; no tests
2919 #:phases
2920 (modify-phases %standard-phases
2921 (replace 'install
2922 (install-from-pom "enforcer-api/pom.xml")))))
2923 (propagated-inputs
2924 (list maven-plugin-api java-plexus-container-default java-jsr305
2925 maven-enforcer-parent-pom))
2926 (native-inputs
2927 (list unzip))
2928 (home-page "https://maven.apache.org/shared/maven-dependency-tree")
2929 (synopsis "Tree-based API for resolution of Maven project dependencies")
2930 (description "This package provides a tree-based API for resolution of
2931 Maven project dependencies.")
2932 (license license:asl2.0)))
2933
2934 (define maven-enforcer-parent-pom
2935 (package
2936 (inherit maven-enforcer-api)
2937 (name "maven-enforcer-parent-pom")
2938 (arguments
2939 `(#:tests? #f
2940 #:phases
2941 (modify-phases %standard-phases
2942 (delete 'configure)
2943 (delete 'build)
2944 (add-before 'install 'fix-pom-versions
2945 (lambda _
2946 (substitute* "pom.xml"
2947 (("<maven.version>.*</maven.version>")
2948 ,(string-append "<maven.version>" (package-version maven)
2949 "</maven.version>"))
2950 (("2.11.0") ,(package-version java-commons-io))
2951 (("3.12.0") ,(package-version java-commons-lang3))
2952 (("1.6.1") ,(package-version maven-resolver-util))
2953 (("1.15") ,(package-version java-commons-codec)))))
2954 (replace 'install
2955 (install-pom-file "pom.xml")))))
2956 (propagated-inputs
2957 `(("maven-parent-pom" ,maven-parent-pom-30)))))
2958
2959 (define-public maven-enforcer-rules
2960 (package
2961 (inherit maven-enforcer-api)
2962 (name "maven-enforcer-rules")
2963 (arguments
2964 `(#:tests? #f; requires maven-plugin-testing-harness
2965 #:jar-name "maven-enforcer-rules.jar"
2966 #:source-dir "enforcer-rules/src/main/java"
2967 #:test-dir "enforcer-rules/src/test"
2968 #:phases
2969 (modify-phases %standard-phases
2970 (replace 'install
2971 (install-from-pom "enforcer-rules/pom.xml")))))
2972 (propagated-inputs
2973 (list maven-artifact
2974 maven-plugin-api
2975 maven-core
2976 maven-common-artifact-filters
2977 java-commons-codec
2978 java-commons-lang3
2979 maven-enforcer-api
2980 maven-resolver-util
2981 java-bsh
2982 maven-dependency-tree
2983 maven-3.0-compat
2984 maven-enforcer-parent-pom))))
2985
2986 (define-public maven-enforcer-plugin
2987 (package
2988 (inherit maven-enforcer-api)
2989 (name "maven-enforcer-plugin")
2990 (arguments
2991 `(#:tests? #f
2992 #:jar-name "maven-enforcer-plugin.jar"
2993 #:source-dir "maven-enforcer-plugin/src/main/java"
2994 #:phases
2995 (modify-phases %standard-phases
2996 (add-before 'build 'generate-plugin.xml
2997 (generate-plugin.xml "maven-enforcer-plugin/pom.xml"
2998 "enforcer"
2999 "maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/"
3000 (list
3001 (list "DisplayInfoMojo.java")
3002 (list "EnforceMojo.java"))))
3003 (replace 'install
3004 (install-from-pom "maven-enforcer-plugin/pom.xml")))))
3005 (propagated-inputs
3006 (list maven-artifact
3007 maven-plugin-api
3008 maven-core
3009 java-plexus-utils
3010 maven-enforcer-api
3011 maven-enforcer-rules
3012 maven-plugin-annotations
3013 maven-enforcer-parent-pom))))
3014
3015 (define-public maven-artifact-transfer
3016 (package
3017 (name "maven-artifact-transfer")
3018 (version "0.13.1")
3019 (source (origin
3020 (method url-fetch)
3021 (uri (string-append "mirror://apache/maven/shared/"
3022 "maven-artifact-transfer-" version
3023 "-source-release.zip"))
3024 (sha256
3025 (base32
3026 "0xl7lkksljacrhmvwf924zb6h0h5zw9494jaz9cz4hll0lrhlpz6"))))
3027 (build-system ant-build-system)
3028 (arguments
3029 `(#:tests? #f; require mockito 2
3030 #:jar-name "maven-artifact-transfer.jar"
3031 #:source-dir "src/main/java"
3032 #:phases
3033 (modify-phases %standard-phases
3034 (add-after 'build 'generate-metadata
3035 (lambda _
3036 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3037 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3038 "--source" "src/main/java"
3039 "--output" "build/classes/META-INF/plexus/components.xml"
3040 "--classes" "build/classes"
3041 "--descriptors" "build/classes/META-INF")
3042 #t))
3043 (add-after 'generate-metadata 'rebuild
3044 (lambda _
3045 (invoke "ant" "jar")
3046 #t))
3047 (replace 'install
3048 (install-from-pom "pom.xml")))))
3049 (propagated-inputs
3050 (list java-commons-codec
3051 maven-3.0-artifact
3052 maven-3.0-core
3053 maven-common-artifact-filters-3.1.0
3054 java-plexus-component-annotations
3055 java-plexus-utils
3056 java-slf4j-api
3057 java-plexus-classworlds
3058 java-sonatype-aether-api
3059 java-eclipse-aether-api
3060 java-eclipse-aether-util
3061 java-eclipse-aether-impl))
3062 (native-inputs
3063 (list unzip java-plexus-component-metadata))
3064 (home-page "https://maven.apache.org/shared/maven-artifact-transfer")
3065 (synopsis "API to install, deploy and resolve artifacts in Maven")
3066 (description "This package contains an API to install, deploy and resolve
3067 artifacts in Maven 3.")
3068 (license license:asl2.0)))
3069
3070 (define-public maven-install-plugin
3071 (package
3072 (name "maven-install-plugin")
3073 (version "3.0.0-M1")
3074 (source (origin
3075 (method url-fetch)
3076 (uri (string-append "mirror://apache/maven/plugins/"
3077 "maven-install-plugin-" version
3078 "-source-release.zip"))
3079 (sha256
3080 (base32
3081 "1l9iydxririrair0i5sk2iypn9wspzbb666lc0ddg20yyr8w39dm"))))
3082 (build-system ant-build-system)
3083 (arguments
3084 `(#:tests? #f; require maven-plugin-testing-harness
3085 #:jar-name "maven-install-plugin.jar"
3086 #:source-dir "src/main/java"
3087 #:phases
3088 (modify-phases %standard-phases
3089 (add-before 'build 'fix-pom
3090 (lambda _
3091 (substitute* "pom.xml"
3092 (("maven-project") "maven-core")
3093 (("maven-artifact-manager") "maven-artifact")
3094 (("2.0.6") "3.0"))
3095 #t))
3096 (add-before 'build 'generate-plugin.xml
3097 (generate-plugin.xml "pom.xml"
3098 "install"
3099 "src/main/java/org/apache/maven/plugins/install"
3100 (list
3101 (list "AbstractInstallMojo.java" "InstallFileMojo.java")
3102 (list "AbstractInstallMojo.java" "InstallMojo.java"))))
3103 (replace 'install
3104 (install-from-pom "pom.xml")))))
3105 (propagated-inputs
3106 `(("maven-artifact" ,maven-artifact)
3107 ("maven-plugin-api" ,maven-plugin-api)
3108 ("maven-compat" ,maven-compat)
3109 ("maven-artifact-transfer" ,maven-artifact-transfer)
3110 ("maven-plugins-pom-23" ,maven-plugins-pom-23)
3111 ("java-plexus-digest" ,java-plexus-digest)))
3112 (inputs
3113 (list maven-plugin-annotations java-slf4j-api))
3114 (native-inputs
3115 (list unzip))
3116 (home-page "https://maven.apache.org/plugin/maven-install-plugin")
3117 (synopsis "Maven's install plugin")
3118 (description "The Install Plugin is used during the install phase to add
3119 artifact(s) to the local repository. The Install Plugin uses the information
3120 in the POM (groupId, artifactId, version) to determine the proper location for
3121 the artifact within the local repository.
3122
3123 The local repository is the local cache where all artifacts needed for the
3124 build are stored. By default, it is located within the user's home directory
3125 (@file{~/.m2/repository}) but the location can be configured in
3126 @file{~/.m2/settings.xml} using the @code{<localRepository>} element.")
3127 (license license:asl2.0)))
3128
3129 (define-public maven-filtering
3130 (package
3131 (name "maven-filtering")
3132 (version "3.1.1")
3133 (source (origin
3134 (method url-fetch)
3135 (uri (string-append "https://archive.apache.org/dist/maven/"
3136 "shared/maven-filtering-" version
3137 "-source-release.zip"))
3138 (sha256
3139 (base32
3140 "09wrdhchnszd2l6h4z30ra0bv1a19qyjgac9z8zf1pn0m4nw05yz"))))
3141 (build-system ant-build-system)
3142 (arguments
3143 `(#:jar-name "maven-filtering.jar"
3144 #:source-dir "src/main/java"
3145 #:test-dir "src/test"
3146 ;; this test comes from plexus-build-api, not this package
3147 #:test-exclude (list "**/IncrementalResourceFilteringTest.java"
3148 "**/Abstract*.java")
3149 #:phases
3150 (modify-phases %standard-phases
3151 (add-after 'build 'generate-metadata
3152 (lambda _
3153 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3154 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3155 "--source" "src/main/java"
3156 "--output" "build/classes/META-INF/plexus/components.xml"
3157 "--classes" "build/classes"
3158 "--descriptors" "build/classes/META-INF")
3159 #t))
3160 (add-after 'generate-metadata 'rebuild
3161 (lambda _
3162 (invoke "ant" "jar")
3163 #t))
3164 (add-before 'check 'decompress-tests
3165 (lambda* (#:key inputs #:allow-other-keys)
3166 (let* ((build-api-source (assoc-ref inputs "java-plexus-build-api-origin"))
3167 (classes (string-append build-api-source "/src/test/java")))
3168 (copy-recursively classes "src/test/"))
3169 #t))
3170 (add-before 'check 'fix-directory
3171 (lambda _
3172 (substitute* (find-files "src/test" ".*.java$")
3173 (("target/test-classes/") "build/test-classes/"))))
3174 (add-before 'check 'copy-test-resources
3175 (lambda _
3176 (copy-recursively "src/test/resources" "build/test-classes/")
3177 #t))
3178 (replace 'install
3179 (install-from-pom "pom.xml")))))
3180 (propagated-inputs
3181 (list maven-3.0-core
3182 maven-shared-utils
3183 java-plexus-utils-3.2.1
3184 java-plexus-interpolation
3185 java-plexus-build-api
3186 maven-parent-pom-30))
3187 (inputs
3188 (list java-jsr305))
3189 (native-inputs
3190 `(("unzip" ,unzip)
3191 ("java-assertj" ,java-assertj)
3192 ("java-junit" ,java-junit)
3193 ("java-mockito" ,java-mockito-1)
3194 ("java-objenesis" ,java-objenesis)
3195 ("java-plexus-component-metadata" ,java-plexus-component-metadata)
3196 ("java-plexus-build-api-origin" ,(package-source java-plexus-build-api))))
3197 (home-page "https://maven.apache.org/shared/maven-filtering")
3198 (synopsis "Shared component for all plugins that needs to filter resources")
3199 (description "This component provides an API to filter resources in Maven
3200 projects.")
3201 (license license:asl2.0)))
3202
3203 (define-public maven-resources-plugin
3204 (package
3205 (name "maven-resources-plugin")
3206 (version "3.1.0")
3207 (source (origin
3208 (method git-fetch)
3209 (uri (git-reference
3210 (url "https://github.com/apache/maven-resources-plugin")
3211 (commit (string-append "maven-resources-plugin-" version))))
3212 (file-name (git-file-name name version))
3213 (sha256
3214 (base32
3215 "090k5j2y7ak54czfjjg3v7pdmdlgd96fbs91d1fd3vslm9zzndg8"))))
3216 (build-system ant-build-system)
3217 (arguments
3218 `(#:jar-name "maven-resources-plugin.jar"
3219 #:source-dir "src/main/java"
3220 #:test-dir "src/test"
3221 #:tests? #f; test depends on maven-plugin-test-harness
3222 #:phases
3223 (modify-phases %standard-phases
3224 (add-before 'build 'generate-plugin.xml
3225 (generate-plugin.xml "pom.xml" "resources"
3226 "src/main/java/org/apache/maven/plugins/resources"
3227 (list
3228 (list "ResourcesMojo.java" "CopyResourcesMojo.java")
3229 (list "ResourcesMojo.java")
3230 (list "ResourcesMojo.java" "TestResourcesMojo.java"))))
3231 (replace 'install
3232 (install-from-pom "pom.xml")))))
3233 (propagated-inputs
3234 (list maven-plugin-api
3235 maven-core
3236 java-plexus-utils
3237 maven-filtering
3238 java-plexus-interpolation
3239 maven-parent-pom-31))
3240 (inputs
3241 (list maven-plugin-annotations java-commons-io))
3242 (native-inputs
3243 (list java-plexus-component-metadata))
3244 (home-page "https://maven.apache.org/plugins/maven-resources-plugin")
3245 (synopsis "Maven plugin to collect and install resources")
3246 (description "The Resources Plugin handles the copying of project resources
3247 to the output directory. There are two different kinds of resources: main
3248 resources and test resources. The difference is that the main resources are
3249 the resources associated to the main source code while the test resources are
3250 associated to the test source code.
3251
3252 Thus, this allows the separation of resources for the main source code and its
3253 unit tests.")
3254 (license license:asl2.0)))
3255
3256 (define-public maven-shared-incremental
3257 (package
3258 (name "maven-shared-incremental")
3259 (version "1.1")
3260 (source (origin
3261 (method url-fetch)
3262 (uri (string-append "https://archive.apache.org/dist/maven/shared/"
3263 "maven-shared-incremental-" version
3264 "-source-release.zip"))
3265 (sha256
3266 (base32
3267 "03n4nfswyg9ahkz2zx4skcr3ghs01zh95g9js51hc75mfqx9b976"))))
3268 (build-system ant-build-system)
3269 (arguments
3270 `(#:jar-name "shared-incremental.java"
3271 #:source-dir "src/main/java"
3272 #:test-dir "src/test"
3273 #:phases
3274 (modify-phases %standard-phases
3275 (add-before 'build 'change-parent
3276 (lambda _
3277 (substitute* "pom.xml"
3278 (("19") "30"))
3279 #t))
3280 (add-before 'build 'fix-pom
3281 (lambda _
3282 (substitute* "pom.xml"
3283 (("plexus-component-api") "plexus-component-annotations"))
3284 #t))
3285 (add-after 'build 'generate-metadata
3286 (lambda _
3287 (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
3288 "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
3289 "--source" "src/main/java"
3290 "--output" "build/classes/META-INF/plexus/components.xml"
3291 "--classes" "build/classes"
3292 "--descriptors" "build/classes/META-INF")
3293 #t))
3294 (replace 'install
3295 (install-from-pom "pom.xml")))))
3296 (propagated-inputs
3297 (list maven-plugin-api maven-core maven-shared-utils
3298 java-plexus-component-annotations maven-parent-pom-30))
3299 (native-inputs
3300 (list unzip java-plexus-component-metadata))
3301 (home-page "https://maven.apache.org/shared/maven-shared-incremental")
3302 (synopsis "Maven Incremental Build support utilities")
3303 (description "This package contains various utility classes and plexus
3304 components for supporting incremental build functionality in maven plugins.")
3305 (license license:asl2.0)))
3306
3307 (define-public maven-compiler-plugin
3308 (package
3309 (name "maven-compiler-plugin")
3310 (version "3.8.1")
3311 (source (origin
3312 (method git-fetch)
3313 (uri (git-reference
3314 (url "https://github.com/apache/maven-compiler-plugin")
3315 (commit (string-append "maven-compiler-plugin-" version))))
3316 (file-name (git-file-name name version))
3317 (sha256
3318 (base32
3319 "0jkbq02vykd09ws8k9bzqxv6fjrpmir8gcxydbmj05kkhl242bma"))))
3320 (build-system ant-build-system)
3321 (arguments
3322 `(#:jar-name "maven-compiler-plugin.jar"
3323 #:source-dir "src/main/java"
3324 #:test-dir "src/test"
3325 #:tests? #f; test depends on maven-plugin-test-harness
3326 #:phases
3327 (modify-phases %standard-phases
3328 (add-before 'build 'generate-plugin.xml
3329 (generate-plugin.xml "pom.xml"
3330 "compiler"
3331 "src/main/java/org/apache/maven/plugin/compiler"
3332 (list
3333 (list "AbstractCompilerMojo.java" "CompilerMojo.java")
3334 (list "AbstractCompilerMojo.java" "TestCompilerMojo.java"))))
3335 (add-after 'generate-plugin.xml 'fix-plugin.xml
3336 (lambda _
3337 (substitute* "build/classes/META-INF/maven/plugin.xml"
3338 ;; These are defined in AbstractCompilerMojo.java, but not
3339 ;; parsed correctly in the previous phase
3340 (("DEFAULT_TARGET") "1.6")
3341 (("DEFAULT_SOURCE") "1.6"))
3342 #t))
3343 (replace 'install
3344 (install-from-pom "pom.xml")))))
3345 (propagated-inputs
3346 (list maven-plugin-api
3347 maven-artifact
3348 maven-core
3349 maven-shared-utils
3350 maven-shared-incremental
3351 java-plexus-java
3352 java-plexus-compiler-api
3353 java-plexus-compiler-manager
3354 java-plexus-compiler-javac
3355 maven-parent-pom-33))
3356 (inputs
3357 (list maven-plugin-annotations java-commons-io))
3358 (home-page "https://maven.apache.org/plugins/maven-compiler-plugin")
3359 (synopsis "Compiler plugin for Maven")
3360 (description "The Compiler Plugin is used to compile the sources of your
3361 project. Since 3.0, the default compiler is @code{javax.tools.JavaCompiler}
3362 (if you are using java 1.6) and is used to compile Java sources. If you want
3363 to force the plugin using javac, you must configure the plugin option
3364 @code{forceJavacCompilerUse}.
3365
3366 Also note that at present the default source setting is 1.6 and the default
3367 target setting is 1.6, independently of the JDK you run Maven with. You are
3368 highly encouraged to change these defaults by setting source and target as
3369 described in Setting the -source and -target of the Java Compiler.
3370
3371 Other compilers than javac can be used and work has already started on
3372 AspectJ, .NET, and C#.")
3373 (license license:asl2.0)))
3374
3375 (define-public java-surefire-logger-api
3376 (package
3377 (name "java-surefire-logger-api")
3378 (version "3.0.0-M4")
3379 (source (origin
3380 (method url-fetch)
3381 (uri (string-append "mirror://apache/maven/surefire/"
3382 "surefire-" version "-source-release.zip"))
3383 (sha256
3384 (base32
3385 "1s6d4pzk3bjm9l38mj9sfgbgmk145rppdj1dmqwc4d5105mr9q9w"))))
3386 (build-system ant-build-system)
3387 (arguments
3388 `(#:jar-name "java-surefire-logger-api.jar"
3389 #:source-dir "surefire-logger-api/src/main/java"
3390 #:tests? #f; require mockito 2
3391 #:phases
3392 (modify-phases %standard-phases
3393 (replace 'install
3394 (install-from-pom "surefire-logger-api/pom.xml")))))
3395 (propagated-inputs
3396 (list java-surefire-parent-pom))
3397 (native-inputs
3398 (list unzip))
3399 (home-page "https://maven.apache.org/surefire/surefire-logger-api")
3400 (synopsis "Interfaces and Utilities related only to internal SureFire Logger API")
3401 (description "This package contains interfaces and utilities that are
3402 internal to the SureFire Logger API. It is designed to have no dependency.")
3403 (license license:asl2.0)))
3404
3405 (define-public java-surefire-parent-pom
3406 (package
3407 (inherit java-surefire-logger-api)
3408 (name "java-surefire-parent-pom")
3409 (arguments
3410 `(#:tests? #f
3411 #:phases
3412 (modify-phases %standard-phases
3413 (delete 'configure)
3414 (delete 'build)
3415 (add-before 'install 'fix-pom-dependency-versions
3416 (lambda _
3417 (substitute* "pom.xml"
3418 (("1.11") ,(package-version java-commons-compress))
3419 (("1.13") ,(package-version java-commons-codec)))
3420 (substitute* "pom.xml"
3421 (("commonsLang3Version>.*")
3422 (string-append
3423 "commonsLang3Version>"
3424 ,(package-version java-commons-lang3)
3425 "</commonsLang3Version>\n"))
3426 (("commonsCompress>.*")
3427 (string-append
3428 "commonsCompress>"
3429 ,(package-version java-commons-compress)
3430 "</commonsCompress>\n"))
3431 (("commonsIoVersion>.*")
3432 (string-append
3433 "commonsIoVersion>"
3434 ,(package-version java-commons-io)
3435 "</commonsIoVersion>\n"))
3436 (("0.11.0") ,(package-version maven-artifact-transfer))
3437 (("1.0.3") ,(package-version java-plexus-java)))
3438 #t))
3439 (add-after 'install 'install-providers
3440 (install-pom-file "surefire-providers/pom.xml"))
3441 (replace 'install
3442 (install-pom-file "pom.xml")))))
3443 (propagated-inputs
3444 (list maven-parent-pom-33))))
3445
3446 (define-public java-surefire-api
3447 (package
3448 (inherit java-surefire-logger-api)
3449 (name "java-surefire-api")
3450 (arguments
3451 `(#:tests? #f
3452 #:jar-name "java-surefire-api.jar"
3453 #:source-dir "surefire-api/src/main/java"
3454 #:phases
3455 (modify-phases %standard-phases
3456 (add-before 'build 'copy-resources
3457 (lambda _
3458 (mkdir-p "build/classes")
3459 (copy-recursively "surefire-api/src/main/resources" "build/classes")
3460 #t))
3461 (add-before 'build 'prepare-shade
3462 (lambda* (#:key inputs #:allow-other-keys)
3463 (mkdir-p "build/classes")
3464 (with-directory-excursion "build/classes"
3465 (for-each
3466 (lambda (input)
3467 (for-each
3468 (lambda (jar-file)
3469 (invoke "jar" "xf" jar-file)
3470 (delete-file-recursively "META-INF"))
3471 (find-files (assoc-ref inputs input) ".*.jar$")))
3472 '("maven-shared-utils" "java-commons-codec")))
3473 #t))
3474 (add-after 'build 'shade
3475 (lambda* (#:key inputs #:allow-other-keys)
3476 (let ((jarjar
3477 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3478 (injar "java-surefire-api.jar")
3479 (outjar "java-surefire-api-shaded.jar"))
3480 (with-directory-excursion "build/jar"
3481 (with-output-to-file "rules"
3482 (lambda _
3483 (format #t (string-append
3484 "rule "
3485 "org.apache.maven.shared.utils.** "
3486 "org.apache.maven.surefire.shade.api."
3487 "org.apache.maven.shared.utils.@1~%"))
3488 (format #t (string-append
3489 "rule "
3490 "org.apache.commons.codec.** "
3491 "org.apache.maven.surefire.shade.api."
3492 "org.apache.commons.codec.@1~%"))))
3493 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3494 (delete-file injar)
3495 (rename-file outjar injar)))
3496 #t))
3497 (replace 'install
3498 (install-from-pom "surefire-api/pom.xml")))))
3499 (propagated-inputs
3500 (list java-surefire-logger-api java-commons-codec
3501 java-surefire-parent-pom maven-shared-utils-3.1))
3502 (inputs
3503 (list java-jsr305))
3504 (native-inputs
3505 (list unzip java-jarjar))
3506 (synopsis "Maven SureFire API")
3507 (description "This package contains the API to use Maven SureFire.")))
3508
3509 (define-public java-surefire-booter
3510 (package
3511 (inherit java-surefire-logger-api)
3512 (name "java-surefire-booter")
3513 (arguments
3514 `(#:tests? #f; require mockito 2
3515 #:jar-name "java-surefire-booter.jar"
3516 #:source-dir "surefire-booter/src/main/java"
3517 #:phases
3518 (modify-phases %standard-phases
3519 (add-before 'build 'fix-/bin/sh
3520 (lambda _
3521 (substitute* "surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java"
3522 (("/bin/sh") (which "sh")))
3523 #t))
3524 (replace 'install
3525 (install-from-pom "surefire-booter/pom.xml")))))
3526 (propagated-inputs
3527 (list java-surefire-api java-commons-lang3 java-commons-io
3528 java-surefire-parent-pom))
3529 (inputs
3530 (list java-jsr305))
3531 (synopsis "API and Facilities used by forked tests running in JVM sub-process")
3532 (description "SureFire runs tests inside a forked JVM subprocess. This
3533 package contains an API and facilities used inside that forked JVM.")))
3534
3535 (define-public java-surefire-extensions-api
3536 (package
3537 (inherit java-surefire-logger-api)
3538 (name "java-surefire-extensions-api")
3539 (arguments
3540 `(#:tests? #f; requires mockito 2
3541 #:jar-name "java-surefire-extensions-api.jar"
3542 #:source-dir "surefire-extensions-api/src/main/java"
3543 #:phases
3544 (modify-phases %standard-phases
3545 (replace 'install
3546 (install-from-pom "surefire-extensions-api/pom.xml")))))
3547 (propagated-inputs
3548 (list java-surefire-api java-surefire-parent-pom))
3549 (inputs
3550 (list java-plexus-component-annotations))
3551 (synopsis "Extension API for Maven SureFire")
3552 (description "Surefire is a test framework project. This is the aggregator
3553 POM in Apache Maven Surefire project.")))
3554
3555 (define-public java-surefire-common-java5
3556 (package
3557 (inherit java-surefire-logger-api)
3558 (name "java-surefire-common-java5")
3559 (arguments
3560 `(#:jar-name "java-surefire-common-java5.jar"
3561 #:source-dir "surefire-providers/common-java5/src/main/java"
3562 #:test-dir "surefire-providers/common-java5/src/test"
3563 #:test-exclude (list
3564 ;; Abstract class
3565 "**/PojoStackTraceWriterTest.java"
3566 ;; Fails
3567 "**/SmartStackTraceParserTest.java")
3568 #:phases
3569 (modify-phases %standard-phases
3570 (add-before 'build 'prepare-shade
3571 (lambda* (#:key inputs #:allow-other-keys)
3572 (mkdir-p "build/classes")
3573 (with-directory-excursion "build/classes"
3574 (for-each
3575 (lambda (jar-file)
3576 (invoke "jar" "xf" jar-file)
3577 (delete-file-recursively "META-INF"))
3578 (find-files (assoc-ref inputs "maven-shared-utils") ".*.jar$")))
3579 #t))
3580 (add-after 'build 'shade
3581 (lambda* (#:key inputs #:allow-other-keys)
3582 (let ((jarjar
3583 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3584 (injar "java-surefire-common-java5.jar")
3585 (outjar "java-surefire-common-java5-shaded.jar"))
3586 (with-directory-excursion "build/jar"
3587 (with-output-to-file "rules"
3588 (lambda _
3589 (format #t (string-append
3590 "rule "
3591 "org.apache.maven.shared.utils.** "
3592 "org.apache.maven.surefire.shade.common."
3593 "org.apache.maven.shared.utils.@1~%"))))
3594 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3595 (delete-file injar)
3596 (rename-file outjar injar)))
3597 #t))
3598 (replace 'install
3599 (install-from-pom "surefire-providers/common-java5/pom.xml")))))
3600 (propagated-inputs
3601 (list maven-shared-utils-3.1 java-surefire-api
3602 java-surefire-parent-pom))
3603 (native-inputs
3604 (list unzip java-jarjar java-junit java-fest-assert))
3605 (synopsis "Common java5 facilities for Maven SureFire")
3606 (description "This package contains shared Java 5 code for all providers.")))
3607
3608 (define-public java-surefire-common-junit3
3609 (package
3610 (inherit java-surefire-logger-api)
3611 (name "java-surefire-common-junit3")
3612 (arguments
3613 `(#:jar-name "java-surefire-common-junit3.jar"
3614 #:source-dir "surefire-providers/common-junit3/src/main/java"
3615 #:test-dir "surefire-providers/common-junit3/src/test"
3616 #:phases
3617 (modify-phases %standard-phases
3618 (replace 'install
3619 (install-from-pom "surefire-providers/common-junit3/pom.xml")))))
3620 (propagated-inputs
3621 (list java-junit java-surefire-api java-surefire-parent-pom))
3622 (native-inputs
3623 (list unzip java-junit java-fest-assert))
3624 (synopsis "Shared JUnit3 provider code for Maven SureFire")
3625 (description "This package contains shared code for all JUnit providers.")))
3626
3627 (define-public java-surefire-common-junit4
3628 (package
3629 (inherit java-surefire-logger-api)
3630 (name "java-surefire-common-junit4")
3631 (arguments
3632 `(#:jar-name "java-surefire-common-junit4.jar"
3633 #:source-dir "surefire-providers/common-junit4/src/main/java"
3634 #:tests? #f; tests require junit 4.0
3635 #:phases
3636 (modify-phases %standard-phases
3637 (replace 'install
3638 (install-from-pom "surefire-providers/common-junit4/pom.xml")))))
3639 (propagated-inputs
3640 (list java-junit
3641 java-surefire-api
3642 java-surefire-common-java5
3643 java-surefire-common-junit3
3644 maven-shared-utils-3.1
3645 java-surefire-parent-pom))
3646 (synopsis "Shared JUnit4 provider code for Maven SureFire")
3647 (description "This package contains shared code for all JUnit providers,
3648 starting from JUnit 4.")))
3649
3650 (define-public java-surefire-junit4
3651 (package
3652 (inherit java-surefire-logger-api)
3653 (name "java-surefire-junit4")
3654 (arguments
3655 `(;#:tests? #f
3656 #:jar-name "java-surefire-junit4.jar"
3657 #:source-dir "surefire-providers/surefire-junit4/src/main/java"
3658 #:test-dir "surefire-providers/surefire-junit4/src/test"
3659 #:modules ((guix build ant-build-system)
3660 (guix build utils)
3661 (guix build java-utils)
3662 (sxml simple))
3663 #:phases
3664 (modify-phases %standard-phases
3665 (add-before 'install 'regenerate-own-pom
3666 ;; Surefire struggles resolving artifacts because of this pom
3667 ;; file, resulting in a NullPointerException when collecting
3668 ;; Artifacts (and a "Failure detected." message from
3669 ;; DefaultArtifactResolver). Replace the pom file with a much
3670 ;; simpler one. Everything is shaded anyway (as used to be the
3671 ;; case in 2.22), so there will not be missing dependencies.
3672 (generate-pom.xml
3673 "surefire-providers/surefire-junit4/pom.xml"
3674 "org.apache.maven.surefire" "surefire-junit4"
3675 ,(package-version java-surefire-common-java5)
3676 #:name "Surefire JUnit4"))
3677 (add-before 'build 'copy-resources
3678 (lambda _
3679 (mkdir-p "build/classes")
3680 (copy-recursively "surefire-providers/surefire-junit4/src/main/resources"
3681 "build/classes")
3682 #t))
3683 (add-before 'build 'prepare-shade
3684 (lambda* (#:key inputs #:allow-other-keys)
3685 (mkdir-p "build/classes")
3686 (with-directory-excursion "build/classes"
3687 (for-each
3688 (lambda (input)
3689 (for-each
3690 (lambda (jar-file)
3691 (invoke "jar" "xf" jar-file)
3692 (delete-file-recursively "META-INF"))
3693 (find-files (assoc-ref inputs input) ".*.jar$")))
3694 '("maven-shared-utils" "java-surefire-common-java5"
3695 "java-surefire-common-junit3" "java-surefire-common-junit4"
3696 "java-surefire-api")))
3697 #t))
3698 (add-after 'build 'shade
3699 (lambda* (#:key inputs #:allow-other-keys)
3700 (let ((jarjar
3701 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3702 (injar "java-surefire-junit4.jar")
3703 (outjar "java-surefire-junit4-shaded.jar"))
3704 (with-directory-excursion "build/jar"
3705 (with-output-to-file "rules"
3706 (lambda _
3707 (format #t (string-append
3708 "rule "
3709 "org.apache.maven.shared.utils.** "
3710 "org.apache.maven.surefire.shade."
3711 "org.apache.maven.shared.utils.@1~%"))))
3712 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3713 (delete-file injar)
3714 (rename-file outjar injar)))
3715 #t))
3716 (replace 'install
3717 (install-from-pom "surefire-providers/surefire-junit4/pom.xml")))))
3718 (propagated-inputs
3719 (list java-junit java-surefire-parent-pom))
3720 (inputs
3721 (list java-surefire-common-junit4 java-surefire-common-junit3
3722 java-surefire-common-java5 java-surefire-api))
3723 (native-inputs
3724 (list java-jarjar unzip java-junit java-hamcrest-all
3725 java-fest-assert))
3726 (synopsis "SureFire JUnit 4.0+ runner")
3727 (description "This package contains the runner for tests run on a forked
3728 JVM, using JUnit 4.0 or later.")))
3729
3730 (define-public maven-surefire-common
3731 (package
3732 (inherit java-surefire-logger-api)
3733 (name "maven-surefire-common")
3734 (arguments
3735 `(#:tests? #f; require mockito 2
3736 #:jar-name "maven-surefire-common.jar"
3737 #:source-dir "maven-surefire-common/src/main/java"
3738 #:phases
3739 (modify-phases %standard-phases
3740 (add-before 'build 'prepare-shade
3741 (lambda* (#:key inputs #:allow-other-keys)
3742 (mkdir-p "build/classes")
3743 (with-directory-excursion "build/classes"
3744 (for-each
3745 (lambda (input)
3746 (for-each
3747 (lambda (jar-file)
3748 (invoke "jar" "xf" jar-file)
3749 (delete-file-recursively "META-INF"))
3750 (find-files (assoc-ref inputs input) ".*.jar$")))
3751 '("maven-shared-utils" "java-commons-io" "java-commons-lang3"
3752 "java-commons-compress" "maven-common-artifact-filters")))
3753 #t))
3754 (add-after 'build 'shade
3755 (lambda* (#:key inputs #:allow-other-keys)
3756 (let ((jarjar
3757 (car (find-files (assoc-ref inputs "java-jarjar") ".*.jar$")))
3758 (injar "maven-surefire-common.jar")
3759 (outjar "maven-surefire-common-shaded.jar"))
3760 (with-directory-excursion "build/jar"
3761 (with-output-to-file "rules"
3762 (lambda _
3763 (format #t (string-append
3764 "rule "
3765 "org.apache.maven.shared.utils.** "
3766 "org.apache.maven.surefire.shade.common."
3767 "org.apache.maven.shared.utils.@1~%"))
3768 (format #t (string-append
3769 "rule "
3770 "org.apache.commons.io.** "
3771 "org.apache.maven.surefire.shade.common."
3772 "org.apache.commons.io.@1~%"))
3773 (format #t (string-append
3774 "rule "
3775 "org.apache.commons.lang3.** "
3776 "org.apache.maven.surefire.shade.common."
3777 "org.apache.commons.lang3.@1~%"))
3778 (format #t (string-append
3779 "rule "
3780 "org.apache.commons.compress.** "
3781 "org.apache.maven.surefire.shade.common."
3782 "org.apache.commons.compress.@1~%"))))
3783 (invoke "java" "-jar" jarjar "process" "rules" injar outjar)
3784 (delete-file injar)
3785 (rename-file outjar injar)))
3786 #t))
3787 (add-before 'install 'fix-pom
3788 (lambda _
3789 (substitute* "maven-surefire-common/pom.xml"
3790 (("maven-toolchain") "maven-core"))
3791 #t))
3792 (replace 'install
3793 (install-from-pom "maven-surefire-common/pom.xml")))))
3794 (propagated-inputs
3795 (list java-surefire-api
3796 java-surefire-extensions-api
3797 java-surefire-booter
3798 maven-core
3799 maven-plugin-annotations
3800 maven-common-artifact-filters
3801 maven-artifact-transfer
3802 java-plexus-java
3803 java-jansi
3804 java-commons-io
3805 java-commons-lang3
3806 java-commons-compress
3807 maven-shared-utils-3.1
3808 java-surefire-parent-pom))
3809 (inputs
3810 (list java-jsr305))
3811 (native-inputs
3812 (list unzip java-jarjar))
3813 (synopsis "API used in Surefire and Failsafe MOJO")
3814 (description "This package contains an API used in SureFire and Failsafe
3815 MOJO.")))
3816
3817 (define-public maven-surefire-plugin
3818 (package
3819 (inherit java-surefire-logger-api)
3820 (name "maven-surefire-plugin")
3821 (arguments
3822 `(#:jar-name "maven-surefire-plugin.jar"
3823 #:source-dir "maven-surefire-plugin/src/main/java"
3824 #:tests? #f; test depends on maven-plugin-test-harness
3825 #:phases
3826 (modify-phases %standard-phases
3827 (add-before 'build 'generate-plugin.xml
3828 (generate-plugin.xml "maven-surefire-plugin/pom.xml"
3829 "surefire"
3830 "."
3831 (list
3832 (list
3833 "maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/AbstractSurefireMojo.java"
3834 "maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/SurefirePlugin.java"))))
3835 (replace 'install
3836 (install-from-pom "maven-surefire-plugin/pom.xml")))))
3837 (propagated-inputs
3838 (list maven-surefire-common maven-core))
3839 (native-inputs
3840 (list maven-plugin-annotations unzip))
3841 (synopsis "SureFire Maven plugin that runs tests")
3842 (description "The Surefire Plugin is used during the test phase of the
3843 build lifecycle to execute the unit tests of an application. It generates
3844 reports in two different file formats, plain text and xml.")))
3845
3846 (define-public maven-jar-plugin
3847 (package
3848 (name "maven-jar-plugin")
3849 (version "3.2.0")
3850 (source (origin
3851 (method git-fetch)
3852 (uri (git-reference
3853 (url "https://github.com/apache/maven-jar-plugin")
3854 (commit (string-append "maven-jar-plugin-" version))))
3855 (file-name (git-file-name name version))
3856 (sha256
3857 (base32
3858 "04y2rlmcabmc55ljqlkgbb5xx94a59cz1dvrnpfj1vzz024pqkyg"))))
3859 (build-system ant-build-system)
3860 (arguments
3861 `(#:jar-name "maven-jar-plugin.jar"
3862 #:source-dir "src/main/java"
3863 #:tests? #f; test depends on maven-plugin-test-harness
3864 #:phases
3865 (modify-phases %standard-phases
3866 (add-before 'build 'generate-plugin.xml
3867 (generate-plugin.xml "pom.xml"
3868 "jar"
3869 "src/main/java/org/apache/maven/plugins/jar"
3870 (list
3871 (list "AbstractJarMojo.java" "JarMojo.java")
3872 (list "AbstractJarMojo.java" "TestJarMojo.java"))))
3873 (replace 'install
3874 (install-from-pom "pom.xml")))))
3875 (propagated-inputs
3876 (list maven-archiver
3877 maven-3.0-artifact
3878 maven-3.0-core
3879 maven-3.0-plugin-api
3880 maven-file-management
3881 maven-shared-utils
3882 java-plexus-archiver
3883 java-plexus-utils))
3884 (inputs
3885 (list maven-plugin-annotations))
3886 (home-page "https://maven.apache.org/plugins/maven-jar-plugin")
3887 (synopsis "Jar builder plugin for Maven")
3888 (description "This plugin provides the capability to build jars. If you
3889 would like to sign jars please use the Maven Jarsigner Plugin instead.")
3890 (license license:asl2.0)))
3891
3892 (define-public maven-doxia-sink-api
3893 (package
3894 (name "maven-doxia-sink-api")
3895 (version "2.0.0-M2")
3896 (source (origin
3897 (method git-fetch)
3898 (uri (git-reference
3899 (url "https://gitbox.apache.org/repos/asf/maven-doxia.git")
3900 (commit (string-append "doxia-" version))))
3901 (file-name (git-file-name "doxia" version))
3902 (sha256
3903 (base32
3904 "0jx96lg0hgjsrm8mynhac4hwh2hmgiwjpwpx2k03yr14040zcr48"))))
3905 (build-system ant-build-system)
3906 (propagated-inputs
3907 (list maven-doxia-parent-pom))
3908 (arguments
3909 `(#:jar-name "doxia-sink-api.jar"
3910 #:source-dir "doxia-sink-api/src/main/java"
3911 #:tests? #f ; no tests
3912 #:phases (modify-phases %standard-phases
3913 (replace 'install
3914 (install-from-pom "doxia-sink-api/pom.xml")))))
3915 (home-page "https://maven.apache.org/doxia/index.html")
3916 (synopsis "Generic markup language interface")
3917 (description
3918 "The @code{Sink} interface is a generic markup language
3919 interface provided as a Java API. It contains several methods that
3920 encapsulate common text syntax. A start tag is denoted by @code{xxxx()}
3921 method and a end of tag by @code{xxxx_()} method.")
3922 (license license:asl2.0)))
3923
3924 (define maven-doxia-parent-pom
3925 (package
3926 (inherit maven-doxia-sink-api)
3927 (name "maven-doxia-parent-pom")
3928 (arguments
3929 `(#:tests? #f
3930 #:phases (modify-phases %standard-phases
3931 (delete 'configure)
3932 (delete 'build)
3933 (replace 'install
3934 (install-pom-file "pom.xml")))))
3935 (propagated-inputs
3936 (list maven-parent-pom-34))
3937 (synopsis "Content generation framework")
3938 (description "@samp{Doxia} is a content generation framework that provides
3939 powerful techniques for generating static and dynamic content, supporting a
3940 variety of markup languages.")))
3941
3942 (define-public maven-doxia-core
3943 (package
3944 (inherit maven-doxia-sink-api)
3945 (name "maven-doxia-core")
3946 (arguments
3947 `(#:jar-name "doxia-core.jar"
3948 #:source-dir "doxia-core/src/main/java"
3949 #:test-dir "doxia-core/src/test/java"
3950 #:tests? #f ; tests require JUnit5
3951 #:phases (modify-phases %standard-phases
3952 (replace 'install
3953 (install-from-pom "doxia-core/pom.xml")))))
3954 (propagated-inputs (list maven-doxia-parent-pom
3955 maven-doxia-sink-api
3956 java-slf4j-api
3957 java-javax-inject
3958 java-plexus-utils
3959 java-eclipse-sisu-plexus
3960 java-commons-text))
3961 (synopsis "Doxia core classes and interfaces")
3962 (description
3963 "Doxia is a content generation framework that provides powerful
3964 techniques for generating static and dynamic content, supporting a variety of
3965 markup languages.
3966
3967 This package contains Doxia core classes and interfaces.")))