From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38266) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fTFyj-0004DT-Sb for guix-patches@gnu.org; Wed, 13 Jun 2018 20:19:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fTFyg-0006Ef-Mo for guix-patches@gnu.org; Wed, 13 Jun 2018 20:19:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:39180) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fTFyg-0006EZ-Hy for guix-patches@gnu.org; Wed, 13 Jun 2018 20:19:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fTFyg-00056q-6Z for guix-patches@gnu.org; Wed, 13 Jun 2018 20:19:02 -0400 Subject: [bug#31774] [PATCH 12/22] gnu: Add maven-core. Resent-Message-ID: From: Danny Milosavljevic Date: Thu, 14 Jun 2018 02:18:09 +0200 Message-Id: <20180614001809.22032-1-dannym@scratchpost.org> In-Reply-To: <20180612213609.68734b19@lepiller.eu> References: <20180612213609.68734b19@lepiller.eu> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 31774@debbugs.gnu.org, Julien Lepiller From: Julien Lepiller * 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 s inside the + ;; and . + ((@ (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)))))