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