guix-more/more/packages/maven.scm

maven.scm

1
;;; GNU Guix --- Functional package management for GNU
2
;;; Copyright © 2017, 2019 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 utils)
26
  #:use-module (guix build-system ant)
27
  #:use-module (guix build-system trivial)
28
  #:use-module (gnu packages bash)
29
  #:use-module (gnu packages compression)
30
  #:use-module (gnu packages groovy)
31
  #:use-module (gnu packages java)
32
  #:use-module (gnu packages maven)
33
  #:use-module (gnu packages web)
34
  #:use-module (gnu packages version-control)
35
  #:use-module (gnu packages xml)
36
  #:use-module (more packages java))
37
38
(define-public maven-polyglot-common
39
  (package
40
    (name "maven-polyglot-common")
41
    (version "0.3.0")
42
    (source (origin
43
              (method url-fetch)
44
              (uri (string-append "https://github.com/takari/polyglot-maven/"
45
                                  "archive/polyglot-" version ".tar.gz"))
46
              (sha256
47
               (base32
48
                "0v8j2gj0s4vrddyk0ll38rbl69vm6rv2wnn0c8nlsz2824vhvzca"))))
49
    (build-system ant-build-system)
50
    (arguments
51
     `(#:jar-name "maven-polyglot-common.jar"
52
       #:source-dir "polyglot-common/src/main/java"
53
       #:tests? #f; No test
54
       #:phases
55
       (modify-phases %standard-phases
56
         (add-before 'build 'copy-resources
57
           (lambda _
58
             (install-file "polyglot-common/src/main/resources-filtered/maven-polyglot.properties"
59
                           "build/classes")
60
             #t))
61
         (add-after 'build 'generate-metadata
62
           (lambda _
63
             (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
64
                     "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
65
                     "--source" "polyglot-common/src/main/java"
66
                     "--output" "build/classes/META-INF/plexus/components.xml"
67
                     "--classes" "build/classes"
68
                     "--descriptors" "build/classes/META-INF")
69
             #t))
70
         (add-after 'generate-metadata 'rebuild
71
           (lambda _
72
             (invoke "ant" "jar")
73
             #t)))))
74
    (inputs
75
     `(("java-plexus-classworlds" ,java-plexus-classworlds)
76
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
77
       ("java-plexus-container-default" ,java-plexus-container-default)
78
       ("java-plexus-utils" ,java-plexus-utils)
79
       ("maven-builder-support" ,maven-builder-support)
80
       ("maven-core" ,maven-core)
81
       ("maven-model" ,maven-model)
82
       ("maven-model-builder" ,maven-model-builder)
83
       ("maven-plugin-api" ,maven-plugin-api)))
84
    (native-inputs
85
     `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
86
       ("java-plexus-cli" ,java-plexus-cli)
87
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
88
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
89
       ("java-commons-cli" ,java-commons-cli)
90
       ("java-asm" ,java-asm)
91
       ("java-guice" ,java-guice)
92
       ("java-guava" ,java-guava)
93
       ("java-cglib" ,java-cglib)
94
       ("java-jdom2" ,java-jdom2)
95
       ("java-qdox" ,java-qdox)
96
       ("java-javax-inject" ,java-javax-inject)))
97
    (home-page "https://github.com/takari/polyglot-maven")
98
    (synopsis "")
99
    (description "")
100
    (license license:epl1.0)))
101
102
(define-public maven-polyglot-java
103
  (package
104
    (inherit maven-polyglot-common)
105
    (name "maven-polyglot-java")
106
    (arguments
107
     `(#:jar-name "maven-polyglot-java.jar"
108
       #:source-dir "polyglot-java/src/main/java"
109
       #:tests? #f; No test
110
       #:phases
111
       (modify-phases %standard-phases
112
         (add-before 'build 'copy-resources
113
           (lambda _
114
             (install-file "polyglot-java/src/main/resources/META-INF/maven/extension.xml"
115
                           "build/classes/META-INF/maven")
116
             #t))
117
         (add-after 'build 'generate-metadata
118
           (lambda _
119
             (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
120
                     "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
121
                     "--source" "polyglot-java/src/main/java"
122
                     "--output" "build/classes/META-INF/plexus/components.xml"
123
                     "--classes" "build/classes"
124
                     "--descriptors" "build/classes/META-INF")
125
             #t))
126
         (add-after 'generate-metadata 'rebuild
127
           (lambda _
128
             (invoke "ant" "jar")
129
             #t)))))
130
    (inputs
131
     `(("maven-polyglot-common" ,maven-polyglot-common)
132
       ("java-commons-beanutils" ,java-commons-beanutils)
133
       ("java-commons-io" ,java-commons-io)
134
       ("java-guava" ,java-guava)
135
       ,@(package-inputs maven-polyglot-common)))))
136
137
(define-public maven-polyglot-groovy
138
  (package
139
    (inherit maven-polyglot-common)
140
    (name "maven-polyglot-groovy")
141
    (arguments
142
     `(#:jar-name "maven-polyglot-groovy.jar"
143
       #:source-dir "polyglot-groovy/src/main/java:polyglot-groovy/src/main/groovy"
144
       #:tests? #f; No test
145
       #:phases
146
       (modify-phases %standard-phases
147
         (add-before 'build 'use-groovy
148
           (lambda _
149
             (substitute* "build.xml"
150
               ;; Change the compiler to groovyc
151
               (("javac") "groovyc")
152
               ;; Make it fork
153
               (("includeantruntime=\"false\"")
154
                "includeantruntime=\"false\" fork=\"yes\"")
155
               ;; groovyc doesn't understand the --classpath argument (bug?)
156
               (("classpath=\"@refidclasspath\"")
157
                "classpathref=\"classpath\"")
158
               ;; To enable joint compilation
159
               (("classpathref=\"classpath\" />")
160
                "classpathref=\"classpath\"><javac source=\"1.5\" target=\"1.5\" /></groovyc>")
161
               ;; Actually create a definition of the groovyc task.
162
               ;; FIXME: Can't we use groovy-ant for that?
163
               (("<project basedir=\".\">")
164
                "<project basedir=\".\"><taskdef name=\"groovyc\"
165
classname=\"org.codehaus.groovy.ant.Groovyc\" />"))
166
             #t))
167
         (add-before 'build 'copy-resources
168
           (lambda _
169
             (install-file "polyglot-groovy/src/main/resources/META-INF/maven/extension.xml"
170
                           "build/classes/META-INF/maven")
171
             #t))
172
         (add-after 'build 'generate-metadata
173
           (lambda _
174
             (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
175
                     "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
176
                     "--source" "polyglot-groovy/src/main/java"
177
                     "--output" "build/classes/META-INF/plexus/components.xml"
178
                     "--classes" "build/classes"
179
                     "--descriptors" "build/classes/META-INF")
180
             #t))
181
         (add-after 'generate-metadata 'rebuild
182
           (lambda _
183
             (invoke "ant" "jar")
184
             #t)))))
185
    (inputs
186
     `(("maven-polyglot-common" ,maven-polyglot-common)
187
       ("groovy" ,groovy)
188
       ("java-slf4j-api" ,java-slf4j-api)
189
       ,@(package-inputs maven-polyglot-common)))))
190
191
(define-public maven-slf4j-provider
192
  (package
193
    (inherit maven-artifact)
194
    (name "maven-slf4j-provider")
195
    (arguments
196
     `(#:jar-name "maven-slf4j-provider.jar"
197
       #:source-dir "maven-slf4j-provider/src/main/java"
198
       #:tests? #f)); no tests
199
    (inputs
200
     `(("maven-shared-utils" ,maven-shared-utils)
201
       ("java-slf4j-api" ,java-slf4j-api)
202
       ("java-slf4j-simple" ,java-slf4j-simple)))
203
    (synopsis "")
204
    (description "")
205
    (license license:asl2.0)))
206
207
(define-public maven-plugin-testing
208
  (package
209
    (name "maven-plugin-testing")
210
    (version "3.3.0")
211
    (source (origin
212
              (method url-fetch)
213
              (uri (string-append "https://github.com/apache/maven-plugin-testing/"
214
                                  "archive/maven-plugin-testing-" version ".tar.gz"))
215
              (sha256
216
               (base32
217
                "010jp44vq75fk6260zvqz41ai3l1sqrjz56yyzv9pgshx27vpshy"))))
218
    (build-system ant-build-system)
219
    (arguments
220
     `(#:jar-name "maven-plugin-testing.jar"
221
       #:source-dir "maven-plugin-testing-harness/src/main/java"
222
       #:test-dir "maven-plugin-testing-harness/src/test"))
223
    (inputs
224
     `(("java-commons-io" ,java-commons-io)
225
       ("java-guice" ,java-guice)
226
       ("java-junit" ,java-junit)
227
       ("java-plexus-archiver" ,java-plexus-archiver)
228
       ("java-plexus-classworlds" ,java-plexus-classworlds)
229
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
230
       ("java-plexus-container-default" ,java-plexus-container-default)
231
       ("java-plexus-utils" ,java-plexus-utils)
232
       ("maven-artifact" ,maven-artifact)
233
       ("maven-compat" ,maven-compat)
234
       ("maven-core" ,maven-core)
235
       ("maven-model" ,maven-model)
236
       ("maven-model-builder" ,maven-model-builder)
237
       ("maven-plugin-api" ,maven-plugin-api)
238
       ("maven-resolver-api" ,maven-resolver-api)
239
       ("maven-resolver-provider" ,maven-resolver-provider)
240
       ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
241
    (home-page "")
242
    (synopsis "")
243
    (description "")
244
    (license license:asl2.0)))
245
246
(define-public maven-doxia-logging-api
247
  (package
248
    (name "maven-doxia-logging-api")
249
    (version "1.8")
250
    (source (origin
251
              (method url-fetch)
252
              (uri (string-append "https://github.com/apache/maven-doxia/"
253
                                  "archive/doxia-" version ".tar.gz"))
254
              (sha256
255
               (base32
256
                "07qckb1fsycnz5b08xbm8b1hjz8295ri6xi47s47rlwxg53hvf4s"))))
257
    (build-system ant-build-system)
258
    (arguments
259
     `(#:jar-name "maven-doxia-logging-api.jar"
260
       #:source-dir "doxia-logging-api/src/main/java"
261
       #:tests? #f)); No tests
262
    (inputs
263
     `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
264
       ("java-plexus-container-default" ,java-plexus-container-default)))
265
    (home-page "https://maven.apache.org/doxia")
266
    (synopsis "Content generation framework")
267
    (description "Doxia is a content generation framework for generating static
268
and dynamic content, that supports a variety of markup languages.")
269
    (license license:asl2.0)))
270
271
(define-public maven-doxia-sink-api
272
  (package
273
    (inherit maven-doxia-logging-api)
274
    (name "maven-doxia-sink-api")
275
    (arguments
276
     `(#:jar-name "maven-doxia-sink-api.jar"
277
       #:source-dir "doxia-sink-api/src/main/java"
278
       #:tests? #f)); No tests
279
    (inputs
280
     `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
281
       ("java-plexus-container-default" ,java-plexus-container-default)
282
       ("maven-doxia-logging-api" ,maven-doxia-logging-api)))))
283
284
(define-public maven-doxia-core
285
  (package
286
    (inherit maven-doxia-logging-api)
287
    (name "maven-doxia-core")
288
    (arguments
289
     `(#:jar-name "maven-doxia-core.jar"
290
       #:source-dir "doxia-core/src/main/java"
291
       #:test-dir "doxia-core/src/test"
292
       #:test-exclude
293
       ;; test fails for unknown reason
294
       (list "**/SnippetMacroTest.java"
295
             ;; requires network
296
             "**/XmlValidatorTest.java"
297
             "**/Abstract*Test.java")
298
       #:phases
299
       (modify-phases %standard-phases
300
         (add-before 'build 'copy-resources
301
           (lambda _
302
             (copy-recursively "doxia-core/src/main/resources"
303
                               "build/classes")
304
             #t))
305
         (add-before 'build 'generate-models
306
           (lambda* (#:key inputs #:allow-other-keys)
307
             (define (modello-single-mode file version mode)
308
               (invoke "java" "org.codehaus.modello.ModelloCli"
309
                       file mode "doxia-core/src/main/java" version
310
                       "false" "true"))
311
             (let ((file "doxia-core/src/main/mdo/document.mdo"))
312
               (modello-single-mode file "4.0.0" "java")
313
               (modello-single-mode file "4.0.0" "xpp3-reader")
314
               (modello-single-mode file "4.0.0" "xpp3-writer")
315
               (modello-single-mode file "4.0.0" "xsd"))
316
             #t))
317
         (add-after 'build 'generate-metadata
318
           (lambda _
319
             (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
320
                     "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
321
                     "--source" "doxia-core/src/main/java"
322
                     "--output" "build/classes/META-INF/plexus/components.xml"
323
                     "--classes" "build/classes"
324
                     "--descriptors" "build/classes/META-INF")
325
             #t))
326
         (add-after 'generate-metadata 'rebuild
327
           (lambda _
328
             (invoke "ant" "jar")
329
             #t)))))
330
    (inputs
331
     `(("java-commons-lang3" ,java-commons-lang3)
332
       ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
333
       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
334
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
335
       ("java-plexus-container-default" ,java-plexus-container-default)
336
       ("maven-doxia-logging-api" ,maven-doxia-logging-api)
337
       ("maven-doxia-sink-api" ,maven-doxia-sink-api)))
338
    (native-inputs
339
     `(("java-modello-core" ,java-modello-core)
340
       ;; for modello:
341
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
342
       ("java-plexus-utils" ,java-plexus-utils)
343
       ("java-guice" ,java-guice)
344
       ("java-cglib" ,java-cglib)
345
       ("java-asm" ,java-asm)
346
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
347
       ("java-javax-inject" ,java-javax-inject)
348
       ("java-plexus-classworlds" ,java-plexus-classworlds)
349
       ("java-guava" ,java-guava)
350
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
351
       ("java-sisu-build-api" ,java-sisu-build-api)
352
       ;; modello plugins:
353
       ("java-modello-plugins-java" ,java-modello-plugins-java)
354
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
355
       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
356
       ("java-modello-plugins-xsd" ,java-modello-plugins-xsd)
357
       ;; for tests
358
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
359
       ("java-hamcrest-core" ,java-hamcrest-core)
360
       ("java-junit" ,java-junit)
361
       ("java-xmlunit" ,java-xmlunit)
362
       ("java-xmlunit-matchers" ,java-xmlunit-matchers)
363
       ;; for generating metadata
364
       ("java-commons-cli" ,java-commons-cli)
365
       ("java-jdom2" ,java-jdom2)
366
       ("java-plexus-cli" ,java-plexus-cli)
367
       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
368
       ("java-qdox" ,java-qdox)
369
       ("maven-plugin-api" ,maven-plugin-api)))))
370
371
(define-public maven-doxia-module-xhtml
372
  (package
373
    (inherit maven-doxia-logging-api)
374
    (name "maven-doxia-module-xhtml")
375
    (arguments
376
     `(#:jar-name "maven-doxia-module-xhtml.jar"
377
       #:source-dir "doxia-modules/doxia-module-xhtml/src/main/java"
378
       #:test-dir "doxia-modules/doxia-module-xhtml/src/test"
379
       #:test-exclude
380
       ;; test fails for unknown reason
381
       (list "**/SnippetMacroTest.java"
382
             ;; requires network
383
             "**/XmlValidatorTest.java"
384
             "**/Abstract*Test.java")
385
       #:phases
386
       (modify-phases %standard-phases
387
         (add-before 'build 'copy-test-classes
388
           (lambda _
389
             (copy-recursively "doxia-core/src/test/java" "doxia-modules/doxia-module-xhtml/src/test/java")
390
             (copy-file "doxia-core/src/test/java/org/apache/maven/doxia/module/AbstractIdentityTest.java"
391
                        "doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/module/AbstractIdentityTest.java")
392
             (copy-file "doxia-core/src/test/java/org/apache/maven/doxia/AbstractModuleTest.java"
393
                        "doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/AbstractModuleTest.java")
394
             (mkdir-p "doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/sink/impl")
395
             (copy-file "doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/SinkTestDocument.java"
396
                        "doxia-modules/doxia-module-xhtml/src/test/java/org/apache/maven/doxia/sink/impl/SinkTestDocument.java")
397
             #t))
398
         (add-after 'build 'generate-metadata
399
           (lambda _
400
             (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
401
                     "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
402
                     "--source" "doxia-modules/doxia-module-xhtml/src/main/java"
403
                     "--output" "build/classes/META-INF/plexus/components.xml"
404
                     "--classes" "build/classes"
405
                     "--descriptors" "build/classes/META-INF")
406
             #t))
407
         (add-after 'generate-metadata 'rebuild
408
           (lambda _
409
             (invoke "ant" "jar")
410
             #t)))))
411
    (inputs
412
     `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
413
       ("java-plexus-utils" ,java-plexus-utils)
414
       ("maven-doxia-core" ,maven-doxia-core)
415
       ("maven-doxia-logging-api" ,maven-doxia-logging-api)
416
       ("maven-doxia-sink-api" ,maven-doxia-sink-api)))
417
    (native-inputs
418
     `(("java-commons-lang3" ,java-commons-lang3)
419
       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
420
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
421
       ("java-guava" ,java-guava)
422
       ("java-hamcrest-core" ,java-hamcrest-core)
423
       ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient)
424
       ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore)
425
       ("java-junit" ,java-junit)
426
       ("java-plexus-classworlds" ,java-plexus-classworlds)
427
       ("java-plexus-container-default" ,java-plexus-container-default)
428
       ("java-xmlunit" ,java-xmlunit)
429
       ("java-xmlunit-matchers" ,java-xmlunit-matchers)
430
       ;; for generating metadata
431
       ("java-asm" ,java-asm)
432
       ("java-commons-cli" ,java-commons-cli)
433
       ("java-jdom2" ,java-jdom2)
434
       ("java-plexus-cli" ,java-plexus-cli)
435
       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
436
       ("java-qdox" ,java-qdox)
437
       ("maven-plugin-api" ,maven-plugin-api)))))
438
439
(define-public maven-doxia-skin-model
440
  (package
441
    (name "maven-doxia-skin-model")
442
    (version "1.8.1")
443
    (source (origin
444
              (method url-fetch)
445
              (uri (string-append "https://github.com/apache/maven-doxia-sitetools/"
446
                                  "archive/doxia-sitetools-" version ".tar.gz"))
447
              (sha256
448
               (base32
449
                "02dgblm6n07jwr7r90wzc8ax9vz3ax7rh5w12wmvfyd5aybh691w"))
450
              (patches
451
                (search-patches "maven-doxia-sitetools-fix-plexus-utils.patch"))))
452
    (build-system ant-build-system)
453
    (arguments
454
     `(#:jar-name "maven-doxia-skin-model.jar"
455
       #:source-dir "doxia-skin-model/src/main/java"
456
       #:tests? #f; no tests
457
       #:phases
458
       (modify-phases %standard-phases
459
         (add-before 'build 'generate-models
460
           (lambda* (#:key inputs #:allow-other-keys)
461
             (define (modello-single-mode file version mode)
462
               (invoke "java" "org.codehaus.modello.ModelloCli"
463
                       file mode "doxia-skin-model/src/main/java" version
464
                       "false" "true"))
465
             (let ((file "doxia-skin-model/src/main/mdo/skin.mdo"))
466
               (modello-single-mode file "4.0.0" "java")
467
               (modello-single-mode file "4.0.0" "xpp3-reader")
468
               (modello-single-mode file "4.0.0" "xsd"))
469
             #t)))))
470
    (inputs
471
     `(("maven-doxia-sink-api" ,maven-doxia-sink-api)))
472
    (native-inputs
473
     `(("unzip" ,unzip)
474
       ("java-modello-core" ,java-modello-core)
475
       ;; for modello:
476
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
477
       ("java-plexus-utils" ,java-plexus-utils)
478
       ("java-guice" ,java-guice)
479
       ("java-cglib" ,java-cglib)
480
       ("java-asm" ,java-asm)
481
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
482
       ("java-javax-inject" ,java-javax-inject)
483
       ("java-plexus-classworlds" ,java-plexus-classworlds)
484
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
485
       ("java-guava" ,java-guava)
486
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
487
       ("java-sisu-build-api" ,java-sisu-build-api)
488
       ;; modello plugins:
489
       ("java-modello-plugins-java" ,java-modello-plugins-java)
490
       ("java-modello-plugins-xml" ,java-modello-plugins-xml)
491
       ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
492
       ("java-modello-plugins-xsd" ,java-modello-plugins-xsd)))
493
    (home-page "")
494
    (synopsis "")
495
    (description "")
496
    (license license:asl2.0)))
497
498
(define-public maven-doxia-decoration-model
499
  (package
500
    (inherit maven-doxia-skin-model)
501
    (name "maven-doxia-decoration-model")
502
    (arguments
503
     `(#:jar-name "maven-doxia-decoration-model.jar"
504
       #:source-dir "doxia-decoration-model/src/main/java"
505
       #:test-dir "doxia-decoration-model/src/test"
506
       #:phases
507
       (modify-phases %standard-phases
508
         (add-before 'build 'generate-models
509
           (lambda* (#:key inputs #:allow-other-keys)
510
             (define (modello-single-mode file version mode)
511
               (invoke "java" "org.codehaus.modello.ModelloCli"
512
                       file mode "doxia-decoration-model/src/main/java" version
513
                       "false" "true"))
514
             (let ((file "doxia-decoration-model/src/main/mdo/decoration.mdo"))
515
               (modello-single-mode file "4.0.0" "xpp3-writer")
516
               (modello-single-mode file "4.0.0" "java")
517
               (modello-single-mode file "4.0.0" "xpp3-reader")
518
               (modello-single-mode file "4.0.0" "xsd"))
519
             #t)))))
520
    (native-inputs
521
     `(("java-junit" ,java-junit)
522
       ,@(package-native-inputs maven-doxia-skin-model)))
523
    (description "")))
524
525
(define-public maven-doxia-site-renderer
526
  (package
527
    (inherit maven-doxia-skin-model)
528
    (name "maven-doxia-site-renderer")
529
    (arguments
530
     `(#:jar-name "maven-doxia-site-renderer.jar"
531
       #:source-dir "doxia-site-renderer/src/main/java"
532
       #:test-dir "doxia-site-renderer/src/test"
533
       #:tests? #f; require gargoylesoftware-htmlunit
534
       #:phases
535
       (modify-phases %standard-phases
536
         (add-before 'build 'copy-resources
537
           (lambda _
538
             (copy-recursively "doxia-site-renderer/src/main/resources"
539
                               "build/classes")
540
             #t)))))
541
    (inputs
542
     `(("java-commons-lang3" ,java-commons-lang3)
543
       ("java-plexus-container-default" ,java-plexus-container-default)
544
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
545
       ("java-plexus-i18n" ,java-plexus-i18n)
546
       ("java-plexus-utils" ,java-plexus-utils)
547
       ("java-plexus-velocity-component" ,java-plexus-velocity-component)
548
       ("java-velocity" ,java-velocity)
549
       ("java-velocity-tools" ,java-velocity-tools)
550
       ("maven-artifact" ,maven-artifact)
551
       ("maven-doxia-core" ,maven-doxia-core)
552
       ("maven-doxia-decoration-model" ,maven-doxia-decoration-model)
553
       ("maven-doxia-logging-api" ,maven-doxia-logging-api)
554
       ("maven-doxia-module-xhtml" ,maven-doxia-module-xhtml)
555
       ("maven-doxia-skin-model" ,maven-doxia-skin-model)
556
       ("maven-doxia-sink-api" ,maven-doxia-sink-api)))
557
    (native-inputs
558
     `(("java-junit" ,java-junit)))
559
    (description "")))
560
561
(define-public maven-reporting-api
562
  (package
563
    (name "maven-reporting-api")
564
    (version "3.0")
565
    (source (origin
566
              (method url-fetch)
567
              (uri (string-append "https://github.com/apache/maven-reporting-api/"
568
                                  "archive/maven-reporting-api-" version ".tar.gz"))
569
              (sha256
570
               (base32
571
                "1dc94n7czax7vrniv4xyqlza2mjqdlzzvq6wh6cmcqnnmgggya91"))))
572
    (build-system ant-build-system)
573
    (arguments
574
     `(#:jar-name "maven-reporting-api.jar"
575
       #:source-dir "src/main/java"
576
       #:tests? #f)); no tests
577
    (inputs
578
     `(("maven-doxia-sink-api" ,maven-doxia-sink-api)))
579
    (native-inputs
580
     `(("unzip" ,unzip)))
581
    (home-page "")
582
    (synopsis "")
583
    (description "")
584
    (license license:asl2.0)))
585
586
(define-public maven-reporting-impl
587
  (package
588
    (name "maven-reporting-impl")
589
    (version "3.0")
590
    (source (origin
591
              (method git-fetch)
592
              (uri (git-reference
593
                     (url "https://github.com/apache/maven-reporting-impl.git")
594
                     (commit "ff10bba47b9ecf728a0f16e096fb410b74711a5d")))
595
              (file-name (git-file-name name version))
596
              (sha256
597
               (base32
598
                "02da8pqa17lmkwjhqyq39ygf4lfa483bbdvhbvjginmpw3ydkbw5"))))
599
    (build-system ant-build-system)
600
    (arguments
601
     `(#:jar-name "maven-reporting-impl.jar"
602
       #:source-dir "src/main/java"
603
       #:test-dir "src/test"
604
       ;; Require junitx.util.PrivateAccessor (?)
605
       #:tests? #f))
606
    (inputs
607
     `(("java-plexus-utils" ,java-plexus-utils)
608
       ("maven-core" ,maven-core)
609
       ("maven-doxia-core" ,maven-doxia-core)
610
       ("maven-doxia-decoration-model" ,maven-doxia-decoration-model)
611
       ("maven-doxia-logging-api" ,maven-doxia-logging-api)
612
       ("maven-doxia-module-xhtml" ,maven-doxia-module-xhtml)
613
       ("maven-doxia-sink-api" ,maven-doxia-sink-api)
614
       ("maven-doxia-site-renderer" ,maven-doxia-site-renderer)
615
       ("maven-plugin-annotations" ,maven-plugin-annotations)
616
       ("maven-plugin-api" ,maven-plugin-api)
617
       ("maven-reporting-api" ,maven-reporting-api)
618
       ("maven-shared-utils" ,maven-shared-utils)))
619
    (native-inputs
620
     `(("java-junit" ,java-junit)))
621
    (home-page "")
622
    (synopsis "")
623
    (description "")
624
    (license license:asl2.0)))
625
626
(define-public maven-plugin-tools-api
627
  (package
628
    (name "maven-plugin-tools-api")
629
    (version "3.6.0")
630
    (source (origin
631
              (method url-fetch)
632
              (uri (string-append "https://github.com/apache/maven-plugin-tools/"
633
                                  "archive/maven-plugin-tools-" version ".tar.gz"))
634
              (sha256
635
               (base32
636
                "1miq87ywh48v0hwl3a4q95rxbgg58zpk59v6z34bl715hcawbv80"))))
637
    (build-system ant-build-system)
638
    (arguments
639
     `(#:jar-name "maven-plugin-tools-api.jar"
640
       #:source-dir "maven-plugin-tools-api/src/main/java"
641
       #:test-dir "maven-plugin-tools-api/src/test"
642
       #:tests? #f)); disabled for now. Require maven-plugin-testing that doesn't build yet
643
    (inputs
644
     `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
645
       ("java-plexus-container-default" ,java-plexus-container-default)
646
       ("java-plexus-utils" ,java-plexus-utils)
647
       ("maven-artifact" ,maven-artifact)
648
       ("maven-model" ,maven-model)
649
       ("maven-core" ,maven-core)
650
       ("maven-plugin-api" ,maven-plugin-api)))
651
    (native-inputs
652
     `(("java-junit" ,java-junit)))
653
    (home-page "")
654
    (synopsis "")
655
    (description "")
656
    (license license:asl2.0)))
657
658
(define-public maven-plugin-tools-generators
659
  (package
660
    (inherit maven-plugin-tools-api)
661
    (name "maven-plugin-tools-generators")
662
    (arguments
663
     `(#:jar-name "maven-plugin-tools-generators.jar"
664
       #:source-dir "maven-plugin-tools-generators/src/main/java"
665
       #:test-dir "maven-plugin-tools-generators/src/test"
666
       #:tests? #f; require maven-plugin-testing
667
       #:phases
668
       (modify-phases %standard-phases
669
        (add-before 'build 'fix-exception
670
          (lambda _
671
            (substitute* "maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java"
672
              (("Properties properties = PropertyUtils.*")
673
               "Properties properties;
674
try {
675
properties = PropertyUtils.loadProperties( tmpPropertiesFile );
676
} catch(IOException e) {
677
e.printStackTrace();
678
return;
679
}
680
"))
681
            #t)))))
682
    (inputs
683
     `(("java-asm" ,java-asm)
684
       ("java-jtidy" ,java-jtidy)
685
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
686
       ("java-plexus-container-default" ,java-plexus-container-default)
687
       ("java-plexus-utils" ,java-plexus-utils)
688
       ("java-plexus-velocity-component" ,java-plexus-velocity-component)
689
       ("java-velocity" ,java-velocity)
690
       ("maven-compat" ,maven-compat)
691
       ("maven-core" ,maven-core)
692
       ("maven-model" ,maven-model)
693
       ("maven-plugin-api" ,maven-plugin-api)
694
       ("maven-plugin-tools-api" ,maven-plugin-tools-api)
695
       ("maven-reporting-api" ,maven-reporting-api)))
696
    (description "")))
697
698
(define-public maven-plugin-plugin
699
  (package
700
    (inherit maven-plugin-tools-api)
701
    (name "maven-plugin-plugin")
702
    (arguments
703
     `(#:jar-name "maven-plugin-plugin.jar"
704
       #:source-dir "maven-plugin-plugin/src/main/java"
705
       #:test-dir "maven-plugin-plugin/src/test"
706
       #:tests? #f; no tests
707
       #:phases
708
       (modify-phases %standard-phases
709
         (add-before 'build 'copy-resources
710
           (lambda _
711
             (copy-recursively "maven-plugin-plugin/src/main/resources"
712
                               "build/classes")
713
             (copy-recursively "maven-plugin-plugin/src/main/filtered-resources"
714
                               "build/classes")
715
             #t))
716
         (add-before 'build 'generate-models
717
           (lambda* (#:key inputs #:allow-other-keys)
718
             (define (modello-single-mode file version mode)
719
               (invoke "java" "org.codehaus.modello.ModelloCli"
720
                       file mode "maven-plugin-plugin/src/main/java" version
721
                       "false" "true"))
722
             (modello-single-mode "maven-plugin-plugin/src/main/mdo/pluginRequirements.mdo"
723
                                  "1.0.0" "java"))))))
724
    (inputs
725
     `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
726
       ("java-plexus-container-default" ,java-plexus-container-default)
727
       ("java-plexus-utils" ,java-plexus-utils)
728
       ("java-plexus-velocity-component" ,java-plexus-velocity-component)
729
       ("java-velocity" ,java-velocity)
730
       ("maven-artifact" ,maven-artifact)
731
       ("maven-compat" ,maven-compat)
732
       ("maven-core" ,maven-core)
733
       ("maven-doxia-sink-api" ,maven-doxia-sink-api)
734
       ("maven-doxia-site-renderer" ,maven-doxia-site-renderer)
735
       ("maven-doxia-core" ,maven-doxia-core)
736
       ("maven-doxia-logging-api" ,maven-doxia-logging-api)
737
       ("maven-model" ,maven-model)
738
       ("maven-plugin-annotations" ,maven-plugin-annotations)
739
       ("maven-plugin-api" ,maven-plugin-api)
740
       ("maven-plugin-tools-api" ,maven-plugin-tools-api)
741
       ("maven-plugin-tools-generators" ,maven-plugin-tools-generators)
742
       ("maven-reporting-api" ,maven-reporting-api)
743
       ("maven-reporting-impl" ,maven-reporting-impl)
744
       ("maven-repository-metadata" ,maven-repository-metadata)))
745
    (native-inputs
746
     `(("java-modello-core" ,java-modello-core)
747
       ;; for modello:
748
       ("java-asm" ,java-asm)
749
       ("java-cglib" ,java-cglib)
750
       ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
751
       ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
752
       ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
753
       ("java-guava" ,java-guava)
754
       ("java-guice" ,java-guice)
755
       ("java-javax-inject" ,java-javax-inject)
756
       ("java-plexus-classworlds" ,java-plexus-classworlds)
757
       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
758
       ("java-sisu-build-api" ,java-sisu-build-api)
759
       ;; modello plugins:
760
       ("java-modello-plugins-java" ,java-modello-plugins-java)))
761
    (description "")))
762