move maven to maven.scm

Julien LepillerMon Jan 08 19:06:01+0100 2018

6928c95

move maven to maven.scm

more/packages/maven.scm unknown status 1

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