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