summary refs log tree commit diff
path: root/gnu/packages/maven.scm
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-02-13 14:24:53 +0100
committerMarius Bakke <marius@gnu.org>2022-02-13 14:24:53 +0100
commit76b6bbdf232b4b82cdd23cfe0d81331a4fd2edec (patch)
tree0e6a57ba08b9c6f9f5cbcdc5b5d9daeea91e428d /gnu/packages/maven.scm
parent1a5302435ff0d2822b823f5a6fe01faa7a85c629 (diff)
parente8af2ea63a7f497b8f8e19e206645109c0646e72 (diff)
downloadguix-76b6bbdf232b4b82cdd23cfe0d81331a4fd2edec.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/maven.scm')
-rw-r--r--gnu/packages/maven.scm304
1 files changed, 219 insertions, 85 deletions
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 0e9b99fa1c..ba4f111930 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -38,7 +38,7 @@
 (define-public maven-resolver-api
   (package
     (name "maven-resolver-api")
-    (version "1.3.1")
+    (version "1.6.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -47,7 +47,7 @@
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
+                "0hbbbxj14qyq8pccyab96pjqq90jnjmid1pml9kx55c5smfpjn37"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "maven-resolver-api.jar"
@@ -58,7 +58,7 @@
          (replace 'install
            (install-from-pom "maven-resolver-api/pom.xml")))))
     (native-inputs
-     `(("java-asm" ,java-asm)
+     `(("java-asm-8" ,java-asm-8)
        ("java-cglib" ,java-cglib)
        ("java-hamcrest-core" ,java-hamcrest-core)
        ("java-junit" ,java-junit)
@@ -220,6 +220,7 @@ for repositories using URI-based layouts.")))
      (list maven-resolver-api
            maven-resolver-spi
            maven-resolver-util
+           java-commons-lang3
            java-eclipse-sisu-inject
            java-javax-inject
            java-guice
@@ -293,7 +294,7 @@ for repositories using URI-based layouts.")))
        ("maven-resolver-util" ,maven-resolver-util)
        ("java-javax-inject" ,java-javax-inject)
        ("mavne-wagon-provider-api" ,maven-wagon-provider-api)
-       ("java-plexus-component-annotation" ,java-plexus-component-annotations)
+       ("java-plexus-component-annotation" ,java-plexus-component-annotations-1.7)
        ("java-plexus-classworld" ,java-plexus-classworlds)
        ("java-plexus-plexus-util" ,java-plexus-utils)
        ("java-slf4j-api" ,java-slf4j-api)
@@ -305,7 +306,6 @@ for repositories using URI-based layouts.")))
            maven-resolver-test-util
            java-guava
            java-cglib
-           java-asm
            java-aopalliance
            java-guice))
     (synopsis "Transport implementation for Maven")
@@ -534,6 +534,89 @@ ease usage of the repository system.")))
      (list java-junit java-plexus-component-metadata
            java-sonatype-aether-test-util))))
 
