[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
12/22: gnu: Add maven-core.
From: |
julien lepiller |
Subject: |
12/22: gnu: Add maven-core. |
Date: |
Sat, 16 Jun 2018 07:19:18 -0400 (EDT) |
roptat pushed a commit to branch master
in repository guix.
commit b822544cfeb450e8fd4ead86fd0a7451db9ac859
Author: Julien Lepiller <address@hidden>
Date: Sat Mar 17 16:34:46 2018 +0100
gnu: Add maven-core.
* gnu/packages/maven.scm (maven-core): New variable.
---
gnu/packages/maven.scm | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index 8b69f16..aa6c196 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -767,3 +767,75 @@ generally generated from plugin sources using
maven-plugin-plugin.")))
(description "Apache Maven is a software project management and
comprehension
tool. This package contains the maven core classes managing the whole build
process.")))
+
+(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 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
+ (sxml->xml
+ `(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)))))
- 20/22: gnu: Add maven-resolver-transport-wagon., (continued)
- 20/22: gnu: Add maven-resolver-transport-wagon., julien lepiller, 2018/06/16
- 08/22: gnu: Add maven-plugin-api., julien lepiller, 2018/06/16
- 17/22: gnu: Add maven-wagon-tck-http., julien lepiller, 2018/06/16
- 22/22: gnu: Add maven., julien lepiller, 2018/06/16
- 14/22: gnu: Add maven-wagon-provider-api., julien lepiller, 2018/06/16
- 15/22: gnu: Add maven-wagon-provider-test., julien lepiller, 2018/06/16
- 13/22: gnu: Add maven-embedder., julien lepiller, 2018/06/16
- 18/22: gnu: Add maven-wagon-http-shared., julien lepiller, 2018/06/16
- 21/22: gnu: Add maven-compat., julien lepiller, 2018/06/16
- 09/22: gnu: Add maven-core-bootstrap., julien lepiller, 2018/06/16
- 12/22: gnu: Add maven-core.,
julien lepiller <=
- 03/22: gnu. Add java-eclipse-jetty-xml-9.2., julien lepiller, 2018/06/16
- 19/22: gnu: Add maven-wagon-http., julien lepiller, 2018/06/16
- 11/22: gnu: Add java-plexus-component-metadata., julien lepiller, 2018/06/16
- 16/22: gnu: Add maven-wagon-file., julien lepiller, 2018/06/16