GNU bug report logs -
#31774
[PATCH] Add maven
Previous Next
Reported by: Julien Lepiller <julien <at> lepiller.eu>
Date: Sun, 10 Jun 2018 11:02:02 UTC
Severity: normal
Tags: patch
Done: Julien Lepiller <julien <at> lepiller.eu>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
From: Julien Lepiller <julien <at> lepiller.eu>
* gnu/packages/maven.scm (maven-core): New variable.
---
gnu/packages/maven.scm | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 70 insertions(+)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index dff5bd3e4..ea6be7a7d 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -752,3 +752,73 @@ so really just plain objects.")))
("java-junit" ,java-junit)
("java-mockito-1" ,java-mockito-1)
("java-commons-jxpath" ,java-commons-jxpath)))))
+
+(define-public maven-core
+ (package
+ (inherit maven-core-bootstrap)
+ (arguments
+ (substitute-keyword-arguments (package-arguments maven-core-bootstrap)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'build 'modify-metainf
+ (lambda _
+ (substitute* "build.xml"
+ (("message=\"\"") "message=\"Implementation-Version: 3.5.3\n\""))
+ #t))
+ (add-before 'build 'add-maven-files
+ (lambda _
+ (mkdir-p "build/classes/META-INF/maven/org.apache.maven/maven-core")
+ (copy-file "pom.xml"
+ "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.xml")
+ (with-output-to-file "build/classes/META-INF/maven/org.apache.maven/maven-core/pom.properties"
+ (lambda _
+ (format #t "version=~a~%
+groupId=org.apache.maven~%
+artifactId=maven-core" ,(package-version maven-core-bootstrap))))
+ #t))
+ (add-after 'build 'generate-metadata
+ (lambda _
+ (define (components file)
+ (let ((sxml (with-input-from-file file
+ (lambda _ (xml->sxml (current-input-port) #:trim-whitespace? #t)))))
+ ;; Select the list of <component>s inside the <component-set>
+ ;; and <components>.
+ ((@ (ice-9 match) match) sxml
+ (('*TOP*
+ ('*PI* foo ...)
+ ('component-set
+ ('components x ...))) x))))
+ (use-modules (sxml simple))
+ (delete-file "build/classes/META-INF/plexus/components.xml")
+ (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
+ "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli"
+ "--source" "build/classes/META-INF/plexus"
+ "--output" "build/classes/META-INF/plexus/components.t.xml"
+ "--classes" "build/classes"
+ "--descriptors" "build/classes")
+ ;; Now we merge all other components from hand-written xml
+ (let ((generated-xml (components "build/classes/META-INF/plexus/components.t.xml"))
+ (components-xml (components "src/main/resources/META-INF/plexus/components.xml"))
+ (default-bindings-xml (components "src/main/resources/META-INF/plexus/default-bindings.xml"))
+ (artifact-handlers-xml (components "src/main/resources/META-INF/plexus/artifact-handlers.xml")))
+ (with-output-to-file "build/classes/META-INF/plexus/components.xml"
+ (lambda _
+ (display (sxml->string
+ `(component-set
+ (components
+ ,@(append generated-xml components-xml
+ default-bindings-xml
+ artifact-handlers-xml))))))))
+ #t))
+ (add-after 'generate-metadata 'rebuild
+ (lambda _
+ (invoke "ant" "jar")
+ #t))))))
+ (native-inputs
+ `(("java-plexus-component-metadata" ,java-plexus-component-metadata)
+ ("java-commons-cli" ,java-commons-cli)
+ ("java-plexus-cli" ,java-plexus-cli)
+ ("java-jdom2" ,java-jdom2)
+ ("java-qdox" ,java-qdox)
+ ("maven-core-boot" ,maven-core-bootstrap)
+ ,@(package-native-inputs maven-core-bootstrap)))))
This bug report was last modified 6 years and 333 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.