summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/maven.scm40
1 files changed, 40 insertions, 0 deletions
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 08bb152a83..eb2a0b34d9 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -2058,3 +2058,43 @@ management, documentation creation, site publication, and distribution
 publication are all controlled from the @file{pom.xml} declarative file.  Maven
 can be extended by plugins to utilise a number of other development tools for
 reporting or the build process.")))
+
+;; Many plugins require maven 3.0 as a dependency.
+(define maven-3.0-pom
+  (package
+    (inherit maven-pom)
+    (version "3.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/apache/maven")
+                     (commit (string-append "maven-" version))))
+              (file-name (git-file-name "maven" version))
+              (sha256
+               (base32
+                "06jdwxx9w24shhv3kca80rlrikynn7kdqcrwg59lv2b7adpllwnh"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (for-each delete-file (find-files "." "\\.jar$"))
+                  (for-each (lambda (file) (chmod file #o644))
+                            (find-files "." "."))
+                  #t))
+              (patches
+                (search-patches "maven-generate-component-xml.patch"
+                                "maven-generate-javax-inject-named.patch"))))
+    (propagated-inputs
+     `(("maven-parent-pom-15" ,maven-parent-pom-15)))))
+
+(define-public maven-3.0-artifact
+  (package
+    (inherit maven-artifact)
+    (version (package-version maven-3.0-pom))
+    (source (package-source maven-3.0-pom))
+    (propagated-inputs
+      (map
+        (lambda (input)
+          (if (equal? (car input) "maven-pom")
+              `("maven-pom" ,maven-3.0-pom)
+              input))
+        (package-propagated-inputs maven-artifact)))))