+;; This slightly newer version is also required by some plugins
+(define-public java-sonatype-aether-api-1.13
+  (package
+    (name "java-sonatype-aether-api")
+    (version "1.13.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/sonatype/sonatype-aether")
+                     (commit (string-append "aether-" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1yl34dqhm6ykb7h63gkssyrdxv3dsa3n5b8d8cvy8rh4qsm6p2yb"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "aether-api.jar"
+       #:source-dir "aether-api/src/main/java"
+       #:test-dir "aether-api/src/test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'install-parent (install-pom-file "pom.xml"))
+         (replace 'install (install-from-pom "aether-api/pom.xml")))))
+    (propagated-inputs
+     `(("java-sonatype-forge-parent-pom" ,java-sonatype-forge-parent-pom-10)))
+    (native-inputs `(("java-junit" ,java-junit)))
+    (home-page "https://github.com/sonatype/sonatype-aether")
+    (synopsis "Maven repository system API")
+    (description "This package contains the API for the maven repository system.")
+    (license license:asl2.0)))
+
+(define-public java-sonatype-aether-spi-1.13
+  (package
+    (inherit java-sonatype-aether-api-1.13)
+    (name "java-sonatype-aether-spi")
+    (arguments
+     `(#:jar-name "aether-spi.jar"
+       #:source-dir "aether-spi/src/main/java"
+       #:tests? #f; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install (install-from-pom "aether-spi/pom.xml")))))
+    (propagated-inputs
+     `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)))
+    (synopsis "Maven repository system SPI")
+    (description "This package contains the service provider interface (SPI)
+for repository system implementations and repository connectors.")))
+
+(define-public java-sonatype-aether-test-util-1.13
+  (package
+    (inherit java-sonatype-aether-api-1.13)
+    (name "java-sonatype-aether-test-util")
+    (arguments
+     `(#:jar-name "java-sonatype-aether-test-util.jar"
+       #:source-dir "aether-test-util/src/main/java"
+       #:test-dir "aether-test-util/src/test"))
+    (inputs
+     `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)
+       ("java-sonatype-aether-spi" ,java-sonatype-aether-spi-1.13)))
+    (synopsis "Utility classes for testing the maven repository system")
+    (description "This package contains a collection of utility classes to
+ease testing of the repository system.")))
+
+(define-public java-sonatype-aether-util-1.13
+  (package
+    (inherit java-sonatype-aether-api-1.13)
+    (name "java-sonatype-aether-util")
+    (arguments
+     `(#:jar-name "aether-util.jar"
+       #:source-dir "aether-util/src/main/java"
+       #:test-dir "aether-util/src/test"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install (install-from-pom "aether-util/pom.xml")))))
+    (propagated-inputs
+     `(("java-sonatype-aether-api" ,java-sonatype-aether-api-1.13)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-sonatype-aether-test-util" ,java-sonatype-aether-test-util-1.13)))
+    (synopsis "Utility classes for the maven repository system")
+    (description "This package contains a collection of utility classes to
+ease usage of the repository system.")))
+
 ;; Again, this old version is required by some maven plugins
 (define-public java-eclipse-aether-api
   (package
@@ -727,14 +810,14 @@ replacement with improvements.")
 (define-public maven-wagon-provider-api
   (package
     (name "maven-wagon-provider-api")
-    (version "3.3.4")
+    (version "3.4.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://archive.apache.org/dist/maven/wagon/"
                                   "wagon-" version "-source-release.zip"))
               (sha256
                (base32
-                "1iq9bilgfklzbxwwhzi3f19mkbaaf9dh9f83h3yz5gbmvypask9a"))))
+                "1rnviw0yr4g5902fb8pkd1gyvci4bz7hndjvhkqmnkj7ay0y6mf0"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "maven-wagon-provider-api.jar"
@@ -832,8 +915,8 @@ classes used in multiple maven-wagon components.")))
      (list java-plexus-utils maven-wagon-provider-api))
     (native-inputs
      `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
-       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+       ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
+       ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
        ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
        ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
        ("java-plexus-classworlds" ,java-plexus-classworlds)
@@ -851,7 +934,6 @@ classes used in multiple maven-wagon components.")))
        ("java-commons-cli" ,java-commons-cli)
        ("java-qdox" ,java-qdox)
        ("java-jdom2" ,java-jdom2)
-       ("java-asm" ,java-asm)
        ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
        ,@(package-native-inputs maven-wagon-provider-api)))
     (synopsis "Wagon provider that gets and puts artifacts using the file system")
@@ -920,8 +1002,8 @@ Test Compatibility Kit.")))
            maven-wagon-provider-api))
     (native-inputs
      `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
-       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+       ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
+       ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
        ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
        ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
        ("java-plexus-classworlds" ,java-plexus-classworlds)
@@ -939,7 +1021,6 @@ Test Compatibility Kit.")))
        ("java-commons-cli" ,java-commons-cli)
        ("java-qdox" ,java-qdox)
        ("java-jdom2" ,java-jdom2)
-       ("java-asm" ,java-asm)
        ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
        ,@(package-native-inputs maven-wagon-provider-api)))
     (synopsis "Shared Library for wagon providers supporting HTTP")
@@ -992,8 +1073,8 @@ wagon providers supporting HTTP.")))
            maven-wagon-provider-api))
     (native-inputs
      `(("maven-wagon-provider-test" ,maven-wagon-provider-test)
-       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+       ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
+       ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
        ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
        ("java-plexus-container-default" ,java-plexus-container-default)
        ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
@@ -1012,7 +1093,6 @@ wagon providers supporting HTTP.")))
        ("java-commons-cli" ,java-commons-cli)
        ("java-qdox" ,java-qdox)
        ("java-jdom2" ,java-jdom2)
-       ("java-asm" ,java-asm)
        ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
        ("java-javaee-servletapi" ,java-javaee-servletapi)
        ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2)
@@ -1037,13 +1117,13 @@ gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
 (define maven-pom
   (package
     (name "maven-pom")
-    (version "3.6.1")
+    (version "3.8.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/maven/"
                                   "maven-3/" version "/source/"
                                   "apache-maven-" version "-src.tar.gz"))
-              (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
+              (sha256 (base32 "16xbhkhhp05gskgbhrf1ia8riivvkhpk822n9xgnad61f9hzp2r9"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -1117,7 +1197,7 @@ gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x.")))
          (replace 'install
            (install-pom-file "pom.xml")))))
     (propagated-inputs
-     `(("maven-parent-pom-33" ,maven-parent-pom-33)))
+     `(("maven-parent-pom-34" ,maven-parent-pom-34)))
     (home-page "https://maven.apache.org/")
     (synopsis "Build system")
     (description "Apache Maven is a software project management and comprehension
@@ -1166,8 +1246,9 @@ and compares versions:")))
              (let ((file "maven-model/src/main/mdo/maven.mdo"))
                (modello-single-mode file "4.0.0" "java")
                (modello-single-mode file "4.0.0" "xpp3-reader")
+               (modello-single-mode file "4.0.0" "xpp3-extended-reader")
                (modello-single-mode file "4.0.0" "xpp3-writer")
-               (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
+               (modello-single-mode file "4.0.0" "xpp3-extended-writer"))
              #t))
          (replace 'install (install-from-pom "maven-model/pom.xml")))))
     (propagated-inputs
@@ -1185,7 +1266,7 @@ and compares versions:")))
            java-plexus-classworlds
            java-guava
            java-geronimo-xbean-reflect
-           java-sisu-build-api
+           java-plexus-build-api
            ;; modello plugins:
            java-modello-plugins-java
            java-modello-plugins-xml
@@ -1241,9 +1322,9 @@ setting, toolchains)")))
                        file mode "maven-settings/src/main/java" version
                        "false" "true"))
              (let ((file "maven-settings/src/main/mdo/settings.mdo"))
-               (modello-single-mode file "1.1.0" "java")
-               (modello-single-mode file "1.1.0" "xpp3-reader")
-               (modello-single-mode file "1.1.0" "xpp3-writer"))
+               (modello-single-mode file "1.2.0" "java")
+               (modello-single-mode file "1.2.0" "xpp3-reader")
+               (modello-single-mode file "1.2.0" "xpp3-writer"))
              #t))
          (replace 'install (install-from-pom "maven-settings/pom.xml")))))
     (propagated-inputs
@@ -1256,14 +1337,13 @@ setting, toolchains)")))
            java-plexus-component-annotations
            java-guice
            java-cglib
-           java-asm
            java-eclipse-sisu-inject
            java-javax-inject
            java-plexus-classworlds
            java-plexus-utils
            java-guava
            java-geronimo-xbean-reflect
-           java-sisu-build-api
+           java-plexus-build-api
            ;; modello plugins:
            java-modello-plugins-java
            java-modello-plugins-xml
@@ -1283,13 +1363,12 @@ simply plain java objects.")))
        #:test-dir "maven-settings-builder/src/test"
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'generate-components.xml
+         (add-before 'build 'generate-sisu-named
            (lambda _
-             (mkdir-p "build/classes/META-INF/plexus")
-             (chmod "components.sh" #o755)
-             (invoke "./components.sh" "maven-settings-builder/src/main/java"
-                     "build/classes/META-INF/plexus/components.xml")
-             #t))
+             (mkdir-p "build/classes/META-INF/sisu")
+             (chmod "sisu.sh" #o755)
+             (invoke "./sisu.sh" "maven-settings-builder/src/main/java"
+                     "build/classes/META-INF/sisu/javax.inject.Named")))
          (replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
     (propagated-inputs
      (list java-plexus-utils
@@ -1299,7 +1378,7 @@ simply plain java objects.")))
            maven-settings
            maven-pom))
     (native-inputs
-     (list java-junit java-plexus-component-annotations))
+     (list java-junit java-javax-inject java-plexus-component-annotations))
     (description "Apache Maven is a software project management and comprehension
 tool.  This package contains the effective model builder, with profile activation,
 inheritance, interpolation, @dots{}")))
@@ -1320,13 +1399,12 @@ inheritance, interpolation, @dots{}")))
              (copy-recursively "maven-model-builder/src/main/resources"
                                "build/classes")
              #t))
-         (add-before 'build 'generate-components.xml
+         (add-before 'build 'generate-sisu-named
            (lambda _
-             (mkdir-p "build/classes/META-INF/plexus")
-             (chmod "components.sh" #o755)
-             (invoke "./components.sh" "maven-model-builder/src/main/java"
-                     "build/classes/META-INF/plexus/components.xml")
-             #t))
+             (mkdir-p "build/classes/META-INF/sisu")
+             (chmod "sisu.sh" #o755)
+             (invoke "./sisu.sh" "maven-model-builder/src/main/java"
+                     "build/classes/META-INF/sisu/javax.inject.Named")))
          (add-before 'check 'fix-paths
            (lambda _
              (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
@@ -1346,9 +1424,10 @@ inheritance, interpolation, @dots{}")))
        ("java-guava" ,java-guava)
        ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
        ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+       ("java-powermock-reflect" ,java-powermock-reflect)
+       ("java-objenesis" ,java-objenesis)
        ("guice" ,java-guice)
        ("java-cglib" ,java-cglib)
-       ("java-asm" ,java-asm)
        ("sisu-inject" ,java-eclipse-sisu-inject)
        ("javax-inject" ,java-javax-inject)
        ("java-xmlunit" ,java-xmlunit)
@@ -1399,7 +1478,7 @@ inheritance, interpolation, @dots{}")))
        ("java-plexus-classworlds" ,java-plexus-classworlds)
        ("java-guava" ,java-guava)
        ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
-       ("java-sisu-build-api" ,java-sisu-build-api)
+       ("java-plexus-build-api" ,java-plexus-build-api)
        ;; modello plugins:
        ("java-modello-plugins-java" ,java-modello-plugins-java)
        ("java-modello-plugins-xml" ,java-modello-plugins-xml)
@@ -1474,7 +1553,6 @@ so really just plain objects.")))
        ("java-plexus-component-annotations" ,java-plexus-component-annotations)
        ("guice" ,java-guice)
        ("java-cglib" ,java-cglib)
-       ("java-asm" ,java-asm)
        ("sisu-inject" ,java-eclipse-sisu-inject)
        ("javax-inject" ,java-javax-inject)
        ("utils" ,java-plexus-utils)))
@@ -1484,7 +1562,7 @@ so really just plain objects.")))
        ("classworlds" ,java-plexus-classworlds)
        ("guava" ,java-guava)
        ("xbean" ,java-geronimo-xbean-reflect)
-       ("build-api" ,java-sisu-build-api)
+       ("build-api" ,java-plexus-build-api)
        ;; modello plugins:
        ("java" ,java-modello-plugins-java)
        ("xml" ,java-modello-plugins-xml)
@@ -1569,7 +1647,7 @@ generally generated from plugin sources using maven-plugin-plugin.")))
          ("maven-plugin-api" ,maven-plugin-api)
          ("maven-repository-metadata" ,maven-repository-metadata)
          ("maven-shared-utils" ,maven-shared-utils)
-         ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+         ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
          ("java-plexus-utils" ,java-plexus-utils)
          ("java-commons-lang3" ,java-commons-lang3)
          ("java-guava" ,java-guava)
@@ -1585,10 +1663,9 @@ generally generated from plugin sources using maven-plugin-plugin.")))
       (native-inputs
        `(("java-modello-core" ,java-modello-core)
          ("java-cglib" ,java-cglib)
-         ("java-asm" ,java-asm)
          ("java-plexus-classworlds" ,java-plexus-classworlds)
          ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
-         ("java-sisu-build-api" ,java-sisu-build-api)
+         ("java-plexus-build-api" ,java-plexus-build-api)
          ("java-modello-plugins-java" ,java-modello-plugins-java)
          ("java-modello-plugins-xml" ,java-modello-plugins-xml)
          ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
@@ -1687,7 +1764,7 @@ artifactId=maven-core" ,(package-version maven-core-bootstrap))))
                 (invoke "ant" "jar")
                 #t))))))
     (native-inputs
-     `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
+     `(("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
        ("java-commons-cli" ,java-commons-cli)
        ("java-plexus-cli" ,java-plexus-cli)
        ("java-jdom2" ,java-jdom2)
@@ -1740,6 +1817,13 @@ artifactId=maven-core" ,(package-version maven-core-bootstrap))))
                (("srcdir=\"maven-embedder/src/test\"")
                 "srcdir=\"maven-embedder/src/test/java\""))
              #t))
+         (add-before 'check 'disable-failing-test
+           (lambda _
+             (delete-file "maven-embedder/src/test/java/org/apache/maven/cli/event/ExecutionEventLoggerTest.java")))
+         (add-before 'install 'fix-pom
+           (lambda _
+             (substitute* "maven-embedder/pom.xml"
+               (("jsr250-api") "javax.annotation-api"))))
          (replace 'install
            (install-from-pom "maven-embedder/pom.xml")))))
     (propagated-inputs
@@ -1772,13 +1856,13 @@ artifactId=maven-core" ,(package-version maven-core-bootstrap))))
        ("java-slf4j-simple" ,java-slf4j-simple)
        ("java-jsr250" ,java-jsr250)))
     (native-inputs
-     `(("java-modello-core" ,java-modello-core)
+     `(("java-asm-8" ,java-asm-8)
+       ("java-modello-core" ,java-modello-core)
        ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
-       ("java-sisu-build-api" ,java-sisu-build-api)
+       ("java-plexus-build-api" ,java-plexus-build-api)
        ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
        ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
        ("java-cglib" ,java-cglib)
-       ("java-asm" ,java-asm)
        ("java-modello-plugins-java" ,java-modello-plugins-java)
        ("java-modello-plugins-xml" ,java-modello-plugins-xml)
        ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
@@ -1936,6 +2020,9 @@ logging support.")))
                      "--classes" "build/test-classes"
                      "--descriptors" "build/test-classes/META-INF")
              #t))
+         (add-before 'check 'disable-failing-test
+           (lambda _
+             (delete-file "src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java")))
          (add-after 'generate-metadata 'rebuild
            (lambda _
              (invoke "ant" "jar")
@@ -1960,10 +2047,10 @@ logging support.")))
     (native-inputs
      `(("java-modello-core" ,java-modello-core)
        ("java-plexus-utils" ,java-plexus-utils)
-       ("java-plexus-component-annotations" ,java-plexus-component-annotations)
+       ("java-plexus-component-annotations" ,java-plexus-component-annotations-1.7)
        ("java-plexus-classworlds" ,java-plexus-classworlds)
        ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
-       ("java-sisu-build-api" ,java-sisu-build-api)
+       ("java-plexus-build-api" ,java-plexus-build-api)
        ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
        ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject)
        ("java-javax-inject" ,java-javax-inject)
@@ -1975,7 +2062,7 @@ logging support.")))
        ("java-modello-plugins-xml" ,java-modello-plugins-xml)
        ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3)
        ;; metadata
-       ("java-plexus-component-metadata" ,java-plexus-component-metadata)
+       ("java-plexus-component-metadata" ,java-plexus-component-metadata-1.7)
        ("java-commons-cli" ,java-commons-cli)
        ("java-plexus-cli" ,java-plexus-cli)
        ("java-jdom2" ,java-jdom2)
@@ -2101,7 +2188,7 @@ layer for plugins that need to keep Maven2 compatibility.")))
            java-guice
            java-aopalliance
            java-cglib
-           java-asm
+           java-asm-8
            java-eclipse-sisu-inject
            java-javax-inject
            java-plexus-component-annotations
@@ -2238,6 +2325,16 @@ reporting or the build process.")))
     (inherit maven-settings-builder)
     (version (package-version maven-3.0-pom))
     (source (package-source maven-3.0-pom))
+    (arguments
+      (substitute-keyword-arguments (package-arguments maven-settings-builder)
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-before 'build 'generate-components.xml
+              (lambda _
+                (mkdir-p "build/classes/META-INF/plexus")
+                (chmod "components.sh" #o755)
+                (invoke "./components.sh" "maven-settings-builder/src/main/java"
+                        "build/classes/META-INF/plexus/components.xml")))))))
     (propagated-inputs
      `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
        ,@(filter
@@ -2248,6 +2345,8 @@ reporting or the build process.")))
                  ("maven-pom" `("maven-pom" ,maven-3.0-pom))
                  ("maven-settings" `("maven-settings" ,maven-3.0-settings))
                  ("maven-builder-support" #f)
+                 ("java-plexus-sec-dispatcher"
+                  `("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher-1.4))
                  (_ input)))
              (package-propagated-inputs maven-settings-builder)))))))
 
@@ -2256,6 +2355,19 @@ reporting or the build process.")))
     (inherit maven-model-builder)
     (version (package-version maven-3.0-pom))
     (source (package-source maven-3.0-pom))
+    (arguments
+      (substitute-keyword-arguments (package-arguments maven-model-builder)
+        ((#:phases phases)
+         `(modify-phases ,phases
+            (add-before 'build 'generate-components.xml
+              (lambda _
+                (mkdir-p "build/classes/META-INF/plexus")
+                (chmod "components.sh" #o755)
+                (invoke "./components.sh" "maven-model-builder/src/main/java"
+                        "build/classes/META-INF/plexus/components.xml")))
+            (add-before 'check 'remove-failing-test
+              (lambda _
+                (delete-file "maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java")))))))
     (propagated-inputs
      `(("java-plexus-component-annotations" ,java-plexus-component-annotations)
        ,@(filter
@@ -2443,7 +2555,7 @@ reporting or the build process.")))
            java-plexus-classworlds
            java-plexus-component-annotations
            java-plexus-container-default
-           java-plexus-sec-dispatcher
+           java-plexus-sec-dispatcher-1.4
            maven-3.0-pom))))
 
 (define-public maven-3.0-compat
@@ -2644,7 +2756,7 @@ Maven project dependencies.")
 (define-public maven-dependency-tree
   (package
     (name "maven-dependency-tree")
-    (version "3.0.1")
+    (version "3.1.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/maven/shared/"
@@ -2652,20 +2764,21 @@ Maven project dependencies.")
                                   "-source-release.zip"))
               (sha256
                (base32
-                "0mxfslxvcmjs13jl30zhcg672j970dzn6ihh79w9ajh6sfqmlds2"))))
+                "1vhcd3lmbyy8q61c37sqgbllqj4ypkxm344l6pb05mkchlyk5dy5"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "maven-dependency-tree.jar"
        #:source-dir "src/main/java"
+       #:tests? #f; no tests
        #:phases
        (modify-phases %standard-phases
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
      (list maven-3.0-core java-plexus-component-annotations
-           maven-parent-pom-30))
+           maven-parent-pom-34))
     (inputs
-     (list java-sonatype-aether-api java-sonatype-aether-util
+     (list java-sonatype-aether-api-1.13 java-sonatype-aether-util-1.13
            java-eclipse-aether-api java-eclipse-aether-util))
     (native-inputs
      (list unzip java-junit))
@@ -2678,7 +2791,7 @@ Maven project dependencies.")
 (define-public maven-common-artifact-filters
   (package
     (name "maven-common-artifact-filters")
-    (version "3.1.0")
+    (version "3.2.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/maven/shared/"
@@ -2686,7 +2799,7 @@ Maven project dependencies.")
                                   "-source-release.zip"))
               (sha256
                (base32
-                "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
+                "1mr92s4zz6gf028wiskjg8rd1znxzdnmskg42ac55ifg9v1p1884"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "maven-common-artifact-filters.jar"
@@ -2694,14 +2807,12 @@ Maven project dependencies.")
        #:tests? #f; require maven-plugin-testing-harness, which requires maven 3.2.
        #:phases
        (modify-phases %standard-phases
-         (add-before 'build 'remove-sisu
+         (add-before 'build 'fix-aether
            (lambda _
-             ;; Replace sisu with an existing dependency, to prevent a failure
-             ;; when rewritting dependency versions
              (substitute* "pom.xml"
-               (("sisu-inject-plexus") "maven-plugin-api")
-               (("org.sonatype.sisu") "org.apache.maven"))
-             #t))
+               (("eclipse.aether") "sonatype.aether"))
+             (substitute* "src/main/java/org/apache/maven/shared/artifact/filter/collection/ArtifactTransitivityFilter.java"
+               (("eclipse") "sonatype"))))
          (replace 'install
            (install-from-pom "pom.xml")))))
     (propagated-inputs
@@ -2711,6 +2822,7 @@ Maven project dependencies.")
            maven-3.0-plugin-api
            maven-shared-utils
            maven-parent-pom-33
+           java-eclipse-sisu-plexus
            java-sonatype-aether-api
            java-sonatype-aether-util))
     (inputs
@@ -2723,19 +2835,40 @@ Maven project dependencies.")
 Maven project dependencies.")
     (license license:asl2.0)))
 
+(define-public maven-common-artifact-filters-3.1.0
+  (package
+    (inherit maven-common-artifact-filters)
+    (version "3.1.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://apache/maven/shared/"
+                                  "maven-common-artifact-filters-" version
+                                  "-source-release.zip"))
+              (sha256
+               (base32
+                "1cl1qk4r0gp62bjzfm7lml9raz1my2kd4yf0ci0lnfsn0h5qivnb"))))
+    (arguments
+      (substitute-keyword-arguments (package-arguments maven-common-artifact-filters)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'fix-aether)
+           (add-before 'build 'remove-sisu
+             (lambda _
+               (substitute* "pom.xml"
+                 (("sisu-inject-plexus") "maven-plugin-api")
+                 (("org.sonatype.sisu") "org.apache.maven"))))))))))
+
 (define-public maven-enforcer-api
   (package
     (name "maven-enforcer-api")
-    (version "3.0.0-M3")
+    (version "3.0.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/maven/enforcer/"
                                   "enforcer-" version "-source-release.zip"))
               (sha256
                (base32
-                "014cwj0dqa69nnlzcin8pk9wsjmmg71vsbcpb16cibcjpm6h9wjg"))
-              (patches
-                (search-patches "maven-enforcer-api-fix-old-dependencies.patch"))))
+                "1479yp58jv788xc1jc2sbdxpajlbvwlk60639vd2h4s8r6x7naqh"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "maven-enforcer-api.jar"
@@ -2769,12 +2902,13 @@ Maven project dependencies.")
          (add-before 'install 'fix-pom-versions
            (lambda _
              (substitute* "pom.xml"
-               (("3.8.1") ,(package-version java-commons-lang3))
-               (("1.4.1") ,(package-version maven-resolver-util))
-               (("1.12") ,(package-version java-commons-codec))
-               (("<version>2.2</version>")
-                ,(string-append "<version>" (package-version maven-dependency-tree)
-                                "</version>")))))
+               (("<maven.version>.*</maven.version>")
+                ,(string-append "<maven.version>" (package-version maven)
+                                "</maven.version>"))
+               (("2.11.0") ,(package-version java-commons-io))
+               (("3.12.0") ,(package-version java-commons-lang3))
+               (("1.6.1") ,(package-version maven-resolver-util))
+               (("1.15") ,(package-version java-commons-codec)))))
          (replace 'install
            (install-pom-file "pom.xml")))))
     (propagated-inputs
@@ -2839,7 +2973,7 @@ Maven project dependencies.")
 (define-public maven-artifact-transfer
   (package
     (name "maven-artifact-transfer")
-    (version "0.12.0")
+    (version "0.13.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://apache/maven/shared/"
@@ -2847,7 +2981,7 @@ Maven project dependencies.")
                                   "-source-release.zip"))
               (sha256
                (base32
-                "0mkdjr3wnvaxqaq68sy7h4mqlq3xgwwp5s2anj5vbxfy4bsc1ivj"))))
+                "0xl7lkksljacrhmvwf924zb6h0h5zw9494jaz9cz4hll0lrhlpz6"))))
     (build-system ant-build-system)
     (arguments
      `(#:tests? #f; require mockito 2
@@ -2874,7 +3008,7 @@ Maven project dependencies.")
      (list java-commons-codec
            maven-3.0-artifact
            maven-3.0-core
-           maven-common-artifact-filters
+           maven-common-artifact-filters-3.1.0
            java-plexus-component-annotations
            java-plexus-utils
            java-slf4j-api
@@ -2967,7 +3101,7 @@ build are stored.  By default, it is located within the user's home directory
      `(#:jar-name "maven-filtering.jar"
        #:source-dir "src/main/java"
        #:test-dir "src/test"
-       ;; this test comes from sisu-build-api, not this package
+       ;; this test comes from plexus-build-api, not this package
        #:test-exclude (list "**/IncrementalResourceFilteringTest.java"
                             "**/Abstract*.java")
        #:phases
@@ -2987,7 +3121,7 @@ build are stored.  By default, it is located within the user's home directory
              #t))
          (add-before 'check 'decompress-tests
            (lambda* (#:key inputs #:allow-other-keys)
-             (let* ((build-api-source (assoc-ref inputs "java-sisu-build-api-origin"))
+             (let* ((build-api-source (assoc-ref inputs "java-plexus-build-api-origin"))
                     (classes (string-append build-api-source "/src/test/java")))
                (copy-recursively classes "src/test/"))
              #t))
@@ -3004,9 +3138,9 @@ build are stored.  By default, it is located within the user's home directory
     (propagated-inputs
      (list maven-3.0-core
            maven-shared-utils
-           java-plexus-utils
+           java-plexus-utils-3.2.1
            java-plexus-interpolation
-           java-sisu-build-api
+           java-plexus-build-api
            maven-parent-pom-30))
     (inputs
      (list java-jsr305))
@@ -3017,7 +3151,7 @@ build are stored.  By default, it is located within the user's home directory
        ("java-mockito" ,java-mockito-1)
        ("java-objenesis" ,java-objenesis)
        ("java-plexus-component-metadata" ,java-plexus-component-metadata)
-       ("java-sisu-build-api-origin" ,(package-source java-sisu-build-api))))
+       ("java-plexus-build-api-origin" ,(package-source java-plexus-build-api))))
     (home-page "https://maven.apache.org/shared/maven-filtering")
     (synopsis "Shared component for all plugins that needs to filter resources")
     (description "This component provides an API to filter resources in Maven