guix-more/more/packages/maven.scm

maven.scm

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