Commit | Line | Data |
---|---|---|
41125eaf JL |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> | |
b7a34617 | 3 | ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr> |
53ba191b | 4 | ;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> |
a0068742 | 5 | ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> |
41125eaf JL |
6 | ;;; |
7 | ;;; This file is part of GNU Guix. | |
8 | ;;; | |
9 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
10 | ;;; under the terms of the GNU General Public License as published by | |
11 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
12 | ;;; your option) any later version. | |
13 | ;;; | |
14 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
15 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | ;;; GNU General Public License for more details. | |
18 | ;;; | |
19 | ;;; You should have received a copy of the GNU General Public License | |
20 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
21 | ||
22 | (define-module (gnu packages maven) | |
23 | #:use-module ((guix licenses) #:prefix license:) | |
24 | #:use-module (guix packages) | |
25 | #:use-module (guix download) | |
a661af5c | 26 | #:use-module (guix git-download) |
41125eaf JL |
27 | #:use-module (guix utils) |
28 | #:use-module (guix build-system ant) | |
29 | #:use-module (gnu packages) | |
7504f3c3 | 30 | #:use-module (gnu packages base) |
b2185040 | 31 | #:use-module (gnu packages compression) |
9f25cba6 | 32 | #:use-module (gnu packages java) |
ff0496d0 | 33 | #:use-module (gnu packages maven-parent-pom) |
f216a9f9 | 34 | #:use-module (gnu packages web) |
9f25cba6 JL |
35 | #:use-module (gnu packages xml)) |
36 | ||
37 | (define-public java-plexus-component-metadata | |
38 | (package | |
39 | (inherit java-plexus-container-default) | |
40 | (name "java-plexus-component-metadata") | |
41 | (arguments | |
42 | `(#:jar-name "plexus-component-metadata.jar" | |
43 | #:source-dir "src/main/java" | |
44 | #:test-dir "src/test" | |
45 | #:jdk ,icedtea-8 | |
46 | #:phases | |
47 | (modify-phases %standard-phases | |
48 | (add-before 'configure 'chdir | |
49 | (lambda _ | |
50 | (chdir "plexus-component-metadata") | |
51 | #t)) | |
52 | (add-before 'build 'copy-resources | |
53 | (lambda _ | |
54 | (copy-recursively "src/main/resources" | |
55 | "build/classes/") | |
56 | #t))))) | |
57 | (inputs | |
58 | `(("java-plexus-container-default" ,java-plexus-container-default) | |
59 | ("java-plexu-component-annotations" ,java-plexus-component-annotations) | |
60 | ("java-plexus-utils" ,java-plexus-utils) | |
61 | ("java-plexus-cli" ,java-plexus-cli) | |
62 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
63 | ("maven-plugin-api" ,maven-plugin-api) | |
64 | ("maven-plugin-annotations" ,maven-plugin-annotations) | |
65 | ("maven-core-bootstrap" ,maven-core-bootstrap) | |
66 | ("maven-model" ,maven-model) | |
67 | ("java-commons-cli" ,java-commons-cli) | |
68 | ("java-qdox" ,java-qdox) | |
69 | ("java-jdom2" ,java-jdom2) | |
70 | ("java-asm" ,java-asm))) | |
71 | (native-inputs | |
72 | `(("java-junit" ,java-junit) | |
73 | ("java-guava" ,java-guava) | |
74 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect))) | |
75 | (synopsis "Inversion-of-control container for Maven") | |
76 | (description "The Plexus project provides a full software stack for creating | |
77 | and executing software projects. Based on the Plexus container, the | |
78 | applications can utilise component-oriented programming to build modular, | |
79 | reusable components that can easily be assembled and reused. This package | |
80 | provides the Maven plugin generating the component metadata."))) | |
41125eaf JL |
81 | |
82 | (define-public maven-resolver-api | |
83 | (package | |
84 | (name "maven-resolver-api") | |
0eab9e13 | 85 | (version "1.3.1") |
41125eaf | 86 | (source (origin |
a661af5c TGR |
87 | (method git-fetch) |
88 | (uri (git-reference | |
b0e7b699 | 89 | (url "https://github.com/apache/maven-resolver") |
a661af5c TGR |
90 | (commit (string-append "maven-resolver-" version)))) |
91 | (file-name (git-file-name name version)) | |
41125eaf JL |
92 | (sha256 |
93 | (base32 | |
a661af5c | 94 | "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d")))) |
41125eaf JL |
95 | (build-system ant-build-system) |
96 | (arguments | |
97 | `(#:jar-name "maven-resolver-api.jar" | |
98 | #:source-dir "maven-resolver-api/src/main/java" | |
51087d51 JL |
99 | #:test-dir "maven-resolver-api/src/test" |
100 | #:phases | |
101 | (modify-phases %standard-phases | |
102 | (replace 'install | |
103 | (install-from-pom "maven-resolver-api/pom.xml"))))) | |
41125eaf | 104 | (native-inputs |
0eab9e13 JL |
105 | `(("java-asm" ,java-asm) |
106 | ("java-cglib" ,java-cglib) | |
107 | ("java-hamcrest-core" ,java-hamcrest-core) | |
108 | ("java-junit" ,java-junit) | |
109 | ("java-mockito-1" ,java-mockito-1) | |
110 | ("java-objenesis" ,java-objenesis))) | |
51087d51 JL |
111 | (propagated-inputs |
112 | `(("maven-resolver-parent-pom" ,maven-resolver-parent-pom))) | |
41125eaf JL |
113 | (home-page "https://github.com/apache/maven-resolver") |
114 | (synopsis "Maven repository system API") | |
115 | (description "This package contains the API for the maven repository system.") | |
116 | (license license:asl2.0))) | |
d85cb539 | 117 | |
51087d51 JL |
118 | (define maven-resolver-parent-pom |
119 | (package | |
120 | (inherit maven-resolver-api) | |
121 | (name "maven-resolver-parent-pom") | |
122 | (arguments | |
123 | `(#:tests? #f | |
124 | #:phases | |
125 | (modify-phases %standard-phases | |
126 | (delete 'configure) | |
127 | (delete 'build) | |
128 | (add-before 'install 'fix-pom | |
129 | (lambda _ | |
130 | (substitute* "pom.xml" | |
131 | (("<classifier>no_aop</classifier>") "")) | |
132 | #t)) | |
133 | (replace 'install | |
134 | (install-pom-file "pom.xml"))))) | |
135 | (propagated-inputs '()))) | |
136 | ||
d85cb539 JL |
137 | (define-public maven-resolver-spi |
138 | (package | |
139 | (inherit maven-resolver-api) | |
140 | (name "maven-resolver-spi") | |
141 | (arguments | |
142 | `(#:jar-name "maven-resolver-spi.jar" | |
143 | #:source-dir "maven-resolver-spi/src/main/java" | |
144 | #:test-dir "maven-resolver-spi/src/test" | |
51087d51 JL |
145 | #:phases |
146 | (modify-phases %standard-phases | |
147 | (replace 'install | |
148 | (install-from-pom "maven-resolver-spi/pom.xml"))))) | |
149 | (propagated-inputs | |
d85cb539 JL |
150 | `(("maven-resolver-api" ,maven-resolver-api))) |
151 | (synopsis "Maven repository system SPI") | |
152 | (description "This package contains the service provider interface (SPI) | |
153 | for repository system implementations and repository connectors."))) | |
36053783 JL |
154 | |
155 | (define-public maven-resolver-test-util | |
156 | (package | |
157 | (inherit maven-resolver-api) | |
158 | (name "maven-resolver-test-util") | |
159 | (arguments | |
160 | `(#:jar-name "maven-resolver-test-util.jar" | |
161 | #:source-dir "maven-resolver-test-util/src/main/java" | |
162 | #:test-dir "maven-resolver-test-util/src/test" | |
163 | #:jdk ,icedtea-8)) | |
164 | (inputs | |
165 | `(("maven-resolver-api" ,maven-resolver-api) | |
166 | ("maven-resolver-spi" ,maven-resolver-spi))) | |
167 | (synopsis "Utility classes for testing the maven repository system") | |
168 | (description "This package contains a collection of utility classes to | |
169 | ease testing of the repository system."))) | |
bca6cf54 JL |
170 | |
171 | (define-public maven-resolver-util | |
172 | (package | |
173 | (inherit maven-resolver-api) | |
174 | (name "maven-resolver-util") | |
175 | (arguments | |
176 | `(#:jar-name "maven-resolver-util.jar" | |
177 | #:source-dir "maven-resolver-util/src/main/java" | |
178 | #:test-dir "maven-resolver-util/src/test" | |
51087d51 JL |
179 | #:phases |
180 | (modify-phases %standard-phases | |
181 | (replace 'install | |
182 | (install-from-pom "maven-resolver-util/pom.xml"))))) | |
183 | (propagated-inputs | |
bca6cf54 JL |
184 | `(("maven-resolver-api" ,maven-resolver-api))) |
185 | (native-inputs | |
186 | `(("java-junit" ,java-junit) | |
187 | ("java-hamcrest-core" ,java-hamcrest-core) | |
188 | ("maven-resolver-test-util" ,maven-resolver-test-util))) | |
189 | (synopsis "Utility classes for the maven repository system") | |
190 | (description "This package contains a collection of utility classes to | |
191 | ease usage of the repository system."))) | |
f70666c9 JL |
192 | |
193 | (define-public maven-resolver-connector-basic | |
194 | (package | |
195 | (inherit maven-resolver-api) | |
196 | (name "maven-resolver-connector-basic") | |
197 | (arguments | |
198 | `(#:jar-name "maven-resolver-connector-basic.jar" | |
199 | #:source-dir "maven-resolver-connector-basic/src/main/java" | |
200 | #:test-dir "maven-resolver-connector-basic/src/test" | |
201 | #:jdk ,icedtea-8 | |
202 | #:phases | |
203 | (modify-phases %standard-phases | |
204 | (add-before 'build 'generate-sisu | |
205 | (lambda _ | |
206 | (mkdir-p "build/classes/META-INF/sisu") | |
207 | (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" | |
208 | (lambda _ | |
0eab9e13 | 209 | (display "org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory\n"))) |
51087d51 JL |
210 | #t)) |
211 | (replace 'install | |
212 | (install-from-pom "maven-resolver-connector-basic/pom.xml"))))) | |
213 | (propagated-inputs | |
f70666c9 JL |
214 | `(("maven-resolver-api" ,maven-resolver-api) |
215 | ("maven-resolver-spi" ,maven-resolver-spi) | |
216 | ("maven-resolver-util" ,maven-resolver-util) | |
0eab9e13 | 217 | ("java-slf4j-api" ,java-slf4j-api))) |
f70666c9 | 218 | (native-inputs |
51087d51 JL |
219 | `(("java-javax-inject" ,java-javax-inject) |
220 | ("java-junit" ,java-junit) | |
f70666c9 JL |
221 | ("maven-resolver-test-util" ,maven-resolver-test-util))) |
222 | (synopsis "Maven repository connector implementation") | |
223 | (description "This package contains a repository connector implementation | |
224 | for repositories using URI-based layouts."))) | |
458687d5 | 225 | |
90fe8797 JL |
226 | (define-public maven-resolver-impl |
227 | (package | |
228 | (inherit maven-resolver-api) | |
229 | (name "maven-resolver-impl") | |
230 | (arguments | |
231 | `(#:jar-name "maven-resolver-impl.jar" | |
232 | #:source-dir "maven-resolver-impl/src/main/java" | |
233 | #:test-dir "maven-resolver-impl/src/test" | |
90fe8797 JL |
234 | #:phases |
235 | (modify-phases %standard-phases | |
236 | (add-before 'build 'generate-sisu | |
237 | (lambda _ | |
238 | (mkdir-p "build/classes/META-INF/sisu") | |
239 | (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" | |
240 | (lambda _ | |
241 | (display | |
242 | (string-append | |
243 | ;; Build this list by looking for files containing "@Named" | |
244 | "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n" | |
0eab9e13 JL |
245 | "org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector\n" |
246 | "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n" | |
247 | "org.eclipse.aether.internal.impl.DefaultDeployer\n" | |
90fe8797 | 248 | "org.eclipse.aether.internal.impl.DefaultFileProcessor\n" |
0eab9e13 | 249 | "org.eclipse.aether.internal.impl.DefaultInstaller\n" |
90fe8797 | 250 | "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n" |
90fe8797 | 251 | "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n" |
90fe8797 | 252 | "org.eclipse.aether.internal.impl.DefaultOfflineController\n" |
90fe8797 | 253 | "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n" |
90fe8797 | 254 | "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n" |
0eab9e13 JL |
255 | "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n" |
256 | "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n" | |
257 | "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n" | |
258 | "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n" | |
259 | "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n" | |
90fe8797 | 260 | "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n" |
0eab9e13 JL |
261 | "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n" |
262 | "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n" | |
263 | "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n" | |
264 | "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n" | |
265 | "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n" | |
266 | "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory")))) | |
51087d51 JL |
267 | #t)) |
268 | (replace 'install | |
269 | (install-from-pom "maven-resolver-impl/pom.xml"))))) | |
270 | (propagated-inputs | |
90fe8797 JL |
271 | `(("maven-resolver-api" ,maven-resolver-api) |
272 | ("maven-resolver-spi" ,maven-resolver-spi) | |
273 | ("maven-resolver-util" ,maven-resolver-util) | |
274 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
275 | ("java-javax-inject" ,java-javax-inject) | |
276 | ("java-guice" ,java-guice) | |
51087d51 JL |
277 | ("java-slf4j-api" ,java-slf4j-api) |
278 | ("maven-resolver-parent-pom" ,maven-resolver-parent-pom))) | |
90fe8797 JL |
279 | (native-inputs |
280 | `(("java-junit" ,java-junit) | |
90fe8797 JL |
281 | ("maven-resolver-test-util" ,maven-resolver-test-util))))) |
282 | ||
19126bba JL |
283 | (define-public maven-resolver-transport-wagon |
284 | (package | |
285 | (inherit maven-resolver-api) | |
286 | (name "maven-resolver-transport-wagon") | |
287 | (arguments | |
288 | `(#:jar-name "maven-resolver-transport-wagon.jar" | |
289 | #:source-dir "maven-resolver-transport-wagon/src/main/java" | |
290 | #:test-dir "maven-resolver-transport-wagon/src/test" | |
291 | #:jdk ,icedtea-8 | |
292 | #:phases | |
293 | (modify-phases %standard-phases | |
294 | (add-before 'build 'generate-sisu | |
295 | (lambda _ | |
296 | (mkdir-p "build/classes/META-INF/sisu") | |
297 | (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" | |
298 | (lambda _ | |
299 | (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n"))) | |
300 | #t)) | |
301 | (add-before 'build 'generate-components.xml | |
302 | (lambda _ | |
303 | (mkdir-p "build/classes/META-INF/plexus") | |
304 | (with-output-to-file "build/classes/META-INF/plexus/components.xml" | |
305 | (lambda _ | |
306 | (display | |
307 | (string-append | |
308 | "<?xml version=\"1.0\" encoding=\"UTF-8\"?> | |
309 | <component-set> | |
310 | <components> | |
311 | <component> | |
312 | <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role> | |
313 | <role-hint>plexus</role-hint> | |
314 | <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation> | |
315 | <description /> | |
316 | <isolated-realm>false</isolated-realm> | |
317 | <requirements> | |
318 | <requirement> | |
319 | <role>org.codehaus.plexus.PlexusContainer</role> | |
320 | <role-hint /> | |
321 | <field-name>container</field-name> | |
322 | </requirement> | |
323 | </requirements> | |
324 | </component> | |
325 | <component> | |
326 | <role>org.eclipse.aether.transport.wagon.WagonProvider</role> | |
327 | <role-hint>plexus</role-hint> | |
328 | <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation> | |
329 | <description /> | |
330 | <isolated-realm>false</isolated-realm> | |
331 | <requirements> | |
332 | <requirement> | |
333 | <role>org.codehaus.plexus.PlexusContainer</role> | |
334 | <role-hint /> | |
335 | <field-name>container</field-name> | |
336 | </requirement> | |
337 | </requirements> | |
338 | </component> | |
339 | </components> | |
340 | </component-set>\n")))) | |
341 | #t))))) | |
342 | (inputs | |
343 | `(("maven-resolver-api" ,maven-resolver-api) | |
344 | ("maven-resolver-spi" ,maven-resolver-spi) | |
345 | ("maven-resolver-util" ,maven-resolver-util) | |
346 | ("java-javax-inject" ,java-javax-inject) | |
347 | ("mavne-wagon-provider-api" ,maven-wagon-provider-api) | |
348 | ("java-plexus-component-annotation" ,java-plexus-component-annotations) | |
349 | ("java-plexus-classworld" ,java-plexus-classworlds) | |
350 | ("java-plexus-plexus-util" ,java-plexus-utils) | |
0eab9e13 | 351 | ("java-slf4j-api" ,java-slf4j-api) |
19126bba JL |
352 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) |
353 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus))) | |
354 | (native-inputs | |
355 | `(("java-junit" ,java-junit) | |
356 | ("java-hamcrest-core" ,java-hamcrest-core) | |
357 | ("maven-resolver-test-util" ,maven-resolver-test-util) | |
358 | ("java-guava" ,java-guava) | |
359 | ("java-cglib" ,java-cglib) | |
360 | ("java-asm" ,java-asm) | |
361 | ("java-aopalliance" ,java-aopalliance) | |
362 | ("java-guice" ,java-guice))) | |
363 | (synopsis "Transport implementation for Maven") | |
364 | (description "This package contains a transport implementation based on | |
365 | Maven Wagon, for use in Maven."))) | |
366 | ||
b2185040 JL |
367 | (define-public maven-shared-utils |
368 | (package | |
369 | (name "maven-shared-utils") | |
370 | (version "3.2.1") | |
371 | (source (origin | |
372 | (method url-fetch) | |
9a01efa2 | 373 | (uri (string-append "mirror://apache/maven/shared/" |
b2185040 JL |
374 | "maven-shared-utils-" version "-source-release.zip")) |
375 | (sha256 | |
376 | (base32 | |
377 | "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6")))) | |
378 | (build-system ant-build-system) | |
379 | (arguments | |
380 | `(#:jar-name "maven-shared-utils.jar" | |
381 | #:source-dir "src/main/java" | |
382 | #:jdk ,icedtea-8 | |
383 | #:phases | |
384 | (modify-phases %standard-phases | |
385 | (add-before 'check 'remove-cyclic-dep | |
386 | (lambda _ | |
387 | (delete-file | |
388 | "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java") | |
51087d51 JL |
389 | #t)) |
390 | (replace 'install | |
391 | (install-from-pom "pom.xml"))))) | |
392 | (propagated-inputs | |
b2185040 JL |
393 | `(("java-jansi" ,java-jansi) |
394 | ("java-commons-io" ,java-commons-io) | |
395 | ("java-jsr305" ,java-jsr305) | |
51087d51 JL |
396 | ("java-plexus-container-default" ,java-plexus-container-default) |
397 | ("maven-parent-pom-30" ,maven-parent-pom-30))) | |
b2185040 JL |
398 | (native-inputs |
399 | `(("unzip" ,unzip) | |
400 | ("java-junit" ,java-junit) | |
401 | ("java-hamcrest-core" ,java-hamcrest-core) | |
402 | ("java-commons-lang3" ,java-commons-lang3))) | |
403 | (home-page "https://maven.apache.org/shared/maven-shared-utils/") | |
404 | (synopsis "Plexus-util replacement for maven") | |
405 | (description "This project aims to be a functional replacement for | |
406 | plexus-utils in Maven. It is not a 100% API compatible replacement but a | |
407 | replacement with improvements.") | |
408 | (license license:asl2.0))) | |
409 | ||
a59d5f35 JL |
410 | (define-public maven-plugin-annotations |
411 | (package | |
412 | (name "maven-plugin-annotations") | |
413 | (version "3.5") | |
414 | (source (origin | |
415 | (method url-fetch) | |
9a01efa2 | 416 | (uri (string-append "mirror://apache/maven/" |
a59d5f35 JL |
417 | "plugin-tools/maven-plugin-tools-" version |
418 | "-source-release.zip")) | |
419 | (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2")))) | |
420 | (build-system ant-build-system) | |
421 | (arguments | |
422 | `(#:jar-name "maven-plugin-annotations.jar" | |
423 | #:source-dir "maven-plugin-annotations/src/main/java" | |
424 | #:tests? #f)) | |
425 | (inputs | |
426 | `(("maven-artifact" ,maven-artifact))) | |
427 | (native-inputs | |
428 | `(("unzip" ,unzip))) | |
429 | (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/") | |
430 | (synopsis "Java 5 annotations to use in Mojos") | |
431 | (description "This package contains Java 5 annotations for use in Mojos.") | |
432 | (license license:asl2.0))) | |
433 | ||
ff7a0fcf JL |
434 | (define-public maven-wagon-provider-api |
435 | (package | |
436 | (name "maven-wagon-provider-api") | |
ff0496d0 | 437 | (version "3.3.4") |
ff7a0fcf JL |
438 | (source (origin |
439 | (method url-fetch) | |
51087d51 | 440 | (uri (string-append "https://archive.apache.org/dist/maven/wagon/" |
ff7a0fcf | 441 | "wagon-" version "-source-release.zip")) |
ff0496d0 JL |
442 | (sha256 |
443 | (base32 | |
444 | "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a")))) | |
ff7a0fcf JL |
445 | (build-system ant-build-system) |
446 | (arguments | |
447 | `(#:jar-name "maven-wagon-provider-api.jar" | |
448 | #:source-dir "wagon-provider-api/src/main/java" | |
ff0496d0 JL |
449 | #:test-dir "wagon-provider-api/src/test" |
450 | #:phases | |
451 | (modify-phases %standard-phases | |
452 | (replace 'install | |
453 | (install-from-pom "wagon-provider-api/pom.xml"))))) | |
454 | (propagated-inputs | |
455 | `(("java-plexus-utils" ,java-plexus-utils) | |
456 | ("maven-wagon-parent-pom" ,maven-wagon-parent-pom))) | |
ff7a0fcf JL |
457 | (native-inputs |
458 | `(("unzip" ,unzip) | |
459 | ("java-junit" ,java-junit) | |
460 | ("java-easymock" ,java-easymock))) | |
461 | (home-page "https://maven.apache.org/wagon") | |
462 | (synopsis "Transport abstraction for Maven") | |
463 | (description "Maven Wagon is a transport abstraction that is used in Maven's | |
464 | artifact and repository handling code.") | |
465 | (license license:asl2.0))) | |
466 | ||
ff0496d0 JL |
467 | (define maven-wagon-parent-pom |
468 | (package | |
469 | (inherit maven-wagon-provider-api) | |
470 | (arguments | |
471 | `(#:tests? #f | |
472 | #:phases | |
473 | (modify-phases %standard-phases | |
474 | (delete 'configure) | |
475 | (delete 'build) | |
476 | (replace 'install | |
477 | (install-pom-file "pom.xml"))))) | |
478 | (propagated-inputs | |
479 | `(("maven-parent-pom-33" ,maven-parent-pom-33))) | |
480 | (native-inputs | |
481 | `(("unzip" ,unzip))))) | |
482 | ||
f216a9f9 JL |
483 | (define-public maven-wagon-provider-test |
484 | (package | |
485 | (inherit maven-wagon-provider-api) | |
486 | (name "maven-wagon-provider-test") | |
487 | (arguments | |
488 | `(#:jar-name "maven-wagon-provider-test.jar" | |
489 | #:source-dir "wagon-provider-test/src/main/java" | |
490 | #:tests? #f; no tests | |
491 | #:jdk ,icedtea-8)) | |
492 | (inputs | |
493 | `(("java-plexus-utils" ,java-plexus-utils) | |
494 | ("java-plexus-container-default" ,java-plexus-container-default) | |
ff0496d0 | 495 | ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2) |
f216a9f9 JL |
496 | ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) |
497 | ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) | |
498 | ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) | |
499 | ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) | |
500 | ("java-slf4j-api" ,java-slf4j-api) | |
4b472f6a | 501 | ("java-javaee-servletapi" ,java-javaee-servletapi) |
f216a9f9 JL |
502 | ("maven-wagon-provider-api" ,maven-wagon-provider-api))) |
503 | (synopsis "Test classes from maven-wagon") | |
504 | (description "Maven Wagon is a transport abstraction that is used in Maven's | |
505 | artifact and repository handling code. This package contains common test | |
506 | classes used in multiple maven-wagon components."))) | |
507 | ||
0d1b3b39 JL |
508 | (define-public maven-wagon-file |
509 | (package | |
510 | (inherit maven-wagon-provider-api) | |
511 | (name "maven-wagon-file") | |
512 | (arguments | |
513 | `(#:jar-name "maven-wagon-file.jar" | |
514 | #:source-dir "wagon-providers/wagon-file/src/main/java" | |
515 | #:test-dir "wagon-providers/wagon-file/src/test" | |
516 | #:jdk ,icedtea-8 | |
517 | #:phases | |
518 | (modify-phases %standard-phases | |
519 | (add-before 'check 'fix-paths | |
520 | (lambda _ | |
521 | ;; Tests assume they are run by maven, which copies test resources | |
522 | ;; to target. Our ant-build-system does the same, but with the | |
523 | ;; build directory. | |
524 | (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java" | |
525 | (("target") "build")) | |
526 | #t)) | |
527 | (add-after 'build 'generate-metadata | |
528 | (lambda _ | |
529 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") | |
530 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" | |
531 | "--source" "wagon-providers/wagon-file/src/main/java" | |
532 | "--output" "build/classes/META-INF/plexus/components.xml" | |
533 | "--classes" "build/classes" | |
534 | "--descriptors" "build/classes/META-INF") | |
535 | #t)) | |
536 | (add-after 'generate-metadata 'rebuild | |
537 | (lambda _ | |
538 | (invoke "ant" "jar") | |
539 | #t))))) | |
540 | (inputs | |
541 | `(("java-plexus-utils" ,java-plexus-utils) | |
542 | ("maven-wagon-provider-api" ,maven-wagon-provider-api))) | |
543 | (native-inputs | |
544 | `(("maven-wagon-provider-test" ,maven-wagon-provider-test) | |
545 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) | |
546 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
547 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
548 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
549 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
550 | ("java-guava" ,java-guava) | |
551 | ("java-guice" ,java-guice) | |
552 | ("java-javax-inject" ,java-javax-inject) | |
553 | ("java-cglib" ,java-cglib) | |
554 | ("java-slf4j-api" ,java-slf4j-api) | |
555 | ("java-plexus-utils" ,java-plexus-utils) | |
556 | ("java-plexus-cli" ,java-plexus-cli) | |
557 | ("maven-plugin-api" ,maven-plugin-api) | |
558 | ("maven-plugin-annotations" ,maven-plugin-annotations) | |
559 | ("maven-core" ,maven-core) | |
560 | ("maven-model" ,maven-model) | |
561 | ("java-commons-cli" ,java-commons-cli) | |
562 | ("java-qdox" ,java-qdox) | |
563 | ("java-jdom2" ,java-jdom2) | |
564 | ("java-asm" ,java-asm) | |
565 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
566 | ,@(package-native-inputs maven-wagon-provider-api))) | |
567 | (synopsis "Wagon provider that gets and puts artifacts using the file system") | |
568 | (description "Maven Wagon is a transport abstraction that is used in Maven's | |
569 | artifact and repository handling code. It uses providers, that are tools to | |
570 | manage artifacts and deployment. This package contains the file provider which | |
571 | gets and puts artifacts using the file system."))) | |
572 | ||
53360e48 JL |
573 | (define-public maven-wagon-tck-http |
574 | (package | |
575 | (inherit maven-wagon-provider-api) | |
576 | (name "maven-wagon-tck-http") | |
577 | (arguments | |
578 | `(#:jar-name "maven-wagon-tck-http.jar" | |
579 | #:source-dir "wagon-tcks/wagon-tck-http/src/main/java" | |
580 | #:tests? #f; no tests | |
581 | #:jdk ,icedtea-8)) | |
582 | (inputs | |
583 | `(("java-plexus-util" ,java-plexus-utils) | |
584 | ("maven-wagon-provider-api" ,maven-wagon-provider-api) | |
53ba191b | 585 | ("java-javaee-servletapi" ,java-javaee-servletapi) |
53360e48 JL |
586 | ("java-slf4j-api" ,java-slf4j-api) |
587 | ("java-commons-codec" ,java-commons-codec) | |
588 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
589 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
590 | ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) | |
591 | ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2) | |
592 | ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) | |
593 | ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) | |
594 | ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2))) | |
595 | (synopsis "Wagon HTTP Test Compatibility Kit") | |
596 | (description "Maven Wagon is a transport abstraction that is used in Maven's | |
597 | artifact and repository handling code. This package contains the HTTP | |
598 | Test Compatibility Kit."))) | |
599 | ||
c3f5ec6e JL |
600 | (define-public maven-wagon-http-shared |
601 | (package | |
602 | (inherit maven-wagon-provider-api) | |
603 | (name "maven-wagon-http-shared") | |
604 | (arguments | |
605 | `(#:jar-name "maven-wagon-http-shared.jar" | |
606 | #:source-dir "wagon-providers/wagon-http-shared/src/main/java" | |
607 | #:test-dir "wagon-providers/wagon-http-shared/src/test" | |
608 | #:jdk ,icedtea-8 | |
609 | #:phases | |
610 | (modify-phases %standard-phases | |
611 | (add-after 'build 'generate-metadata | |
612 | (lambda _ | |
613 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") | |
614 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" | |
615 | "--source" "wagon-providers/wagon-http-shared/src/main/java" | |
616 | "--output" "build/classes/META-INF/plexus/components.xml" | |
617 | "--classes" "build/classes" | |
618 | "--descriptors" "build/classes/META-INF") | |
619 | #t)) | |
620 | (add-after 'generate-metadata 'rebuild | |
621 | (lambda _ | |
622 | (invoke "ant" "jar") | |
623 | #t))))) | |
624 | (inputs | |
625 | `(("java-plexus-utils" ,java-plexus-utils) | |
626 | ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient) | |
627 | ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) | |
628 | ("java-commons-io" ,java-commons-io) | |
629 | ("java-jsoup" ,java-jsoup) | |
630 | ("maven-wagon-provider-api" ,maven-wagon-provider-api))) | |
631 | (native-inputs | |
632 | `(("maven-wagon-provider-test" ,maven-wagon-provider-test) | |
633 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) | |
634 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
635 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
636 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
637 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
638 | ("java-guava" ,java-guava) | |
639 | ("java-guice" ,java-guice) | |
640 | ("java-javax-inject" ,java-javax-inject) | |
641 | ("java-cglib" ,java-cglib) | |
642 | ("java-slf4j-api" ,java-slf4j-api) | |
643 | ("java-plexus-utils" ,java-plexus-utils) | |
644 | ("java-plexus-cli" ,java-plexus-cli) | |
645 | ("maven-plugin-api" ,maven-plugin-api) | |
646 | ("maven-plugin-annotations" ,maven-plugin-annotations) | |
647 | ("maven-core" ,maven-core) | |
648 | ("maven-model" ,maven-model) | |
649 | ("java-commons-cli" ,java-commons-cli) | |
650 | ("java-qdox" ,java-qdox) | |
651 | ("java-jdom2" ,java-jdom2) | |
652 | ("java-asm" ,java-asm) | |
653 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
654 | ,@(package-native-inputs maven-wagon-provider-api))) | |
655 | (synopsis "Shared Library for wagon providers supporting HTTP.") | |
656 | (description "Maven Wagon is a transport abstraction that is used in Maven's | |
657 | artifact and repository handling code. It uses providers, that are tools to | |
658 | manage artifacts and deployment. This package contains a shared library for | |
659 | wagon providers supporting HTTP."))) | |
660 | ||
aa06dd0f JL |
661 | (define-public maven-wagon-http |
662 | (package | |
663 | (inherit maven-wagon-provider-api) | |
664 | (name "maven-wagon-http") | |
665 | (arguments | |
666 | `(#:jar-name "maven-wagon-http.jar" | |
667 | #:source-dir "wagon-providers/wagon-http/src/main/java" | |
668 | #:test-dir "wagon-providers/wagon-http/src/test" | |
669 | #:test-exclude (list | |
670 | "**/Abstract*.java" | |
671 | ;; FIXME: javax.net.ssl.SSLHandshakeException: | |
672 | ;; sun.security.validator.ValidatorException: | |
673 | ;; PKIX path building failed: | |
674 | ;; sun.security.provider.certpath.SunCertPathBuilderException: | |
675 | ;; unable to find valid certification path to requested target | |
676 | "**/HttpsWagonPreemptiveTest.java" | |
677 | "**/HttpsWagonTest.java" | |
678 | ;; Injection errors | |
679 | "**/TckTest.java") | |
680 | #:jdk ,icedtea-8 | |
681 | #:phases | |
682 | (modify-phases %standard-phases | |
683 | (add-before 'build 'copy-resources | |
684 | (lambda _ | |
685 | (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml" | |
686 | "build/classes/META-INF/plexus") | |
687 | #t)) | |
688 | (add-before 'check 'fix-resource-path | |
689 | (lambda _ | |
690 | (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java" | |
691 | "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java") | |
692 | (("src/test") "wagon-providers/wagon-http/src/test")) | |
693 | #t))))) | |
694 | (inputs | |
695 | `(("java-plexus-utils" ,java-plexus-utils) | |
696 | ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient) | |
697 | ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) | |
698 | ("maven-wagon-http-shared" ,maven-wagon-http-shared) | |
699 | ("maven-wagon-tck-http" ,maven-wagon-tck-http) | |
700 | ("maven-wagon-provider-api" ,maven-wagon-provider-api))) | |
701 | (native-inputs | |
702 | `(("maven-wagon-provider-test" ,maven-wagon-provider-test) | |
703 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) | |
704 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
705 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
706 | ("java-plexus-container-default" ,java-plexus-container-default) | |
707 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
708 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
709 | ("java-guava" ,java-guava) | |
710 | ("java-guice" ,java-guice) | |
711 | ("java-inject" ,java-javax-inject) | |
712 | ("java-cglib" ,java-cglib) | |
713 | ("java-slf4j-api" ,java-slf4j-api) | |
714 | ("java-plexus-utils" ,java-plexus-utils) | |
715 | ("java-plexus-cli" ,java-plexus-cli) | |
716 | ("maven-plugin-api" ,maven-plugin-api) | |
717 | ("maven-plugin-annotations" ,maven-plugin-annotations) | |
718 | ("maven-core" ,maven-core) | |
719 | ("maven-model" ,maven-model) | |
720 | ("java-commons-cli" ,java-commons-cli) | |
721 | ("java-qdox" ,java-qdox) | |
722 | ("java-jdom2" ,java-jdom2) | |
723 | ("java-asm" ,java-asm) | |
724 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
53ba191b | 725 | ("java-javaee-servletapi" ,java-javaee-servletapi) |
aa06dd0f JL |
726 | ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) |
727 | ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2) | |
728 | ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2) | |
729 | ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) | |
730 | ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) | |
731 | ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) | |
732 | ("java-hamcrest-core" ,java-hamcrest-core) | |
733 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
734 | ("java-commons-codec" ,java-commons-codec) | |
735 | ("java-commons-io" ,java-commons-io) | |
736 | ("java-jsoup" ,java-jsoup) | |
737 | ("java-slf4j-simple" ,java-slf4j-simple) | |
738 | ,@(package-native-inputs maven-wagon-provider-api))) | |
739 | (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)") | |
740 | (description "Maven Wagon is a transport abstraction that is used in Maven's | |
741 | artifact and repository handling code. It uses providers, that are tools to | |
742 | manage artifacts and deployment. This package contains a Wagon provider that | |
743 | gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x."))) | |
744 | ||
51087d51 | 745 | (define maven-pom |
458687d5 | 746 | (package |
51087d51 | 747 | (name "maven-pom") |
b77c8ddb | 748 | (version "3.6.1") |
458687d5 JL |
749 | (source (origin |
750 | (method url-fetch) | |
9a01efa2 | 751 | (uri (string-append "mirror://apache/maven/" |
458687d5 JL |
752 | "maven-3/" version "/source/" |
753 | "apache-maven-" version "-src.tar.gz")) | |
b77c8ddb | 754 | (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82")) |
458687d5 JL |
755 | (modules '((guix build utils))) |
756 | (snippet | |
757 | '(begin | |
758 | (for-each delete-file (find-files "." "\\.jar$")) | |
759 | #t)) | |
760 | (patches | |
761 | (search-patches "maven-generate-component-xml.patch" | |
762 | "maven-generate-javax-inject-named.patch")))) | |
763 | (build-system ant-build-system) | |
51087d51 JL |
764 | (arguments |
765 | `(#:tests? #f | |
766 | #:phases | |
767 | (modify-phases %standard-phases | |
768 | (delete 'configure) | |
769 | (delete 'build) | |
770 | (add-before 'install 'fix-dependencies | |
771 | (lambda _ | |
772 | (substitute* "pom.xml" | |
773 | (("classWorldsVersion>.*") | |
774 | (string-append | |
775 | "classWorldsVersion>" | |
776 | ,(package-version java-plexus-classworlds) | |
777 | "</classWorldsVersion>\n")) | |
778 | (("commonsCliVersion>.*") | |
779 | (string-append | |
780 | "commonsCliVersion>" | |
781 | ,(package-version java-commons-cli) | |
782 | "</commonsCliVersion>\n")) | |
783 | (("commonsLangVersion>.*") | |
784 | (string-append | |
785 | "commonsLangVersion>" | |
786 | ,(package-version java-commons-lang3) | |
787 | "</commonsLangVersion>\n")) | |
788 | (("plexusUtilsVersion>.*") | |
789 | (string-append | |
790 | "plexusUtilsVersion>" | |
791 | ,(package-version java-plexus-utils) | |
792 | "</plexusUtilsVersion>\n")) | |
793 | (("plexusInterpolationVersion>.*") | |
794 | (string-append | |
795 | "plexusInterpolationVersion>" | |
796 | ,(package-version java-plexus-interpolation) | |
797 | "</plexusInterpolationVersion>\n")) | |
798 | (("guiceVersion>.*") | |
799 | (string-append | |
800 | "guiceVersion>" | |
801 | ,(package-version java-guice) | |
802 | "</guiceVersion>\n")) | |
803 | (("sisuInjectVersion>.*") | |
804 | (string-append | |
805 | "sisuInjectVersion>" | |
806 | ,(package-version java-eclipse-sisu-inject) | |
807 | "</sisuInjectVersion>\n")) | |
808 | (("securityDispatcherVersion>.*") | |
809 | (string-append | |
810 | "securityDispatcherVersion>" | |
811 | ,(package-version java-plexus-sec-dispatcher) | |
812 | "</securityDispatcherVersion>\n")) | |
813 | (("cipherVersion>.*") | |
814 | (string-append | |
815 | "cipherVersion>" | |
816 | ,(package-version java-plexus-cipher) | |
817 | "</cipherVersion>\n")) | |
818 | (("slf4jVersion>.*") | |
819 | (string-append | |
820 | "slf4jVersion>" | |
821 | ,(package-version java-slf4j-api) | |
822 | "</slf4jVersion>\n")) | |
823 | (("<classifier>no_aop</classifier>") "")) | |
824 | #t)) | |
825 | (replace 'install | |
826 | (install-pom-file "pom.xml"))))) | |
827 | (propagated-inputs | |
828 | `(("maven-parent-pom-33" ,maven-parent-pom-33))) | |
829 | (home-page "https://maven.apache.org/") | |
830 | (synopsis "Build system") | |
831 | (description "Apache Maven is a software project management and comprehension | |
832 | tool. This package contains the Maven pom file, used by all maven components.") | |
833 | (license license:asl2.0))) | |
834 | ||
835 | (define-public maven-artifact | |
836 | (package | |
837 | (inherit maven-pom) | |
838 | (name "maven-artifact") | |
458687d5 JL |
839 | (arguments |
840 | `(#:jar-name "maven-artifact.jar" | |
841 | #:source-dir "maven-artifact/src/main/java" | |
842 | #:test-dir "maven-artifact/src/test" | |
51087d51 JL |
843 | #:main-class "org.apache.maven.artifact.versioning.ComparableVersion" |
844 | #:phases | |
845 | (modify-phases %standard-phases | |
846 | (replace 'install | |
847 | (install-from-pom "maven-artifact/pom.xml"))))) | |
848 | (propagated-inputs | |
458687d5 | 849 | `(("java-plexus-utils" ,java-plexus-utils) |
51087d51 JL |
850 | ("java-commons-lang3" ,java-commons-lang3) |
851 | ("maven-pom" ,maven-pom))) | |
458687d5 JL |
852 | (native-inputs |
853 | `(("java-junit" ,java-junit))) | |
458687d5 JL |
854 | (description "Apache Maven is a software project management and comprehension |
855 | tool. This package contains the Maven Artifact classes, providing the | |
856 | @code{Artifact} interface, with its @code{DefaultArtifact} implementation. The | |
857 | jar file is executable and provides a little tool to display how Maven parses | |
51087d51 | 858 | and compares versions:"))) |
d55503a6 JL |
859 | |
860 | (define-public maven-model | |
861 | (package | |
862 | (inherit maven-artifact) | |
863 | (name "maven-model") | |
864 | (arguments | |
865 | `(#:jar-name "maven-model.jar" | |
866 | #:source-dir "maven-model/src/main/java" | |
867 | #:test-dir "maven-model/src/test" | |
d55503a6 JL |
868 | #:phases |
869 | (modify-phases %standard-phases | |
870 | (add-before 'build 'generate-models | |
871 | (lambda* (#:key inputs #:allow-other-keys) | |
872 | (define (modello-single-mode file version mode) | |
873 | (invoke "java" "org.codehaus.modello.ModelloCli" | |
874 | file mode "maven-model/src/main/java" version | |
875 | "false" "true")) | |
876 | (let ((file "maven-model/src/main/mdo/maven.mdo")) | |
877 | (modello-single-mode file "4.0.0" "java") | |
878 | (modello-single-mode file "4.0.0" "xpp3-reader") | |
879 | (modello-single-mode file "4.0.0" "xpp3-writer") | |
880 | (modello-single-mode file "4.0.0" "xpp3-extended-reader")) | |
51087d51 JL |
881 | #t)) |
882 | (replace 'install (install-from-pom "maven-model/pom.xml"))))) | |
883 | (propagated-inputs | |
d55503a6 | 884 | `(("java-commons-lang3" ,java-commons-lang3) |
51087d51 JL |
885 | ("java-plexus-utils" ,java-plexus-utils) |
886 | ("maven-pom" ,maven-pom))) | |
d55503a6 JL |
887 | (native-inputs |
888 | `(("java-modello-core" ,java-modello-core) | |
889 | ;; for modello: | |
890 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
891 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
892 | ("java-guice" ,java-guice) | |
893 | ("java-cglib" ,java-cglib) | |
894 | ("java-asm" ,java-asm) | |
895 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
896 | ("java-javax-inject" ,java-javax-inject) | |
897 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
898 | ("java-guava" ,java-guava) | |
899 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
900 | ("java-sisu-build-api" ,java-sisu-build-api) | |
901 | ;; modello plugins: | |
902 | ("java-modello-plugins-java" ,java-modello-plugins-java) | |
903 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) | |
904 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) | |
905 | ;; for tests | |
906 | ("java-junit" ,java-junit))) | |
907 | (description "Apache Maven is a software project management and comprehension | |
908 | tool. This package contains the model for Maven @dfn{POM} (Project Object Model), | |
909 | so really just plain Java objects."))) | |
f084641a JL |
910 | |
911 | (define-public maven-builder-support | |
912 | (package | |
913 | (inherit maven-artifact) | |
914 | (name "maven-builder-support") | |
915 | (arguments | |
916 | `(#:jar-name "maven-builder-support.jar" | |
917 | #:source-dir "maven-builder-support/src/main/java" | |
918 | #:jdk ,icedtea-8 | |
919 | #:test-dir "maven-builder-support/src/test" | |
920 | #:phases | |
921 | (modify-phases %standard-phases | |
922 | (add-before 'check 'fix-paths | |
923 | (lambda _ | |
924 | (with-directory-excursion "maven-builder-support/src/test/java" | |
925 | (substitute* | |
926 | '("org/apache/maven/building/FileSourceTest.java" | |
927 | "org/apache/maven/building/UrlSourceTest.java") | |
928 | (("target/test-classes") "maven-builder-support/src/test/resources"))) | |
51087d51 JL |
929 | #t)) |
930 | (replace 'install (install-from-pom "maven-builder-support/pom.xml"))))) | |
931 | (propagated-inputs | |
932 | `(("maven-pom" ,maven-pom))) | |
f084641a | 933 | (native-inputs |
51087d51 | 934 | `(("java-junit" ,java-junit))) |
f084641a JL |
935 | (description "Apache Maven is a software project management and comprehension |
936 | tool. This package contains a support library for descriptor builders (model, | |
937 | setting, toolchains)"))) | |
18110e45 JL |
938 | |
939 | (define-public maven-settings | |
940 | (package | |
941 | (inherit maven-artifact) | |
942 | (name "maven-settings") | |
943 | (arguments | |
944 | `(#:jar-name "maven-settings.jar" | |
945 | #:source-dir "maven-settings/src/main/java" | |
18110e45 JL |
946 | #:tests? #f; no tests |
947 | #:phases | |
948 | (modify-phases %standard-phases | |
949 | (add-before 'build 'generate-models | |
950 | (lambda* (#:key inputs #:allow-other-keys) | |
951 | (define (modello-single-mode file version mode) | |
952 | (invoke "java" "org.codehaus.modello.ModelloCli" | |
953 | file mode "maven-settings/src/main/java" version | |
954 | "false" "true")) | |
955 | (let ((file "maven-settings/src/main/mdo/settings.mdo")) | |
956 | (modello-single-mode file "1.1.0" "java") | |
957 | (modello-single-mode file "1.1.0" "xpp3-reader") | |
958 | (modello-single-mode file "1.1.0" "xpp3-writer")) | |
51087d51 JL |
959 | #t)) |
960 | (replace 'install (install-from-pom "maven-settings/pom.xml"))))) | |
961 | (propagated-inputs | |
962 | `(("java-plexus-utils" ,java-plexus-utils) | |
963 | ("maven-pom" ,maven-pom))) | |
18110e45 JL |
964 | (native-inputs |
965 | `(("java-modello-core" ,java-modello-core) | |
966 | ;; for modello: | |
967 | ;("container" ,java-plexus-container-default) | |
968 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
969 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
970 | ("java-guice" ,java-guice) | |
971 | ("java-cglib" ,java-cglib) | |
972 | ("java-asm" ,java-asm) | |
973 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
974 | ("java-javax-inject" ,java-javax-inject) | |
975 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
976 | ("java-plexus-utils" ,java-plexus-utils) | |
977 | ("java-guava" ,java-guava) | |
978 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
979 | ("java-sisu-build-api" ,java-sisu-build-api) | |
980 | ;; modello plugins: | |
981 | ("java-modello-plugins-java" ,java-modello-plugins-java) | |
982 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) | |
983 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3))) | |
984 | (description "Apache Maven is a software project management and comprehension | |
985 | tool. This package contains strictly the model for Maven settings, that is | |
986 | simply plain java objects."))) | |
3a5572ae JL |
987 | |
988 | (define-public maven-settings-builder | |
989 | (package | |
990 | (inherit maven-artifact) | |
991 | (name "maven-settings-builder") | |
992 | (arguments | |
993 | `(#:jar-name "maven-settings-builder.jar" | |
994 | #:source-dir "maven-settings-builder/src/main/java" | |
995 | #:jdk ,icedtea-8 | |
996 | #:test-dir "maven-settings-builder/src/test" | |
997 | #:phases | |
998 | (modify-phases %standard-phases | |
999 | (add-before 'build 'generate-components.xml | |
1000 | (lambda _ | |
1001 | (mkdir-p "build/classes/META-INF/plexus") | |
1002 | (chmod "components.sh" #o755) | |
1003 | (invoke "./components.sh" "maven-settings-builder/src/main/java" | |
1004 | "build/classes/META-INF/plexus/components.xml") | |
51087d51 JL |
1005 | #t)) |
1006 | (replace 'install (install-from-pom "maven-settings-builder/pom.xml"))))) | |
1007 | (propagated-inputs | |
3a5572ae | 1008 | `(("java-plexus-utils" ,java-plexus-utils) |
3a5572ae JL |
1009 | ("java-plexus-interpolation" ,java-plexus-interpolation) |
1010 | ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) | |
1011 | ("maven-builder-support" ,maven-builder-support) | |
1012 | ("maven-settings" ,maven-settings) | |
51087d51 | 1013 | ("maven-pom" ,maven-pom))) |
3a5572ae | 1014 | (native-inputs |
51087d51 JL |
1015 | `(("java-junit" ,java-junit) |
1016 | ("java-plexus-component-annotations" ,java-plexus-component-annotations))) | |
3a5572ae JL |
1017 | (description "Apache Maven is a software project management and comprehension |
1018 | tool. This package contains the effective model builder, with profile activation, | |
1019 | inheritance, interpolation, @dots{}"))) | |
516db3b9 JL |
1020 | |
1021 | (define-public maven-model-builder | |
1022 | (package | |
1023 | (inherit maven-artifact) | |
1024 | (name "maven-model-builder") | |
1025 | (arguments | |
1026 | `(#:jar-name "maven-model-builder.jar" | |
1027 | #:source-dir "maven-model-builder/src/main/java" | |
1028 | #:jdk ,icedtea-8 | |
1029 | #:test-dir "maven-model-builder/src/test" | |
1030 | #:phases | |
1031 | (modify-phases %standard-phases | |
1032 | (add-before 'build 'copy-resources | |
1033 | (lambda _ | |
1034 | (copy-recursively "maven-model-builder/src/main/resources" | |
1035 | "build/classes") | |
1036 | #t)) | |
1037 | (add-before 'build 'generate-components.xml | |
1038 | (lambda _ | |
1039 | (mkdir-p "build/classes/META-INF/plexus") | |
1040 | (chmod "components.sh" #o755) | |
1041 | (invoke "./components.sh" "maven-model-builder/src/main/java" | |
1042 | "build/classes/META-INF/plexus/components.xml") | |
1043 | #t)) | |
1044 | (add-before 'check 'fix-paths | |
1045 | (lambda _ | |
1046 | (substitute* (find-files "maven-model-builder/src/test/java" ".*.java") | |
1047 | (("src/test") "maven-model-builder/src/test")) | |
51087d51 JL |
1048 | #t)) |
1049 | (replace 'install | |
1050 | (install-from-pom "maven-model-builder/pom.xml"))))) | |
1051 | (propagated-inputs | |
1052 | `(("java-plexus-interpolation" ,java-plexus-interpolation) | |
1053 | ("java-plexus-utils" ,java-plexus-utils) | |
1054 | ("maven-artifact" ,maven-artifact) | |
1055 | ("maven-builder-support" ,maven-builder-support) | |
1056 | ("maven-model" ,maven-model) | |
1057 | ("maven-pom" ,maven-pom))) | |
516db3b9 JL |
1058 | (native-inputs |
1059 | `(("java-junit" ,java-junit) | |
51087d51 | 1060 | ("java-guava" ,java-guava) |
516db3b9 JL |
1061 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) |
1062 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
1063 | ("guice" ,java-guice) | |
1064 | ("java-cglib" ,java-cglib) | |
1065 | ("java-asm" ,java-asm) | |
1066 | ("sisu-inject" ,java-eclipse-sisu-inject) | |
1067 | ("javax-inject" ,java-javax-inject) | |
c5928211 JL |
1068 | ("java-xmlunit" ,java-xmlunit) |
1069 | ("java-xmlunit-matchers" ,java-xmlunit-matchers) | |
516db3b9 JL |
1070 | ("xbean" ,java-geronimo-xbean-reflect) |
1071 | ("classworlds" ,java-plexus-classworlds))) | |
1072 | (description "Apache Maven is a software project management and comprehension | |
1073 | tool. This package contains the effective model builder, with profile activation, | |
1074 | inheritance, interpolation, @dots{}"))) | |
18736663 JL |
1075 | |
1076 | (define-public maven-repository-metadata | |
1077 | (package | |
1078 | (inherit maven-artifact) | |
1079 | (name "maven-repository-metadata") | |
1080 | (arguments | |
1081 | `(#:jar-name "maven-repository-metadata.jar" | |
1082 | #:source-dir "maven-repository-metadata/src/main/java" | |
1083 | #:jdk ,icedtea-8 | |
1084 | #:tests? #f; no tests | |
1085 | #:phases | |
1086 | (modify-phases %standard-phases | |
1087 | (add-before 'build 'generate-models | |
1088 | (lambda* (#:key inputs #:allow-other-keys) | |
1089 | (define (modello-single-mode file version mode) | |
1090 | (invoke "java" "org.codehaus.modello.ModelloCli" | |
1091 | file mode "maven-repository-metadata/src/main/java" version | |
1092 | "false" "true")) | |
1093 | (let ((file "maven-repository-metadata/src/main/mdo/metadata.mdo")) | |
1094 | (modello-single-mode file "1.1.0" "java") | |
1095 | (modello-single-mode file "1.1.0" "xpp3-reader") | |
1096 | (modello-single-mode file "1.1.0" "xpp3-writer")) | |
51087d51 JL |
1097 | #t)) |
1098 | (replace 'install | |
1099 | (install-from-pom "maven-repository-metadata/pom.xml"))))) | |
1100 | (propagated-inputs | |
1101 | `(("java-plexus-utils" ,java-plexus-utils) | |
1102 | ("maven-pom" ,maven-pom))) | |
18736663 JL |
1103 | (native-inputs |
1104 | `(("modello" ,java-modello-core) | |
1105 | ;; for modello: | |
1106 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
1107 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
1108 | ("java-guice" ,java-guice) | |
1109 | ("java-cglib" ,java-cglib) | |
1110 | ("java-asm" ,java-asm) | |
1111 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
1112 | ("java-javax-inject" ,java-javax-inject) | |
1113 | ("java-plexus-utils" ,java-plexus-utils) | |
1114 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
1115 | ("java-guava" ,java-guava) | |
1116 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
1117 | ("java-sisu-build-api" ,java-sisu-build-api) | |
1118 | ;; modello plugins: | |
1119 | ("java-modello-plugins-java" ,java-modello-plugins-java) | |
1120 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) | |
1121 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3))) | |
1122 | (description "Apache Maven is a software project management and comprehension | |
1123 | tool. This package contains strictly the model for Maven Repository Metadata, | |
1124 | so really just plain objects."))) | |
5aa4ea6a JL |
1125 | |
1126 | (define-public maven-resolver-provider | |
1127 | (package | |
1128 | (inherit maven-artifact) | |
1129 | (name "maven-resolver-provider") | |
1130 | (arguments | |
1131 | `(#:jar-name "maven-resolver-provider.jar" | |
1132 | #:source-dir "maven-resolver-provider/src/main/java" | |
1133 | #:test-dir "maven-resolver-provider/src/test" | |
1134 | #:jdk ,icedtea-8 | |
1135 | #:tests? #f; dependency loop on maven-core (@Component RepositorySystem) | |
1136 | #:phases | |
1137 | (modify-phases %standard-phases | |
1138 | (add-before 'build 'generate-sisu-named | |
1139 | (lambda _ | |
1140 | (mkdir-p "build/classes/META-INF/sisu") | |
1141 | (chmod "./sisu.sh" #o755) | |
1142 | (invoke "./sisu.sh" "maven-resolver-provider/src/main/java" | |
1143 | "build/classes/META-INF/sisu/javax.inject.Named") | |
51087d51 JL |
1144 | #t)) |
1145 | (replace 'install | |
1146 | (install-from-pom "maven-resolver-provider/pom.xml"))))) | |
1147 | (propagated-inputs | |
1148 | `(("maven-model" ,maven-model) | |
1149 | ("maven-model-builder" ,maven-model-builder) | |
1150 | ("maven-resolver-spi" ,maven-resolver-spi) | |
5aa4ea6a JL |
1151 | ("maven-resolver-api" ,maven-resolver-api) |
1152 | ("maven-resolver-impl" ,maven-resolver-impl) | |
1153 | ("maven-resolver-util" ,maven-resolver-util) | |
5aa4ea6a JL |
1154 | ("maven-builder-support" ,maven-builder-support) |
1155 | ("maven-repository-metadata" ,maven-repository-metadata) | |
1156 | ("java-plexus-utils" ,java-plexus-utils) | |
1157 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
5aa4ea6a | 1158 | ("java-guice" ,java-guice) |
5aa4ea6a | 1159 | ("java-javax-inject" ,java-javax-inject))))) |
8f5caf93 JL |
1160 | |
1161 | (define-public maven-plugin-api | |
1162 | (package | |
1163 | (inherit maven-artifact) | |
1164 | (name "maven-plugin-api") | |
1165 | (arguments | |
1166 | `(#:jar-name "maven-plugin-api.jar" | |
1167 | #:source-dir "maven-plugin-api/src/main/java" | |
1168 | #:jdk ,icedtea-8 | |
1169 | #:test-dir "maven-plugin-api/src/test" | |
1170 | #:phases | |
1171 | (modify-phases %standard-phases | |
1172 | (add-before 'build 'generate-models | |
1173 | (lambda* (#:key inputs #:allow-other-keys) | |
1174 | (define (modello-single-mode file version mode) | |
1175 | (invoke "java" "org.codehaus.modello.ModelloCli" | |
1176 | file mode "maven-plugin-api/src/main/java" version | |
1177 | "false" "true")) | |
1178 | (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo")) | |
1179 | (modello-single-mode file "1.0.0" "java") | |
1180 | (modello-single-mode file "1.0.0" "xpp3-reader") | |
1181 | (modello-single-mode file "1.0.0" "xpp3-writer")) | |
51087d51 JL |
1182 | #t)) |
1183 | (replace 'install | |
1184 | (install-from-pom "maven-plugin-api/pom.xml"))))) | |
1185 | (propagated-inputs | |
8f5caf93 JL |
1186 | `(("maven-artifact" ,maven-artifact) |
1187 | ("maven-model" ,maven-model) | |
1188 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
1189 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
1190 | ("guice" ,java-guice) | |
1191 | ("java-cglib" ,java-cglib) | |
1192 | ("java-asm" ,java-asm) | |
1193 | ("sisu-inject" ,java-eclipse-sisu-inject) | |
1194 | ("javax-inject" ,java-javax-inject) | |
1195 | ("utils" ,java-plexus-utils))) | |
1196 | (native-inputs | |
1197 | `(("modello" ,java-modello-core) | |
1198 | ;; for modello: | |
1199 | ("classworlds" ,java-plexus-classworlds) | |
1200 | ("guava" ,java-guava) | |
1201 | ("xbean" ,java-geronimo-xbean-reflect) | |
1202 | ("build-api" ,java-sisu-build-api) | |
1203 | ;; modello plugins: | |
1204 | ("java" ,java-modello-plugins-java) | |
1205 | ("xml" ,java-modello-plugins-xml) | |
1206 | ("xpp3" ,java-modello-plugins-xpp3) | |
1207 | ;; for tests | |
1208 | ("java-junit" ,java-junit))) | |
1209 | (description "Apache Maven is a software project management and comprehension | |
1210 | tool. This package contains strictly the API for plugins -- composed of goals | |
1211 | implemented by Mojos -- development. | |
1212 | ||
1213 | A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor, | |
1214 | generally generated from plugin sources using maven-plugin-plugin."))) | |
7a42f058 JL |
1215 | |
1216 | (define maven-core-bootstrap | |
1217 | (package | |
1218 | (inherit maven-artifact) | |
1219 | (name "maven-core") | |
1220 | (arguments | |
1221 | `(#:jar-name "maven-core.jar" | |
1222 | #:source-dir "src/main/java" | |
1223 | #:jdk ,icedtea-8 | |
1224 | ;; Tests need maven-compat, which requires maven-core | |
1225 | #:tests? #f | |
1226 | #:phases | |
1227 | (modify-phases %standard-phases | |
1228 | (add-before 'configure 'chdir | |
1229 | (lambda _ | |
1230 | ;; Required for generating components.xml in maven-core | |
1231 | (chdir "maven-core") | |
1232 | #t)) | |
1233 | (add-before 'build 'copy-resources | |
1234 | (lambda _ | |
1235 | (mkdir-p "build/classes/") | |
1236 | (copy-recursively "src/main/resources" "build/classes") | |
1237 | #t)) | |
e27c43d9 JL |
1238 | (add-after 'copy-resources 'fill-properties |
1239 | (lambda _ | |
1240 | ;; This file controls the output of some mvn subcommands, such as | |
1241 | ;; mvn -version. | |
1242 | (substitute* "build/classes/org/apache/maven/messages/build.properties" | |
1243 | (("\\$\\{buildNumber\\}") "guix_build") | |
1244 | (("\\$\\{timestamp\\}") "0") | |
1245 | (("\\$\\{project.version\\}") ,(package-version maven-artifact)) | |
1246 | (("\\$\\{distributionId\\}") "apache-maven") | |
1247 | (("\\$\\{distributionShortName\\}") "Maven") | |
1248 | (("\\$\\{distributionName\\}") "Apache Maven")) | |
1249 | #t)) | |
7a42f058 JL |
1250 | (add-before 'build 'generate-sisu-named |
1251 | (lambda _ | |
1252 | (mkdir-p "build/classes/META-INF/sisu") | |
1253 | (chmod "../sisu.sh" #o755) | |
1254 | (invoke "../sisu.sh" "src/main/java" | |
1255 | "build/classes/META-INF/sisu/javax.inject.Named") | |
1256 | #t)) | |
1257 | (add-before 'build 'generate-models | |
1258 | (lambda* (#:key inputs #:allow-other-keys) | |
1259 | (define (modello-single-mode file version mode) | |
1260 | (invoke "java" "org.codehaus.modello.ModelloCli" | |
1261 | file mode "src/main/java" version | |
1262 | "false" "true")) | |
1263 | (let ((file "src/main/mdo/toolchains.mdo")) | |
1264 | (modello-single-mode file "1.1.0" "java") | |
1265 | (modello-single-mode file "1.1.0" "xpp3-reader") | |
1266 | (modello-single-mode file "1.1.0" "xpp3-writer")) | |
51087d51 JL |
1267 | #t)) |
1268 | (add-before 'install 'fix-pom | |
1269 | (lambda _ | |
1270 | (substitute* "pom.xml" | |
1271 | (("<classifier>no_aop</classifier>") "")) | |
1272 | #t)) | |
1273 | (replace 'install | |
1274 | (install-from-pom "pom.xml"))))) | |
1275 | (propagated-inputs | |
7a42f058 JL |
1276 | `(("maven-artifact" ,maven-artifact) |
1277 | ("maven-resolver-provider" ,maven-resolver-provider) | |
1278 | ("maven-builder-support" ,maven-builder-support) | |
1279 | ("maven-model" ,maven-model) | |
1280 | ("maven-model-builder" ,maven-model-builder) | |
1281 | ("maven-settings" ,maven-settings) | |
1282 | ("maven-settings-builder" ,maven-settings-builder) | |
1283 | ("maven-plugin-api" ,maven-plugin-api) | |
1284 | ("maven-repository-metadata" ,maven-repository-metadata) | |
1285 | ("maven-shared-utils" ,maven-shared-utils) | |
1286 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
1287 | ("java-plexus-utils" ,java-plexus-utils) | |
1288 | ("java-commons-lang3" ,java-commons-lang3) | |
1289 | ("java-guava" ,java-guava) | |
1290 | ("java-guice" ,java-guice) | |
1291 | ("maven-resolver-api" ,maven-resolver-api) | |
1292 | ("maven-resolver-spi" ,maven-resolver-spi) | |
1293 | ("maven-resolver-util" ,maven-resolver-util) | |
1294 | ("maven-resolver-impl" ,maven-resolver-impl) | |
1295 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
1296 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
1297 | ("java-javax-inject" ,java-javax-inject) | |
1298 | ("java-plexus-classworld" ,java-plexus-classworlds))) | |
1299 | (native-inputs | |
1300 | `(("java-modello-core" ,java-modello-core) | |
1301 | ("java-cglib" ,java-cglib) | |
1302 | ("java-asm" ,java-asm) | |
1303 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
1304 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
1305 | ("java-sisu-build-api" ,java-sisu-build-api) | |
1306 | ("java-modello-plugins-java" ,java-modello-plugins-java) | |
1307 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) | |
1308 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) | |
1309 | ;; tests | |
1310 | ("java-junit" ,java-junit) | |
1311 | ("java-mockito-1" ,java-mockito-1) | |
1312 | ("java-commons-jxpath" ,java-commons-jxpath))) | |
1313 | (description "Apache Maven is a software project management and comprehension | |
1314 | tool. This package contains the maven core classes managing the whole build | |
1315 | process."))) | |
b822544c JL |
1316 | |
1317 | (define-public maven-core | |
1318 | (package | |
1319 | (inherit maven-core-bootstrap) | |
1320 | (arguments | |
1321 | (substitute-keyword-arguments (package-arguments maven-core-bootstrap) | |
1322 | ((#:phases phases) | |
1323 | `(modify-phases ,phases | |
1324 | (add-before 'build 'modify-metainf | |
1325 | (lambda _ | |
1326 | (substitute* "build.xml" | |
d440df61 | 1327 | (("message=\"\"") "message=\"Implementation-Version: 3.5.4\n\"")) |
b822544c JL |
1328 | #t)) |
1329 | (add-before 'build 'add-maven-files | |
1330 | (lambda _ | |
1331 | (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core") | |
1332 | (copy-file "pom.xml" | |
1333 | "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml") | |
1334 | (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties" | |
1335 | (lambda _ | |
1336 | (format #t "version=~a~% | |
1337 | groupId=org.apache.maven~% | |
1338 | artifactId=maven-core" ,(package-version maven-core-bootstrap)))) | |
1339 | #t)) | |
1340 | (add-after 'build 'generate-metadata | |
1341 | (lambda _ | |
1342 | (define (components file) | |
1343 | (let ((sxml (with-input-from-file file | |
1344 | (lambda _ (xml->sxml (current-input-port) | |
1345 | #:trim-whitespace? #t))))) | |
1346 | ;; Select the list of <component>s inside the <component-set> | |
1347 | ;; and <components>. | |
1348 | ((@ (ice-9 match) match) sxml | |
1349 | (('*TOP* | |
1350 | ('*PI* foo ...) | |
1351 | ('component-set | |
1352 | ('components x ...))) x)))) | |
1353 | (use-modules (sxml simple)) | |
1354 | (delete-file "build/classes/META-INF/plexus/components.xml") | |
1355 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") | |
1356 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" | |
1357 | "--source" "build/classes/META-INF/plexus" | |
1358 | "--output" "build/classes/META-INF/plexus/components.t.xml" | |
1359 | "--classes" "build/classes" | |
1360 | "--descriptors" "build/classes") | |
1361 | ;; Now we merge all other components from hand-written xml | |
1362 | (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml")) | |
1363 | (components-xml (components "src/main/resources/META-INF/plexus/components.xml")) | |
1364 | (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml")) | |
1365 | (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml"))) | |
1366 | (with-output-to-file "build/classes/META-INF/plexus/components.xml" | |
1367 | (lambda _ | |
1368 | (display "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n") | |
1369 | (sxml->xml | |
1370 | `(component-set | |
1371 | (components | |
1372 | ,@(append generated-xml components-xml | |
1373 | default-bindings-xml | |
1374 | artifact-handlers-xml))))))) | |
1375 | #t)) | |
1376 | (add-after 'generate-metadata 'rebuild | |
1377 | (lambda _ | |
1378 | (invoke "ant" "jar") | |
1379 | #t)))))) | |
1380 | (native-inputs | |
1381 | `(("java-plexus-component-metadata" ,java-plexus-component-metadata) | |
1382 | ("java-commons-cli" ,java-commons-cli) | |
1383 | ("java-plexus-cli" ,java-plexus-cli) | |
1384 | ("java-jdom2" ,java-jdom2) | |
1385 | ("java-qdox" ,java-qdox) | |
1386 | ("maven-core-boot" ,maven-core-bootstrap) | |
1387 | ,@(package-native-inputs maven-core-bootstrap))))) | |
e2c7d329 JL |
1388 | |
1389 | (define-public maven-embedder | |
1390 | (package | |
1391 | (inherit maven-artifact) | |
1392 | (name "maven-embedder") | |
1393 | (arguments | |
1394 | `(#:jar-name "maven-embedder.jar" | |
1395 | #:source-dir "maven-embedder/src/main/java" | |
1396 | #:test-dir "maven-embedder/src/test" | |
1397 | #:test-exclude (list "**/MavenCliTest.java") | |
1398 | #:jdk ,icedtea-8 | |
1399 | #:phases | |
1400 | (modify-phases %standard-phases | |
1401 | (add-before 'build 'generate-sisu-named | |
1402 | (lambda _ | |
1403 | (mkdir-p "build/classes/META-INF/sisu") | |
1404 | (chmod "sisu.sh" #o755) | |
1405 | (invoke "./sisu.sh" "maven-embedder/src/main/java" | |
1406 | "build/classes/META-INF/sisu/javax.inject.Named") | |
1407 | #t)) | |
1408 | (add-before 'build 'generate-models | |
1409 | (lambda* (#:key inputs #:allow-other-keys) | |
1410 | (define (modello-single-mode file version mode) | |
1411 | (invoke "java" "org.codehaus.modello.ModelloCli" | |
1412 | file mode "maven-embedder/src/main/java" version | |
1413 | "false" "true")) | |
1414 | (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo")) | |
1415 | (modello-single-mode file "1.0.0" "java") | |
1416 | (modello-single-mode file "1.0.0" "xpp3-reader") | |
1417 | (modello-single-mode file "1.0.0" "xpp3-writer")) | |
1418 | #t)) | |
1419 | (add-before 'check 'fix-test-paths | |
1420 | (lambda _ | |
1421 | (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java" | |
1422 | (("target/test-classes") "build/test-classes")) | |
1423 | #t)) | |
1424 | (add-before 'check 'fix-test-compilation | |
1425 | (lambda _ | |
1426 | ;; Tests are in the java/ subdir. Other subdirectories contain | |
1427 | ;; additional test plugins, with duplicate classes, so we can't | |
1428 | ;; compile them. Also, they are meant to be built with maven, to | |
1429 | ;; test its build process. | |
1430 | (substitute* "build.xml" | |
1431 | (("srcdir=\"maven-embedder/src/test\"") | |
1432 | "srcdir=\"maven-embedder/src/test/java\"")) | |
51087d51 JL |
1433 | #t)) |
1434 | (replace 'install | |
1435 | (install-from-pom "maven-embedder/pom.xml"))))) | |
1436 | (propagated-inputs | |
e2c7d329 JL |
1437 | `(("maven-core" ,maven-core) |
1438 | ("maven-artifact" ,maven-artifact) | |
1439 | ("maven-plugin-api" ,maven-plugin-api) | |
1440 | ("maven-builder-support" ,maven-builder-support) | |
1441 | ("maven-model" ,maven-model) | |
1442 | ("maven-model-builder" ,maven-model-builder) | |
1443 | ("maven-settings" ,maven-settings) | |
1444 | ("maven-settings-builder" ,maven-settings-builder) | |
1445 | ("maven-shared-utils" ,maven-shared-utils) | |
1446 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
1447 | ("java-plexus-util" ,java-plexus-utils) | |
1448 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
1449 | ("java-plexus-cipher" ,java-plexus-cipher) | |
1450 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
1451 | ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) | |
1452 | ("maven-resolevr-util" ,maven-resolver-util) | |
1453 | ("maven-resolevr-api" ,maven-resolver-api) | |
1454 | ("java-logback-core" ,java-logback-core) | |
1455 | ("java-logback-classic" ,java-logback-classic) | |
1456 | ("java-commons-cli" ,java-commons-cli) | |
1457 | ("java-commons-io" ,java-commons-io) | |
1458 | ("java-commons-lang3" ,java-commons-lang3) | |
1459 | ("java-guava" ,java-guava) | |
1460 | ("java-guice" ,java-guice) | |
1461 | ("java-javax-inject" ,java-javax-inject) | |
1462 | ("java-slf4j-api" ,java-slf4j-api) | |
51087d51 JL |
1463 | ("java-slf4j-simple" ,java-slf4j-simple) |
1464 | ("java-jsr250" ,java-jsr250))) | |
e2c7d329 JL |
1465 | (native-inputs |
1466 | `(("java-modello-core" ,java-modello-core) | |
1467 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
1468 | ("java-sisu-build-api" ,java-sisu-build-api) | |
1469 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
1470 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
1471 | ("java-cglib" ,java-cglib) | |
1472 | ("java-asm" ,java-asm) | |
1473 | ("java-modello-plugins-java" ,java-modello-plugins-java) | |
1474 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) | |
1475 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) | |
1476 | ;; tests | |
1477 | ("java-junit" ,java-junit) | |
1478 | ("java-objenesis" ,java-objenesis) | |
1479 | ("java-mockito-1" ,java-mockito-1) | |
1480 | ("java-hamcrest-core" ,java-hamcrest-core))) | |
1481 | (description "Apache Maven is a software project management and comprehension | |
1482 | tool. This package contains a Maven embeddable component, with CLI and | |
1483 | logging support."))) | |
0c1e98eb JL |
1484 | |
1485 | (define-public maven-compat | |
1486 | (package | |
1487 | (inherit maven-artifact) | |
1488 | (name "maven-compat") | |
1489 | (arguments | |
1490 | `(#:jar-name "maven-compat.jar" | |
1491 | #:source-dir "src/main/java" | |
1492 | #:jdk ,icedtea-8 | |
1493 | #:test-dir "src/test" | |
1494 | #:phases | |
1495 | (modify-phases %standard-phases | |
1496 | ;; Tests assume we're in this directory | |
1497 | (add-before 'configure 'chdir | |
1498 | (lambda _ | |
1499 | (chdir "maven-compat") | |
1500 | #t)) | |
892a5647 JL |
1501 | (add-before 'build 'recreate-removed-jar |
1502 | (lambda _ | |
1503 | (with-output-to-file "src/test/repository-system/maven-core-2.1.0.jar" | |
1504 | (const #t)) | |
1505 | (with-directory-excursion "src/test/resources" | |
1506 | (with-output-to-file "artifact-install/artifact-1.0.jar" | |
1507 | (lambda _ | |
1508 | (format #t "dummy~%"))) | |
1509 | (for-each | |
1510 | (lambda (file) | |
1511 | (with-output-to-file file | |
1512 | (lambda _ | |
1513 | (format #t "foo~%")))) | |
1514 | '("local-repo/maven-test/jars/maven-test-a-1.0.jar" | |
1515 | "local-repo/maven-test/jars/maven-test-c-1.0.jar" | |
1516 | "local-repo/maven-test/jars/maven-test-d-1.0.jar" | |
1517 | "inheritance-repo/t04/maven-test/jars/t04-a-1.0.jar" | |
1518 | "inheritance-repo/t04/maven-test/jars/t04-b-1.0.jar" | |
1519 | "inheritance-repo/t04/maven-test/jars/t04-b-2.0.jar" | |
1520 | "inheritance-repo/t04/maven-test/jars/t04-c-1.0.jar" | |
1521 | "inheritance-repo/t04/maven-test/jars/t04-c-2.0.jar" | |
1522 | "inheritance-repo/t05/maven-test/jars/t05-a-1.0.jar" | |
1523 | "inheritance-repo/t05/maven-test/jars/t05-a-2.0.jar" | |
1524 | "inheritance-repo/t05/maven-test/jars/t05-b-1.0.jar" | |
1525 | "inheritance-repo/t05/maven-test/jars/t05-b-1.1.jar" | |
1526 | "inheritance-repo/t05/maven-test/jars/t05-b-2.0.jar" | |
1527 | "inheritance-repo/t05/maven-test/jars/t05-c-1.0.jar" | |
1528 | "inheritance-repo/t05/maven-test/jars/t05-d-1.0.jar" | |
1529 | "inheritance-repo/t05/maven-test/jars/t05-d-1.1.jar" | |
1530 | "inheritance-repo/t05/maven-test/jars/t05-d-1.2.jar" | |
1531 | "inheritance-repo/t06/maven-test/jars/t06-a-1.0.jar" | |
1532 | "inheritance-repo/t06/maven-test/jars/t06-b-1.0.jar" | |
1533 | "inheritance-repo/t06/maven-test/jars/t06-b-1.1.jar" | |
1534 | "inheritance-repo/t06/maven-test/jars/t06-c-1.0.jar" | |
1535 | "inheritance-repo/t06/maven-test/jars/t06-d-1.0.jar" | |
1536 | "inheritance-repo/t06/maven-test/jars/t06-d-1.1.jar" | |
1537 | "inheritance-repo/t06/maven-test/jars/t06-d-1.2.jar" | |
1538 | "inheritance-repo/t07/maven-test/jars/t07-a-1.0.jar" | |
1539 | "inheritance-repo/t07/maven-test/jars/t07-b-1.0.jar" | |
1540 | "inheritance-repo/t07/maven-test/jars/t07-b-1.1.jar" | |
1541 | "inheritance-repo/t07/maven-test/jars/t07-c-1.0.jar" | |
1542 | "inheritance-repo/t07/maven-test/jars/t07-d-1.0.jar" | |
1543 | "inheritance-repo/t07/maven-test/jars/t07-d-1.1.jar" | |
1544 | "inheritance-repo/t07/maven-test/jars/t07-d-1.2.jar" | |
1545 | "inheritance-repo/t08/maven-test/jars/t08-a-1.0.jar" | |
1546 | "inheritance-repo/t08/maven-test/jars/t08-b-1.0.jar" | |
1547 | "inheritance-repo/t08/maven-test/jars/t08-b-1.1.jar" | |
1548 | "inheritance-repo/t08/maven-test/jars/t08-c-1.0.jar" | |
1549 | "inheritance-repo/t08/maven-test/jars/t08-d-1.0.jar" | |
1550 | "inheritance-repo/t08/maven-test/jars/t08-d-1.1.jar" | |
1551 | "inheritance-repo/t08/maven-test/jars/t08-d-1.2.jar" | |
1552 | "inheritance-repo/t09/maven-test/jars/t09-a-1.0.jar" | |
1553 | "inheritance-repo/t09/maven-test/jars/t09-b-1.0.jar" | |
1554 | "inheritance-repo/t09/maven-test/jars/t09-c-1.0.jar" | |
1555 | "inheritance-repo/t09/maven-test/jars/t09-d-1.0.jar" | |
1556 | "inheritance-repo/t10/maven-test/jars/t10-a-1.0.jar" | |
1557 | "inheritance-repo/t10/maven-test/jars/t10-b-1.0.jar" | |
1558 | "inheritance-repo/t10/maven-test/jars/t10-c-1.0.jar")) | |
1559 | (with-directory-excursion "local-repo/snapshot-test/jars" | |
1560 | (for-each | |
1561 | (lambda (file) | |
1562 | (with-output-to-file file | |
1563 | (lambda _ | |
1564 | ;; No end-of-line | |
1565 | (format #t "local")))) | |
1566 | '("maven-snapshot-e-1.0-SNAPSHOT.jar" | |
1567 | "maven-snapshot-b-1.0-SNAPSHOT.jar" | |
1568 | "maven-snapshot-a-1.0-SNAPSHOT.jar")))) | |
1569 | (for-each | |
1570 | (lambda (letter) | |
1571 | (with-directory-excursion | |
1572 | (string-append "src/test/remote-repo/org/apache/maven/its/" | |
1573 | letter "/0.1") | |
1574 | (let ((dir (string-append "META-INF/maven/org.apache.maven.its/" | |
1575 | letter))) | |
1576 | (mkdir-p dir) | |
1577 | (copy-file (string-append letter "-0.1.pom") | |
1578 | (string-append dir "/pom.xml")) | |
1579 | (with-output-to-file (string-append dir "/pom.properties") | |
1580 | (lambda _ | |
1581 | (format #t "version=0.1~%") | |
1582 | (format #t "groupId=org.apache.maven.its") | |
1583 | (format #t (string-append "artifactId=" letter)))) | |
1584 | (with-output-to-file "META-INF/MANIFEST.MF" | |
1585 | (lambda _ | |
1586 | (format #t "Manifest-Version: 1.0~%")))) | |
1587 | (invoke "jar" "cmf" "META-INF/MANIFEST.MF" | |
1588 | (string-append letter "-0.1.jar") "META-INF"))) | |
1589 | '("a" "b")) | |
1590 | #t)) | |
0c1e98eb JL |
1591 | (add-before 'build 'generate-models |
1592 | (lambda* (#:key inputs #:allow-other-keys) | |
1593 | (define (modello-single-mode file version mode) | |
1594 | (invoke "java" "org.codehaus.modello.ModelloCli" | |
1595 | file mode "src/main/java" version | |
1596 | "false" "true")) | |
1597 | (let ((file "src/main/mdo/profiles.mdo")) | |
1598 | (modello-single-mode file "1.0.0" "java") | |
1599 | (modello-single-mode file "1.0.0" "xpp3-reader") | |
1600 | (modello-single-mode file "1.0.0" "xpp3-writer")) | |
1601 | (let ((file "src/main/mdo/paramdoc.mdo")) | |
1602 | (modello-single-mode file "1.0.0" "java") | |
1603 | (modello-single-mode file "1.0.0" "xpp3-reader") | |
1604 | (modello-single-mode file "1.0.0" "xpp3-writer")) | |
1605 | #t)) | |
1606 | (add-after 'build 'generate-metadata | |
1607 | (lambda _ | |
1608 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") | |
1609 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" | |
1610 | "--source" "src/main/java" | |
1611 | "--output" "build/classes/META-INF/plexus/components.xml" | |
1612 | "--classes" "build/classes" | |
1613 | "--descriptors" "build/classes/META-INF") | |
1614 | #t)) | |
1615 | (add-before 'check 'build-tests | |
1616 | (lambda _ | |
1617 | (invoke "ant" "compile-tests") | |
1618 | #t)) | |
1619 | (add-after 'build-tests 'generate-test-metadata | |
1620 | (lambda _ | |
1621 | (invoke "java" "-cp" (string-append (getenv "CLASSPATH") | |
1622 | ":build/classes" | |
1623 | ":build/test-classes") | |
1624 | "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" | |
1625 | "--source" "src/test/java" | |
1626 | "--output" "build/test-classes/META-INF/plexus/components.xml" | |
1627 | "--classes" "build/test-classes" | |
1628 | "--descriptors" "build/test-classes/META-INF") | |
1629 | #t)) | |
1630 | (add-after 'generate-metadata 'rebuild | |
1631 | (lambda _ | |
1632 | (invoke "ant" "jar") | |
51087d51 JL |
1633 | #t)) |
1634 | (replace 'install | |
1635 | (install-from-pom "pom.xml"))))) | |
1636 | (propagated-inputs | |
0c1e98eb JL |
1637 | `(("maven-artifact" ,maven-artifact) |
1638 | ("maven-repository-metadata" ,maven-repository-metadata) | |
1639 | ("maven-builder-support" ,maven-builder-support) | |
1640 | ("maven-model" ,maven-model) | |
1641 | ("maven-model-builder" ,maven-model-builder) | |
1642 | ("maven-settings" ,maven-settings) | |
1643 | ("maven-settings-builder" ,maven-settings-builder) | |
1644 | ("maven-core" ,maven-core) | |
1645 | ("maven-wagon-provider-api" ,maven-wagon-provider-api) | |
1646 | ("maven-wagon-file" ,maven-wagon-file) | |
1647 | ("maven-resolver-api" ,maven-resolver-api) | |
1648 | ("maven-resolver-util" ,maven-resolver-util) | |
1649 | ("maven-resolver-spi" ,maven-resolver-spi) | |
1650 | ("java-plexus-interpolation" ,java-plexus-interpolation))) | |
1651 | (native-inputs | |
1652 | `(("java-modello-core" ,java-modello-core) | |
1653 | ("java-plexus-utils" ,java-plexus-utils) | |
1654 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
1655 | ("java-plexus-classworlds" ,java-plexus-classworlds) | |
1656 | ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) | |
1657 | ("java-sisu-build-api" ,java-sisu-build-api) | |
1658 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
1659 | ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject) | |
1660 | ("java-javax-inject" ,java-javax-inject) | |
1661 | ("java-guice" ,java-guice) | |
1662 | ("java-guava" ,java-guava) | |
1663 | ("java-cglib" ,java-cglib) | |
1664 | ("java-asm" ,java-asm) | |
1665 | ("java-modello-plugins-java" ,java-modello-plugins-java) | |
1666 | ("java-modello-plugins-xml" ,java-modello-plugins-xml) | |
1667 | ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) | |
1668 | ;; metadata | |
1669 | ("java-plexus-component-metadata" ,java-plexus-component-metadata) | |
1670 | ("java-commons-cli" ,java-commons-cli) | |
1671 | ("java-plexus-cli" ,java-plexus-cli) | |
1672 | ("java-jdom2" ,java-jdom2) | |
1673 | ("maven-plugin-api" ,maven-plugin-api) | |
1674 | ("java-qdox" ,java-qdox) | |
1675 | ;; tests | |
1676 | ("java-plexus-cipher" ,java-plexus-cipher) | |
1677 | ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) | |
de99ba7e | 1678 | ("java-jsr250" ,java-jsr250) |
0c1e98eb JL |
1679 | ("java-cdi-api" ,java-cdi-api) |
1680 | ("java-junit" ,java-junit) | |
1681 | ("maven-resolver-impl" ,maven-resolver-impl) | |
1682 | ("maven-resolver-connector-basic" ,maven-resolver-connector-basic) | |
1683 | ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon) | |
1684 | ("java-commons-lang3" ,java-commons-lang3) | |
1685 | ("java-aop" ,java-aopalliance) | |
1686 | ("maven-resolver-provider" ,maven-resolver-provider) | |
1687 | ("java-slf4j-api" ,java-slf4j-api) | |
1688 | ("java-slf4j-simple" ,java-slf4j-simple) | |
1689 | ,@(package-inputs java-slf4j-api))) | |
1690 | (description "Apache Maven is a software project management and comprehension | |
1691 | tool. This package contains Maven2 classes maintained as compatibility | |
1692 | layer for plugins that need to keep Maven2 compatibility."))) | |
8c2c105c JL |
1693 | |
1694 | (define-public maven | |
1695 | (package | |
1696 | (inherit maven-artifact) | |
1697 | (name "maven") | |
1698 | (arguments | |
1699 | `(#:phases | |
1700 | (modify-phases %standard-phases | |
1701 | (replace 'build | |
137bd983 JL |
1702 | (lambda* (#:key inputs #:allow-other-keys) |
1703 | ;; Recreate the configuration for the loader | |
1704 | (with-output-to-file "apache-maven/src/bin/m2.conf" | |
1705 | (lambda _ | |
1706 | (format #t "main is org.apache.maven.cli.MavenCli from plexus.core~%") | |
1707 | (format #t "~%") | |
1708 | (format #t "set maven.conf default ${maven.home}/conf~%") | |
1709 | (format #t "~%") | |
1710 | (format #t "[plexus.core]~%") | |
1711 | (format #t "load ${maven.conf}/logging~%") | |
1712 | (format #t "optionally ${maven.home}/lib/ext/*.jar~%") | |
1713 | ;; Reference every jar so plexus-classworlds can find them. | |
1714 | (for-each | |
1715 | (lambda (dependency) | |
51087d51 JL |
1716 | (for-each |
1717 | (lambda (file) | |
1718 | (format #t "load ~a~%" file)) | |
1719 | (find-files (assoc-ref inputs dependency) ".*.jar$"))) | |
137bd983 JL |
1720 | '("maven-artifact" "maven-embedder" "maven-core" "maven-compat" |
1721 | "maven-builder-support" "maven-model" "maven-model-builder" | |
1722 | "maven-settings" "maven-settings-builder" "maven-plugin-api" | |
1723 | "maven-repository-metadata" "maven-shared-utils" "maven-resolver-api" | |
1724 | "maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl" | |
1725 | "maven-resolver-connector-basic" "maven-resolver-provider" | |
1726 | "maven-resolver-transport-wagon" "maven-wagon-provider-api" | |
1727 | "maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal" | |
1728 | "java-httpcomponents-httpclient" "java-httpcomponents-httpcore" | |
1729 | "maven-wagon-http-shared" "maven-wagon-tck-http" | |
1730 | "java-eclipse-sisu-plexus" "java-guice" "java-aopalliance" | |
1731 | "java-cglib" "java-asm" "java-eclipse-sisu-inject" | |
1732 | "java-javax-inject" "java-plexus-component-annotations" | |
1733 | "java-plexus-utils" "java-plexus-interpolation" | |
1734 | "java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava" | |
1735 | "java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli" | |
1736 | "java-commons-io" "java-commons-lang3" "java-slf4j-api" | |
1737 | "java-slf4j-simple")))) | |
8c2c105c JL |
1738 | (substitute* "apache-maven/src/bin/mvn" |
1739 | (("cygwin=false;") | |
1740 | (string-append | |
137bd983 JL |
1741 | "CLASSPATH=" |
1742 | (car (find-files | |
1743 | (assoc-ref inputs "java-plexus-classworlds") | |
1744 | ".*.jar")) | |
1745 | "\ncygwin=false;")) | |
8c2c105c JL |
1746 | (("-classpath.*") "-classpath ${CLASSPATH} \\\n")) |
1747 | #t)) | |
1748 | (delete 'check) | |
1749 | (replace 'install | |
1750 | (lambda* (#:key outputs #:allow-other-keys) | |
1751 | (let ((bin (string-append (assoc-ref outputs "out") "/bin/")) | |
1752 | (conf (string-append (assoc-ref outputs "out") "/conf/"))) | |
1753 | (mkdir-p (string-append (assoc-ref outputs "out") "/lib")) | |
1754 | (for-each (lambda (file) | |
1755 | (install-file (string-append "apache-maven/src/bin/" file) | |
1756 | bin) | |
1757 | (chmod (string-append bin file) #o755)) | |
1758 | '("mvn" "mvnDebug" "mvnyjp")) | |
1759 | (install-file "apache-maven/src/bin/m2.conf" bin) | |
1760 | (copy-recursively "apache-maven/src/conf" conf)) | |
1761 | #t))))) | |
1762 | (inputs | |
1763 | `(("java-plexus-classworlds" ,java-plexus-classworlds) | |
1764 | ("maven-artifact" ,maven-artifact) | |
1765 | ("maven-embedder" ,maven-embedder) | |
1766 | ("maven-core" ,maven-core) | |
1767 | ("maven-compat" ,maven-compat) | |
1768 | ("maven-builder-support" ,maven-builder-support) | |
1769 | ("maven-model" ,maven-model) | |
1770 | ("maven-model-builder" ,maven-model-builder) | |
1771 | ("maven-settings" ,maven-settings) | |
1772 | ("maven-settings-builder" ,maven-settings-builder) | |
1773 | ("maven-plugin-api" ,maven-plugin-api) | |
de99ba7e | 1774 | ("maven-repository-metadata" ,maven-repository-metadata) |
8c2c105c JL |
1775 | ("maven-shared-utils" ,maven-shared-utils) |
1776 | ("maven-resolver-api" ,maven-resolver-api) | |
1777 | ("maven-resolver-spi" ,maven-resolver-spi) | |
1778 | ("maven-resolver-util" ,maven-resolver-util) | |
1779 | ("maven-resolver-impl" ,maven-resolver-impl) | |
1780 | ("maven-resolver-connector-basic" ,maven-resolver-connector-basic) | |
1781 | ("maven-resolver-provider" ,maven-resolver-provider) | |
1782 | ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon) | |
1783 | ("maven-wagon-provider-api" ,maven-wagon-provider-api) | |
1784 | ("maven-wagon-file" ,maven-wagon-file) | |
1785 | ("maven-wagon-http" ,maven-wagon-http) | |
1786 | ("java-commons-logging-minimal" ,java-commons-logging-minimal) | |
1787 | ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient) | |
1788 | ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) | |
1789 | ("maven-wagon-http-shared" ,maven-wagon-http-shared) | |
1790 | ("maven-wagon-tck-http" ,maven-wagon-tck-http) | |
1791 | ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) | |
1792 | ("java-guice" ,java-guice) | |
1793 | ("java-aopalliance" ,java-aopalliance) | |
1794 | ("java-cglib" ,java-cglib) | |
1795 | ("java-asm" ,java-asm) | |
1796 | ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) | |
1797 | ("java-javax-inject" ,java-javax-inject) | |
1798 | ("java-plexus-component-annotations" ,java-plexus-component-annotations) | |
1799 | ("java-plexus-utils" ,java-plexus-utils) | |
1800 | ("java-plexus-interpolation" ,java-plexus-interpolation) | |
1801 | ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) | |
1802 | ("java-plexus-cipher" ,java-plexus-cipher) | |
1803 | ("java-guava" ,java-guava) | |
1804 | ("java-jansi" ,java-jansi) | |
1805 | ("java-jsr250" ,java-jsr250) | |
1806 | ("java-cdi-api" ,java-cdi-api) | |
1807 | ("java-commons-cli" ,java-commons-cli) | |
1808 | ("java-commons-io" ,java-commons-io) | |
1809 | ("java-commons-lang3" ,java-commons-lang3) | |
1810 | ("java-slf4j-api" ,java-slf4j-api) | |
1811 | ;; TODO: replace with maven-slf4j-provider | |
1812 | ("java-slf4j-simple" ,java-slf4j-simple))) | |
7504f3c3 JL |
1813 | (propagated-inputs |
1814 | `(("coreutils" ,coreutils) | |
1815 | ("which" ,which))) | |
8c2c105c JL |
1816 | (description "Apache Maven is a software project management and comprehension |
1817 | tool. Based on the concept of a project object model: builds, dependency | |
1818 | management, documentation creation, site publication, and distribution | |
1819 | publication are all controlled from the @file{pom.xml} declarative file. Maven | |
1820 | can be extended by plugins to utilise a number of other development tools for | |
1821 | reporting or the build process."))) |