From 458687d58677518a3fd3e441d2cd94d9f964990a Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sun, 27 May 2018 22:20:38 +0200 Subject: gnu: Add maven-artifact. * gnu/packages/maven.scm (maven-artifact): New variable. * gnu/packages/patches/maven-generate-component-xml.patch: New file. * gnu/packages/patches/maven-generate-javax-inject-named.patch: New file. * gnu/local.mk (dist_patch_DATA): Add them. --- gnu/packages/maven.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 81021f6461..c414160b34 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -128,3 +128,41 @@ (define-public maven-resolver-connector-basic (synopsis "Maven repository connector implementation") (description "This package contains a repository connector implementation for repositories using URI-based layouts."))) + +(define-public maven-artifact + (package + (name "maven-artifact") + (version "3.5.3") + (source (origin + (method url-fetch) + (uri (string-append "https://archive.apache.org/dist/maven/" + "maven-3/" version "/source/" + "apache-maven-" version "-src.tar.gz")) + (sha256 (base32 "06by23fz207lkvsndq883irfcf4p77jzkgf7n2q7hzyw1hs4h5s7")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file (find-files "." "\\.jar$")) + #t)) + (patches + (search-patches "maven-generate-component-xml.patch" + "maven-generate-javax-inject-named.patch")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "maven-artifact.jar" + #:source-dir "maven-artifact/src/main/java" + #:test-dir "maven-artifact/src/test" + #:main-class "org.apache.maven.artifact.versioning.ComparableVersion")) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-commons-lang3" ,java-commons-lang3))) + (native-inputs + `(("java-junit" ,java-junit))) + (home-page "https://maven.apache.org/") + (synopsis "Build system") + (description "Apache Maven is a software project management and comprehension +tool. This package contains the Maven Artifact classes, providing the +@code{Artifact} interface, with its @code{DefaultArtifact} implementation. The +jar file is executable and provides a little tool to display how Maven parses +and compares versions:") + (license license:asl2.0))) -- cgit v1.2.3 From d55503a6ab5f4cf9af58a0f04c4f1a91f516174a Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sun, 27 May 2018 23:40:38 +0200 Subject: gnu: Add maven-model. * gnu/packages/maven.scm (maven-model): New variable. --- gnu/packages/maven.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index c414160b34..fc04656324 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -166,3 +166,53 @@ (define-public maven-artifact jar file is executable and provides a little tool to display how Maven parses and compares versions:") (license license:asl2.0))) + +(define-public maven-model + (package + (inherit maven-artifact) + (name "maven-model") + (arguments + `(#:jar-name "maven-model.jar" + #:source-dir "maven-model/src/main/java" + #:test-dir "maven-model/src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "maven-model/src/main/java" version + "false" "true")) + (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-writer") + (modello-single-mode file "4.0.0" "xpp3-extended-reader")) + #t))))) + (inputs + `(("java-commons-lang3" ,java-commons-lang3) + ("java-plexus-utils" ,java-plexus-utils))) + (native-inputs + `(("java-modello-core" ,java-modello-core) + ;; for modello: + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-guice" ,java-guice) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("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) + ;; modello plugins: + ("java-modello-plugins-java" ,java-modello-plugins-java) + ("java-modello-plugins-xml" ,java-modello-plugins-xml) + ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) + ;; for tests + ("java-junit" ,java-junit))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains the model for Maven @dfn{POM} (Project Object Model), +so really just plain Java objects."))) -- cgit v1.2.3 From f084641a01e160f20eea7697bef0f75aa83e441f Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sun, 27 May 2018 23:44:21 +0200 Subject: gnu: Add maven-builder-support. * gnu/packages/maven.scm (maven-builder-support): New variable. --- gnu/packages/maven.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index fc04656324..028f2b2aa7 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -216,3 +216,32 @@ (define (modello-single-mode file version mode) (description "Apache Maven is a software project management and comprehension tool. This package contains the model for Maven @dfn{POM} (Project Object Model), so really just plain Java objects."))) + +(define-public maven-builder-support + (package + (inherit maven-artifact) + (name "maven-builder-support") + (arguments + `(#:jar-name "maven-builder-support.jar" + #:source-dir "maven-builder-support/src/main/java" + #:jdk ,icedtea-8 + #:test-dir "maven-builder-support/src/test" + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-paths + (lambda _ + (with-directory-excursion "maven-builder-support/src/test/java" + (substitute* + '("org/apache/maven/building/FileSourceTest.java" + "org/apache/maven/building/UrlSourceTest.java") + (("target/test-classes") "maven-builder-support/src/test/resources"))) + #t))))) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-commons-lang3" ,java-commons-lang3))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains a support library for descriptor builders (model, +setting, toolchains)"))) -- cgit v1.2.3 From 18110e45a694b26d37a4a67326225fc780bc9fa9 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sun, 27 May 2018 23:46:41 +0200 Subject: gnu: Add maven-settings. * gnu/packages/maven.scm (maven-settings): New variable. --- gnu/packages/maven.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 028f2b2aa7..bb948e72c7 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -245,3 +245,50 @@ (define-public maven-builder-support (description "Apache Maven is a software project management and comprehension tool. This package contains a support library for descriptor builders (model, setting, toolchains)"))) + +(define-public maven-settings + (package + (inherit maven-artifact) + (name "maven-settings") + (arguments + `(#:jar-name "maven-settings.jar" + #:source-dir "maven-settings/src/main/java" + #:jdk ,icedtea-8 + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + 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")) + #t))))) + (inputs '()) + (native-inputs + `(("java-modello-core" ,java-modello-core) + ;; for modello: + ;("container" ,java-plexus-container-default) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-guice" ,java-guice) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-plexus-utils" ,java-plexus-utils) + ("java-guava" ,java-guava) + ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) + ("java-sisu-build-api" ,java-sisu-build-api) + ;; modello plugins: + ("java-modello-plugins-java" ,java-modello-plugins-java) + ("java-modello-plugins-xml" ,java-modello-plugins-xml) + ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains strictly the model for Maven settings, that is +simply plain java objects."))) -- cgit v1.2.3 From 3a5572ae76707a48781a800c980cbeb5e7ca31dc Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sun, 27 May 2018 23:51:34 +0200 Subject: gnu: Add maven-settings-builder. * gnu/packages/maven.scm (maven-settings-builder): New variable. --- gnu/packages/maven.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index bb948e72c7..64ee672be9 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -292,3 +292,35 @@ (define (modello-single-mode file version mode) (description "Apache Maven is a software project management and comprehension tool. This package contains strictly the model for Maven settings, that is simply plain java objects."))) + +(define-public maven-settings-builder + (package + (inherit maven-artifact) + (name "maven-settings-builder") + (arguments + `(#:jar-name "maven-settings-builder.jar" + #:source-dir "maven-settings-builder/src/main/java" + #:jdk ,icedtea-8 + #:test-dir "maven-settings-builder/src/test" + #:phases + (modify-phases %standard-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") + #t))))) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-plexus-interpolation" ,java-plexus-interpolation) + ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) + ("maven-builder-support" ,maven-builder-support) + ("maven-settings" ,maven-settings) + ("java-commons-lang3" ,java-commons-lang3))) + (native-inputs + `(("java-junit" ,java-junit))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains the effective model builder, with profile activation, +inheritance, interpolation, @dots{}"))) -- cgit v1.2.3 From 516db3b97ae430b799b7872de5e4cadc1ddc0636 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Mon, 28 May 2018 22:00:28 +0200 Subject: gnu: Add maven-model-builder. * gnu/packages/maven.scm (maven-model-builder): New variable. --- gnu/packages/maven.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 64ee672be9..b9abc6d83a 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -324,3 +324,58 @@ (define-public maven-settings-builder (description "Apache Maven is a software project management and comprehension tool. This package contains the effective model builder, with profile activation, inheritance, interpolation, @dots{}"))) + +(define-public maven-model-builder + (package + (inherit maven-artifact) + (name "maven-model-builder") + (arguments + `(#:jar-name "maven-model-builder.jar" + #:source-dir "maven-model-builder/src/main/java" + #:jdk ,icedtea-8 + #:test-dir "maven-model-builder/src/test" + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "maven-model-builder/src/main/resources" + "build/classes") + #t)) + (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") + #t)) + (add-before 'check 'fix-paths + (lambda _ + (substitute* (find-files "maven-model-builder/src/test/java" ".*.java") + (("src/test") "maven-model-builder/src/test")) + #t))))) + (inputs + `(("model" ,maven-model) + ("artifact" ,maven-artifact) + ("support" ,maven-builder-support) + ("annotations" ,java-plexus-component-annotations) + ("utils" ,java-plexus-utils) + ("interpolation" ,java-plexus-interpolation) + ("lang3" ,java-commons-lang3) + ("guava" ,java-guava))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("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) + ("xmlunit" ,java-xmlunit) + ("xmlunit" ,java-xmlunit-legacy) + ("xbean" ,java-geronimo-xbean-reflect) + ("classworlds" ,java-plexus-classworlds))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains the effective model builder, with profile activation, +inheritance, interpolation, @dots{}"))) -- cgit v1.2.3 From 90fe8797cda18b123a1b28c9cad7c03673afe5dd Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Mon, 28 May 2018 22:10:29 +0200 Subject: gnu: Add maven-resolver-impl. * gnu/packages/maven.scm (maven-resolver-impl): New variable. --- gnu/packages/maven.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index b9abc6d83a..649c9f962b 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -129,6 +129,66 @@ (define-public maven-resolver-connector-basic (description "This package contains a repository connector implementation for repositories using URI-based layouts."))) +(define-public maven-resolver-impl + (package + (inherit maven-resolver-api) + (name "maven-resolver-impl") + (arguments + `(#:jar-name "maven-resolver-impl.jar" + #:source-dir "maven-resolver-impl/src/main/java" + #:test-dir "maven-resolver-impl/src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-sisu + (lambda _ + (mkdir-p "build/classes/META-INF/sisu") + (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" + (lambda _ + (display + (string-append + ;; Build this list by looking for files containing "@Named" + "org.eclipse.aether.internal.impl.DefaultArtifactResolver\n" + "org.eclipse.aether.internal.impl.DefaultTransporterProvider\n" + "org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer\n" + "org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory\n" + "org.eclipse.aether.internal.impl.DefaultRepositorySystem\n" + "org.eclipse.aether.internal.impl.LoggerFactoryProvider\n" + "org.eclipse.aether.internal.impl.DefaultFileProcessor\n" + "org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider\n" + "org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory\n" + "org.eclipse.aether.internal.impl.DefaultDeployer\n" + "org.eclipse.aether.internal.impl.DefaultMetadataResolver\n" + "org.eclipse.aether.internal.impl.DefaultInstaller\n" + "org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory\n" + "org.eclipse.aether.internal.impl.DefaultSyncContextFactory\n" + "org.eclipse.aether.internal.impl.DefaultOfflineController\n" + "org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory\n" + "org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider\n" + "org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager\n" + "org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher\n" + "org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider\n" + "org.eclipse.aether.internal.impl.DefaultUpdateCheckManager\n" + "org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider\n" + "org.eclipse.aether.internal.impl.DefaultDependencyCollector\n")))) + #t))))) + (inputs + `(("maven-resolver-api" ,maven-resolver-api) + ("maven-resolver-spi" ,maven-resolver-spi) + ("maven-resolver-util" ,maven-resolver-util) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-guice" ,java-guice) + ("java-guava" ,java-guava) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("jajva-aopalliance" ,java-aopalliance) + ("java-slf4j-api" ,java-slf4j-api))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("maven-resolver-test-util" ,maven-resolver-test-util))))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From 18736663edf3bd5dfb69b2f3e282af40f80d7143 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Mon, 28 May 2018 22:14:04 +0200 Subject: gnu: Add maven-repository-metadata. * gnu/packages/maven.scm (maven-repository-metadata): New variable. --- gnu/packages/maven.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 649c9f962b..fe9554146e 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -439,3 +439,49 @@ (define-public maven-model-builder (description "Apache Maven is a software project management and comprehension tool. This package contains the effective model builder, with profile activation, inheritance, interpolation, @dots{}"))) + +(define-public maven-repository-metadata + (package + (inherit maven-artifact) + (name "maven-repository-metadata") + (arguments + `(#:jar-name "maven-repository-metadata.jar" + #:source-dir "maven-repository-metadata/src/main/java" + #:jdk ,icedtea-8 + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "maven-repository-metadata/src/main/java" version + "false" "true")) + (let ((file "maven-repository-metadata/src/main/mdo/metadata.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")) + #t))))) + (inputs '()) + (native-inputs + `(("modello" ,java-modello-core) + ;; for modello: + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-guice" ,java-guice) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-plexus-utils" ,java-plexus-utils) + ("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) + ;; modello plugins: + ("java-modello-plugins-java" ,java-modello-plugins-java) + ("java-modello-plugins-xml" ,java-modello-plugins-xml) + ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains strictly the model for Maven Repository Metadata, +so really just plain objects."))) -- cgit v1.2.3 From b218504026901904b1f4d183b6581d215d763b90 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Mon, 28 May 2018 22:34:32 +0200 Subject: gnu: Add maven-shared-utils. gnu/packages/maven.scm (maven-shared-utils): New variable. --- gnu/packages/maven.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index fe9554146e..f2ef42901a 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -23,6 +23,7 @@ (define-module (gnu packages maven) #:use-module (guix utils) #:use-module (guix build-system ant) #:use-module (gnu packages) + #:use-module (gnu packages compression) #:use-module (gnu packages java)) (define-public maven-resolver-api @@ -189,6 +190,46 @@ (define-public maven-resolver-impl ("java-hamcrest-core" ,java-hamcrest-core) ("maven-resolver-test-util" ,maven-resolver-test-util))))) +(define-public maven-shared-utils + (package + (name "maven-shared-utils") + (version "3.2.1") + (source (origin + (method url-fetch) + (uri (string-append "https://archive.apache.org/dist/maven/shared/" + "maven-shared-utils-" version "-source-release.zip")) + (sha256 + (base32 + "1kzmj68wwdcznb36hm6kfz57wbavw7g1rp236pz10znkjljn6rf6")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "maven-shared-utils.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'check 'remove-cyclic-dep + (lambda _ + (delete-file + "src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java") + #t))))) + (inputs + `(("java-jansi" ,java-jansi) + ("java-commons-io" ,java-commons-io) + ("java-jsr305" ,java-jsr305) + ("java-plexus-container-default" ,java-plexus-container-default))) + (native-inputs + `(("unzip" ,unzip) + ("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-commons-lang3" ,java-commons-lang3))) + (home-page "https://maven.apache.org/shared/maven-shared-utils/") + (synopsis "Plexus-util replacement for maven") + (description "This project aims to be a functional replacement for +plexus-utils in Maven. It is not a 100% API compatible replacement but a +replacement with improvements.") + (license license:asl2.0))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From 5aa4ea6a2baf3d25f920c4c706a1b6d99f68ae27 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Mon, 28 May 2018 22:46:39 +0200 Subject: gnu: Add maven-resolver-provider. * gnu/packages/maven.scm (maven-resolver-provider): New variable. --- gnu/packages/maven.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index f2ef42901a..473847c044 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -526,3 +526,39 @@ (define (modello-single-mode file version mode) (description "Apache Maven is a software project management and comprehension tool. This package contains strictly the model for Maven Repository Metadata, so really just plain objects."))) + +(define-public maven-resolver-provider + (package + (inherit maven-artifact) + (name "maven-resolver-provider") + (arguments + `(#:jar-name "maven-resolver-provider.jar" + #:source-dir "maven-resolver-provider/src/main/java" + #:test-dir "maven-resolver-provider/src/test" + #:jdk ,icedtea-8 + #:tests? #f; dependency loop on maven-core (@Component RepositorySystem) + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-sisu-named + (lambda _ + (mkdir-p "build/classes/META-INF/sisu") + (chmod "./sisu.sh" #o755) + (invoke "./sisu.sh" "maven-resolver-provider/src/main/java" + "build/classes/META-INF/sisu/javax.inject.Named") + #t))))) + (inputs + `(("maven-resolver-spi" ,maven-resolver-spi) + ("maven-resolver-api" ,maven-resolver-api) + ("maven-resolver-impl" ,maven-resolver-impl) + ("maven-resolver-util" ,maven-resolver-util) + ("maven-model" ,maven-model) + ("maven-model-builder" ,maven-model-builder) + ("maven-builder-support" ,maven-builder-support) + ("maven-repository-metadata" ,maven-repository-metadata) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-commons-lang3" ,java-commons-lang3) + ("java-guice" ,java-guice) + ("java-guava" ,java-guava) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject))))) -- cgit v1.2.3 From 8f5caf936623e32158f2996da8c2cb2017048415 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:25:45 +0100 Subject: gnu: Add maven-plugin-api. * gnu/packages/maven.scm (maven-plugin-api): New variable. --- gnu/packages/maven.scm | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 473847c044..65903b9c12 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -562,3 +562,56 @@ (define-public maven-resolver-provider ("java-guava" ,java-guava) ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) ("java-javax-inject" ,java-javax-inject))))) + +(define-public maven-plugin-api + (package + (inherit maven-artifact) + (name "maven-plugin-api") + (arguments + `(#:jar-name "maven-plugin-api.jar" + #:source-dir "maven-plugin-api/src/main/java" + #:jdk ,icedtea-8 + #:test-dir "maven-plugin-api/src/test" + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "maven-plugin-api/src/main/java" version + "false" "true")) + (let ((file "maven-plugin-api/src/main/mdo/lifecycle.mdo")) + (modello-single-mode file "1.0.0" "java") + (modello-single-mode file "1.0.0" "xpp3-reader") + (modello-single-mode file "1.0.0" "xpp3-writer")) + #t))))) + (inputs + `(("maven-artifact" ,maven-artifact) + ("maven-model" ,maven-model) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("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))) + (native-inputs + `(("modello" ,java-modello-core) + ;; for modello: + ("classworlds" ,java-plexus-classworlds) + ("guava" ,java-guava) + ("xbean" ,java-geronimo-xbean-reflect) + ("build-api" ,java-sisu-build-api) + ;; modello plugins: + ("java" ,java-modello-plugins-java) + ("xml" ,java-modello-plugins-xml) + ("xpp3" ,java-modello-plugins-xpp3) + ;; for tests + ("java-junit" ,java-junit))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains strictly the API for plugins -- composed of goals +implemented by Mojos -- development. + +A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor, +generally generated from plugin sources using maven-plugin-plugin."))) -- cgit v1.2.3 From 7a42f0586910418c72d4df3abecc5ded6b3aa309 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:27:50 +0100 Subject: gnu: Add maven-core-bootstrap. --- gnu/packages/maven.scm | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 65903b9c12..59cee90785 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -615,3 +615,85 @@ (define (modello-single-mode file version mode) A plugin is described in a @file{META-INF/maven/plugin.xml} plugin descriptor, generally generated from plugin sources using maven-plugin-plugin."))) + +(define maven-core-bootstrap + (package + (inherit maven-artifact) + (name "maven-core") + (arguments + `(#:jar-name "maven-core.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + ;; Tests need maven-compat, which requires maven-core + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + ;; Required for generating components.xml in maven-core + (chdir "maven-core") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (mkdir-p "build/classes/") + (copy-recursively "src/main/resources" "build/classes") + #t)) + (add-before 'build 'generate-sisu-named + (lambda _ + (mkdir-p "build/classes/META-INF/sisu") + (chmod "../sisu.sh" #o755) + (invoke "../sisu.sh" "src/main/java" + "build/classes/META-INF/sisu/javax.inject.Named") + #t)) + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "src/main/java" version + "false" "true")) + (let ((file "src/main/mdo/toolchains.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")) + #t))))) + (inputs + `(("maven-artifact" ,maven-artifact) + ("maven-resolver-provider" ,maven-resolver-provider) + ("maven-builder-support" ,maven-builder-support) + ("maven-model" ,maven-model) + ("maven-model-builder" ,maven-model-builder) + ("maven-settings" ,maven-settings) + ("maven-settings-builder" ,maven-settings-builder) + ("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-utils" ,java-plexus-utils) + ("java-commons-lang3" ,java-commons-lang3) + ("java-guava" ,java-guava) + ("java-guice" ,java-guice) + ("maven-resolver-api" ,maven-resolver-api) + ("maven-resolver-spi" ,maven-resolver-spi) + ("maven-resolver-util" ,maven-resolver-util) + ("maven-resolver-impl" ,maven-resolver-impl) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-javax-inject" ,java-javax-inject) + ("java-plexus-classworld" ,java-plexus-classworlds))) + (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-modello-plugins-java" ,java-modello-plugins-java) + ("java-modello-plugins-xml" ,java-modello-plugins-xml) + ("java-modello-plugins-xpp3" ,java-modello-plugins-xpp3) + ;; tests + ("java-junit" ,java-junit) + ("java-mockito-1" ,java-mockito-1) + ("java-commons-jxpath" ,java-commons-jxpath))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains the maven core classes managing the whole build +process."))) -- cgit v1.2.3 From a59d5f3542cc2c0b327f6c2bb84ba8a82be04c57 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:31:01 +0100 Subject: gnu: Add maven-plugin-annotations. * gnu/packages/maven.scm (maven-plugin-annotations): New variable. --- gnu/packages/maven.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 59cee90785..09fab71108 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -230,6 +230,30 @@ (define-public maven-shared-utils replacement with improvements.") (license license:asl2.0))) +(define-public maven-plugin-annotations + (package + (name "maven-plugin-annotations") + (version "3.5") + (source (origin + (method url-fetch) + (uri (string-append "https://archive.apache.org/dist/maven/" + "plugin-tools/maven-plugin-tools-" version + "-source-release.zip")) + (sha256 (base32 "1ryqhs62j5pas93brhf5dsnvp99hxbvssf681yj5rk3r9h24hqm2")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "maven-plugin-annotations.jar" + #:source-dir "maven-plugin-annotations/src/main/java" + #:tests? #f)) + (inputs + `(("maven-artifact" ,maven-artifact))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "https://maven.apache.org/plugin-tools/maven-plugin-annotations/") + (synopsis "Java 5 annotations to use in Mojos") + (description "This package contains Java 5 annotations for use in Mojos.") + (license license:asl2.0))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From 9f25cba65af3f71b429fe3e2ddba5becc07a66f1 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:33:01 +0100 Subject: gnu: Add java-plexus-component-metadata. * gnu/packages/maven.scm (java-plexus-component-metadata): New variable. --- gnu/packages/maven.scm | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 09fab71108..8b69f16314 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -24,7 +24,53 @@ (define-module (gnu packages maven) #:use-module (guix build-system ant) #:use-module (gnu packages) #:use-module (gnu packages compression) - #:use-module (gnu packages java)) + #:use-module (gnu packages java) + #:use-module (gnu packages xml)) + +(define-public java-plexus-component-metadata + (package + (inherit java-plexus-container-default) + (name "java-plexus-component-metadata") + (arguments + `(#:jar-name "plexus-component-metadata.jar" + #:source-dir "src/main/java" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "plexus-component-metadata") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" + "build/classes/") + #t))))) + (inputs + `(("java-plexus-container-default" ,java-plexus-container-default) + ("java-plexu-component-annotations" ,java-plexus-component-annotations) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-cli" ,java-plexus-cli) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("maven-plugin-api" ,maven-plugin-api) + ("maven-plugin-annotations" ,maven-plugin-annotations) + ("maven-core-bootstrap" ,maven-core-bootstrap) + ("maven-model" ,maven-model) + ("java-commons-cli" ,java-commons-cli) + ("java-qdox" ,java-qdox) + ("java-jdom2" ,java-jdom2) + ("java-asm" ,java-asm))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-guava" ,java-guava) + ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect))) + (synopsis "Inversion-of-control container for Maven") + (description "The Plexus project provides a full software stack for creating +and executing software projects. Based on the Plexus container, the +applications can utilise component-oriented programming to build modular, +reusable components that can easily be assembled and reused. This package +provides the Maven plugin generating the component metadata."))) (define-public maven-resolver-api (package -- cgit v1.2.3 From b822544cfeb450e8fd4ead86fd0a7451db9ac859 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:34:46 +0100 Subject: gnu: Add maven-core. * gnu/packages/maven.scm (maven-core): New variable. --- gnu/packages/maven.scm | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 8b69f16314..aa6c196a2b 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -767,3 +767,75 @@ (define (modello-single-mode file version mode) (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))))) -- cgit v1.2.3 From e2c7d32995aa204f68e9c00f06e7885f425a1379 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:36:16 +0100 Subject: gnu: Add maven-embedder. * gnu/packages/maven.scm (maven-embedder): New variable. --- gnu/packages/maven.scm | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index aa6c196a2b..8ee44dd8d6 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -839,3 +839,96 @@ (define (components file) ("java-qdox" ,java-qdox) ("maven-core-boot" ,maven-core-bootstrap) ,@(package-native-inputs maven-core-bootstrap))))) + +(define-public maven-embedder + (package + (inherit maven-artifact) + (name "maven-embedder") + (arguments + `(#:jar-name "maven-embedder.jar" + #:source-dir "maven-embedder/src/main/java" + #:test-dir "maven-embedder/src/test" + #:test-exclude (list "**/MavenCliTest.java") + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-sisu-named + (lambda _ + (mkdir-p "build/classes/META-INF/sisu") + (chmod "sisu.sh" #o755) + (invoke "./sisu.sh" "maven-embedder/src/main/java" + "build/classes/META-INF/sisu/javax.inject.Named") + #t)) + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "maven-embedder/src/main/java" version + "false" "true")) + (let ((file "maven-embedder/src/main/mdo/core-extensions.mdo")) + (modello-single-mode file "1.0.0" "java") + (modello-single-mode file "1.0.0" "xpp3-reader") + (modello-single-mode file "1.0.0" "xpp3-writer")) + #t)) + (add-before 'check 'fix-test-paths + (lambda _ + (substitute* "maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java" + (("target/test-classes") "build/test-classes")) + #t)) + (add-before 'check 'fix-test-compilation + (lambda _ + ;; Tests are in the java/ subdir. Other subdirectories contain + ;; additional test plugins, with duplicate classes, so we can't + ;; compile them. Also, they are meant to be built with maven, to + ;; test its build process. + (substitute* "build.xml" + (("srcdir=\"maven-embedder/src/test\"") + "srcdir=\"maven-embedder/src/test/java\"")) + #t))))) + (inputs + `(("maven-core" ,maven-core) + ("maven-artifact" ,maven-artifact) + ("maven-plugin-api" ,maven-plugin-api) + ("maven-builder-support" ,maven-builder-support) + ("maven-model" ,maven-model) + ("maven-model-builder" ,maven-model-builder) + ("maven-settings" ,maven-settings) + ("maven-settings-builder" ,maven-settings-builder) + ("maven-shared-utils" ,maven-shared-utils) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-plexus-util" ,java-plexus-utils) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-cipher" ,java-plexus-cipher) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) + ("maven-resolevr-util" ,maven-resolver-util) + ("maven-resolevr-api" ,maven-resolver-api) + ("java-logback-core" ,java-logback-core) + ("java-logback-classic" ,java-logback-classic) + ("java-commons-cli" ,java-commons-cli) + ("java-commons-io" ,java-commons-io) + ("java-commons-lang3" ,java-commons-lang3) + ("java-guava" ,java-guava) + ("java-guice" ,java-guice) + ("java-javax-inject" ,java-javax-inject) + ("java-slf4j-api" ,java-slf4j-api) + ("java-slf4j-simple" ,java-slf4j-simple))) + (native-inputs + `(("java-modello-core" ,java-modello-core) + ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) + ("java-sisu-build-api" ,java-sisu-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) + ;; tests + ("java-junit" ,java-junit) + ("java-objenesis" ,java-objenesis) + ("java-mockito-1" ,java-mockito-1) + ("java-hamcrest-core" ,java-hamcrest-core))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains a Maven embeddable component, with CLI and +logging support."))) -- cgit v1.2.3 From ff7a0fcff34b3ba686342f31c5b45b5782470562 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:38:46 +0100 Subject: gnu: Add maven-wagon-provider-api. * gnu/packages/maven.scm (maven-wagon-provider-api): New variable. --- gnu/packages/maven.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 8ee44dd8d6..a5cda7e000 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -300,6 +300,32 @@ (define-public maven-plugin-annotations (description "This package contains Java 5 annotations for use in Mojos.") (license license:asl2.0))) +(define-public maven-wagon-provider-api + (package + (name "maven-wagon-provider-api") + (version "3.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://archive.apache.org/dist/maven/wagon/" + "wagon-" version "-source-release.zip")) + (sha256 (base32 "1qb0q4m7vmf290xp3fnfdi3pwl3hkskia5g3z2v82q1ch3y2knqv")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "maven-wagon-provider-api.jar" + #:source-dir "wagon-provider-api/src/main/java" + #:test-dir "wagon-provider-api/src/test")) + (inputs + `(("java-plexus-utils" ,java-plexus-utils))) + (native-inputs + `(("unzip" ,unzip) + ("java-junit" ,java-junit) + ("java-easymock" ,java-easymock))) + (home-page "https://maven.apache.org/wagon") + (synopsis "Transport abstraction for Maven") + (description "Maven Wagon is a transport abstraction that is used in Maven's +artifact and repository handling code.") + (license license:asl2.0))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From f216a9f99a57905d7beed9595cfb2124a6cf27e4 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:40:18 +0100 Subject: gnu: Add maven-wagon-provider-test. * gnu/packages/maven.scm (maven-wagon-provider-test): New variable. --- gnu/packages/maven.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index a5cda7e000..e282a9a8c2 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -25,6 +25,7 @@ (define-module (gnu packages maven) #:use-module (gnu packages) #:use-module (gnu packages compression) #:use-module (gnu packages java) + #:use-module (gnu packages web) #:use-module (gnu packages xml)) (define-public java-plexus-component-metadata @@ -326,6 +327,30 @@ (define-public maven-wagon-provider-api artifact and repository handling code.") (license license:asl2.0))) +(define-public maven-wagon-provider-test + (package + (inherit maven-wagon-provider-api) + (name "maven-wagon-provider-test") + (arguments + `(#:jar-name "maven-wagon-provider-test.jar" + #:source-dir "wagon-provider-test/src/main/java" + #:tests? #f; no tests + #:jdk ,icedtea-8)) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-container-default" ,java-plexus-container-default) + ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) + ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) + ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) + ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) + ("java-slf4j-api" ,java-slf4j-api) + ("java-tomcat" ,java-tomcat) + ("maven-wagon-provider-api" ,maven-wagon-provider-api))) + (synopsis "Test classes from maven-wagon") + (description "Maven Wagon is a transport abstraction that is used in Maven's +artifact and repository handling code. This package contains common test +classes used in multiple maven-wagon components."))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From 0d1b3b39bcb6672ee056e1f0c671992f398260ca Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:41:06 +0100 Subject: gnu: Add maven-wagon-file. * gnu/packages/maven.scm (maven-wagon-file): New variable. --- gnu/packages/maven.scm | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index e282a9a8c2..2ee8dc0e30 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -351,6 +351,71 @@ (define-public maven-wagon-provider-test artifact and repository handling code. This package contains common test classes used in multiple maven-wagon components."))) +(define-public maven-wagon-file + (package + (inherit maven-wagon-provider-api) + (name "maven-wagon-file") + (arguments + `(#:jar-name "maven-wagon-file.jar" + #:source-dir "wagon-providers/wagon-file/src/main/java" + #:test-dir "wagon-providers/wagon-file/src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'check 'fix-paths + (lambda _ + ;; Tests assume they are run by maven, which copies test resources + ;; to target. Our ant-build-system does the same, but with the + ;; build directory. + (substitute* "wagon-providers/wagon-file/src/test/java/org/apache/maven/wagon/providers/file/FileWagonTest.java" + (("target") "build")) + #t)) + (add-after 'build 'generate-metadata + (lambda _ + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" + "--source" "wagon-providers/wagon-file/src/main/java" + "--output" "build/classes/META-INF/plexus/components.xml" + "--classes" "build/classes" + "--descriptors" "build/classes/META-INF") + #t)) + (add-after 'generate-metadata 'rebuild + (lambda _ + (invoke "ant" "jar") + #t))))) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("maven-wagon-provider-api" ,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-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-guava" ,java-guava) + ("java-guice" ,java-guice) + ("java-javax-inject" ,java-javax-inject) + ("java-cglib" ,java-cglib) + ("java-slf4j-api" ,java-slf4j-api) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-cli" ,java-plexus-cli) + ("maven-plugin-api" ,maven-plugin-api) + ("maven-plugin-annotations" ,maven-plugin-annotations) + ("maven-core" ,maven-core) + ("maven-model" ,maven-model) + ("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") + (description "Maven Wagon is a transport abstraction that is used in Maven's +artifact and repository handling code. It uses providers, that are tools to +manage artifacts and deployment. This package contains the file provider which +gets and puts artifacts using the file system."))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From 53360e488dcfd7d7ef7aac743509b8773fd5b59f Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:42:12 +0100 Subject: gnu: Add maven-wagon-tck-http. * gnu/packages/maven.scm (maven-wagon-tck-http): New variable. --- gnu/packages/maven.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 2ee8dc0e30..005d9b9249 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -416,6 +416,33 @@ (define-public maven-wagon-file manage artifacts and deployment. This package contains the file provider which gets and puts artifacts using the file system."))) +(define-public maven-wagon-tck-http + (package + (inherit maven-wagon-provider-api) + (name "maven-wagon-tck-http") + (arguments + `(#:jar-name "maven-wagon-tck-http.jar" + #:source-dir "wagon-tcks/wagon-tck-http/src/main/java" + #:tests? #f; no tests + #:jdk ,icedtea-8)) + (inputs + `(("java-plexus-util" ,java-plexus-utils) + ("maven-wagon-provider-api" ,maven-wagon-provider-api) + ("java-tomcat" ,java-tomcat) + ("java-slf4j-api" ,java-slf4j-api) + ("java-commons-codec" ,java-commons-codec) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) + ("java-eclipse-jetty-webapp-9.2" ,java-eclipse-jetty-webapp-9.2) + ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) + ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) + ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2))) + (synopsis "Wagon HTTP Test Compatibility Kit") + (description "Maven Wagon is a transport abstraction that is used in Maven's +artifact and repository handling code. This package contains the HTTP +Test Compatibility Kit."))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From c3f5ec6ec7a3495c4ce4c2f713698c8ce7882967 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:43:50 +0100 Subject: gnu: Add maven-wagon-http-shared. * gnu/packages/maven.scm (maven-wagon-http-shared): New variable. --- gnu/packages/maven.scm | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 005d9b9249..2b7c15aba2 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -443,6 +443,67 @@ (define-public maven-wagon-tck-http artifact and repository handling code. This package contains the HTTP Test Compatibility Kit."))) +(define-public maven-wagon-http-shared + (package + (inherit maven-wagon-provider-api) + (name "maven-wagon-http-shared") + (arguments + `(#:jar-name "maven-wagon-http-shared.jar" + #:source-dir "wagon-providers/wagon-http-shared/src/main/java" + #:test-dir "wagon-providers/wagon-http-shared/src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-after 'build 'generate-metadata + (lambda _ + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" + "--source" "wagon-providers/wagon-http-shared/src/main/java" + "--output" "build/classes/META-INF/plexus/components.xml" + "--classes" "build/classes" + "--descriptors" "build/classes/META-INF") + #t)) + (add-after 'generate-metadata 'rebuild + (lambda _ + (invoke "ant" "jar") + #t))))) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient) + ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("java-commons-io" ,java-commons-io) + ("java-jsoup" ,java-jsoup) + ("maven-wagon-provider-api" ,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-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-guava" ,java-guava) + ("java-guice" ,java-guice) + ("java-javax-inject" ,java-javax-inject) + ("java-cglib" ,java-cglib) + ("java-slf4j-api" ,java-slf4j-api) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-cli" ,java-plexus-cli) + ("maven-plugin-api" ,maven-plugin-api) + ("maven-plugin-annotations" ,maven-plugin-annotations) + ("maven-core" ,maven-core) + ("maven-model" ,maven-model) + ("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.") + (description "Maven Wagon is a transport abstraction that is used in Maven's +artifact and repository handling code. It uses providers, that are tools to +manage artifacts and deployment. This package contains a shared library for +wagon providers supporting HTTP."))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From aa06dd0f7d0dedd68b26eaadccef30a916bd7dc8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:45:06 +0100 Subject: gnu: Add maven-wagon-http. * gnu/packages/maven.scm (maven-wagon-http): New variable. --- gnu/packages/maven.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 2b7c15aba2..85591ce4ad 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -504,6 +504,90 @@ (define-public maven-wagon-http-shared manage artifacts and deployment. This package contains a shared library for wagon providers supporting HTTP."))) +(define-public maven-wagon-http + (package + (inherit maven-wagon-provider-api) + (name "maven-wagon-http") + (arguments + `(#:jar-name "maven-wagon-http.jar" + #:source-dir "wagon-providers/wagon-http/src/main/java" + #:test-dir "wagon-providers/wagon-http/src/test" + #:test-exclude (list + "**/Abstract*.java" + ;; FIXME: javax.net.ssl.SSLHandshakeException: + ;; sun.security.validator.ValidatorException: + ;; PKIX path building failed: + ;; sun.security.provider.certpath.SunCertPathBuilderException: + ;; unable to find valid certification path to requested target + "**/HttpsWagonPreemptiveTest.java" + "**/HttpsWagonTest.java" + ;; Injection errors + "**/TckTest.java") + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-resources + (lambda _ + (install-file "wagon-providers/wagon-http/src/main/resources/META-INF/plexus/components.xml" + "build/classes/META-INF/plexus") + #t)) + (add-before 'check 'fix-resource-path + (lambda _ + (substitute* '("wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java" + "wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonTest.java") + (("src/test") "wagon-providers/wagon-http/src/test")) + #t))))) + (inputs + `(("java-plexus-utils" ,java-plexus-utils) + ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient) + ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("maven-wagon-http-shared" ,maven-wagon-http-shared) + ("maven-wagon-tck-http" ,maven-wagon-tck-http) + ("maven-wagon-provider-api" ,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-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-plexus-container-default" ,java-plexus-container-default) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-guava" ,java-guava) + ("java-guice" ,java-guice) + ("java-inject" ,java-javax-inject) + ("java-cglib" ,java-cglib) + ("java-slf4j-api" ,java-slf4j-api) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-cli" ,java-plexus-cli) + ("maven-plugin-api" ,maven-plugin-api) + ("maven-plugin-annotations" ,maven-plugin-annotations) + ("maven-core" ,maven-core) + ("maven-model" ,maven-model) + ("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-tomcat" ,java-tomcat) + ("java-eclipse-jetty-util-9.2" ,java-eclipse-jetty-util-9.2) + ("java-eclipse-jetty-io-9.2" ,java-eclipse-jetty-io-9.2) + ("java-eclipse-jetty-http-9.2" ,java-eclipse-jetty-http-9.2) + ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) + ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) + ("java-eclipse-jetty-security-9.2" ,java-eclipse-jetty-security-9.2) + ("java-hamcrest-core" ,java-hamcrest-core) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ("java-commons-codec" ,java-commons-codec) + ("java-commons-io" ,java-commons-io) + ("java-jsoup" ,java-jsoup) + ("java-slf4j-simple" ,java-slf4j-simple) + ,@(package-native-inputs maven-wagon-provider-api))) + (synopsis "Wagon provider that gets and puts artifacts through HTTP(S)") + (description "Maven Wagon is a transport abstraction that is used in Maven's +artifact and repository handling code. It uses providers, that are tools to +manage artifacts and deployment. This package contains a Wagon provider that +gets and puts artifacts through HTTP(S) using Apache HttpClient-4.x."))) + (define-public maven-artifact (package (name "maven-artifact") -- cgit v1.2.3 From 19126bba4e54211c2bf61f67c98cd08e5f455409 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:47:17 +0100 Subject: gnu: Add maven-resolver-transport-wagon. * gnu/packages/maven.scm (maven-resolver-transport-wagon): New variable. --- gnu/packages/maven.scm | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 85591ce4ad..9a152c3194 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -237,6 +237,89 @@ (define-public maven-resolver-impl ("java-hamcrest-core" ,java-hamcrest-core) ("maven-resolver-test-util" ,maven-resolver-test-util))))) +(define-public maven-resolver-transport-wagon + (package + (inherit maven-resolver-api) + (name "maven-resolver-transport-wagon") + (arguments + `(#:jar-name "maven-resolver-transport-wagon.jar" + #:source-dir "maven-resolver-transport-wagon/src/main/java" + #:test-dir "maven-resolver-transport-wagon/src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'build 'generate-sisu + (lambda _ + (mkdir-p "build/classes/META-INF/sisu") + (with-output-to-file "build/classes/META-INF/sisu/javax.inject.Named" + (lambda _ + (display "org.eclipse.aether.transport.wagon.WagonTransporterFactory\n"))) + #t)) + (add-before 'build 'generate-components.xml + (lambda _ + (mkdir-p "build/classes/META-INF/plexus") + (with-output-to-file "build/classes/META-INF/plexus/components.xml" + (lambda _ + (display + (string-append + "<?xml version=\"1.0\" encoding=\"UTF-8\"?> +<component-set> + <components> + <component> + <role>org.eclipse.aether.transport.wagon.WagonConfigurator</role> + <role-hint>plexus</role-hint> + <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonConfigurator</implementation> + <description /> + <isolated-realm>false</isolated-realm> + <requirements> + <requirement> + <role>org.codehaus.plexus.PlexusContainer</role> + <role-hint /> + <field-name>container</field-name> + </requirement> + </requirements> + </component> + <component> + <role>org.eclipse.aether.transport.wagon.WagonProvider</role> + <role-hint>plexus</role-hint> + <implementation>org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider</implementation> + <description /> + <isolated-realm>false</isolated-realm> + <requirements> + <requirement> + <role>org.codehaus.plexus.PlexusContainer</role> + <role-hint /> + <field-name>container</field-name> + </requirement> + </requirements> + </component> + </components> +</component-set>\n")))) + #t))))) + (inputs + `(("maven-resolver-api" ,maven-resolver-api) + ("maven-resolver-spi" ,maven-resolver-spi) + ("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-classworld" ,java-plexus-classworlds) + ("java-plexus-plexus-util" ,java-plexus-utils) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("maven-resolver-test-util" ,maven-resolver-test-util) + ("java-guava" ,java-guava) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-aopalliance" ,java-aopalliance) + ("java-guice" ,java-guice))) + (synopsis "Transport implementation for Maven") + (description "This package contains a transport implementation based on +Maven Wagon, for use in Maven."))) + (define-public maven-shared-utils (package (name "maven-shared-utils") -- cgit v1.2.3 From 0c1e98eb92470b4ec595a4f15d62786dedf5d1e6 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:48:27 +0100 Subject: gnu: Add maven-compat. * gnu/packages/maven.scm (maven-compat): New variable. --- gnu/packages/maven.scm | 117 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 9a152c3194..2e920f9b44 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -1303,3 +1303,120 @@ (define (modello-single-mode file version mode) (description "Apache Maven is a software project management and comprehension tool. This package contains a Maven embeddable component, with CLI and logging support."))) + +(define-public maven-compat + (package + (inherit maven-artifact) + (name "maven-compat") + (arguments + `(#:jar-name "maven-compat.jar" + #:source-dir "src/main/java" + #:jdk ,icedtea-8 + #:test-dir "src/test" + #:phases + (modify-phases %standard-phases + ;; Tests assume we're in this directory + (add-before 'configure 'chdir + (lambda _ + (chdir "maven-compat") + #t)) + (add-before 'build 'generate-models + (lambda* (#:key inputs #:allow-other-keys) + (define (modello-single-mode file version mode) + (invoke "java" "org.codehaus.modello.ModelloCli" + file mode "src/main/java" version + "false" "true")) + (let ((file "src/main/mdo/profiles.mdo")) + (modello-single-mode file "1.0.0" "java") + (modello-single-mode file "1.0.0" "xpp3-reader") + (modello-single-mode file "1.0.0" "xpp3-writer")) + (let ((file "src/main/mdo/paramdoc.mdo")) + (modello-single-mode file "1.0.0" "java") + (modello-single-mode file "1.0.0" "xpp3-reader") + (modello-single-mode file "1.0.0" "xpp3-writer")) + #t)) + (add-after 'build 'generate-metadata + (lambda _ + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" + "--source" "src/main/java" + "--output" "build/classes/META-INF/plexus/components.xml" + "--classes" "build/classes" + "--descriptors" "build/classes/META-INF") + #t)) + (add-before 'check 'build-tests + (lambda _ + (invoke "ant" "compile-tests") + #t)) + (add-after 'build-tests 'generate-test-metadata + (lambda _ + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":build/classes" + ":build/test-classes") + "org.codehaus.plexus.metadata.PlexusMetadataGeneratorCli" + "--source" "src/test/java" + "--output" "build/test-classes/META-INF/plexus/components.xml" + "--classes" "build/test-classes" + "--descriptors" "build/test-classes/META-INF") + #t)) + (add-after 'generate-metadata 'rebuild + (lambda _ + (invoke "ant" "jar") + #t))))) + (inputs + `(("maven-artifact" ,maven-artifact) + ("maven-repository-metadata" ,maven-repository-metadata) + ("maven-builder-support" ,maven-builder-support) + ("maven-model" ,maven-model) + ("maven-model-builder" ,maven-model-builder) + ("maven-settings" ,maven-settings) + ("maven-settings-builder" ,maven-settings-builder) + ("maven-core" ,maven-core) + ("maven-wagon-provider-api" ,maven-wagon-provider-api) + ("maven-wagon-file" ,maven-wagon-file) + ("maven-resolver-api" ,maven-resolver-api) + ("maven-resolver-util" ,maven-resolver-util) + ("maven-resolver-spi" ,maven-resolver-spi) + ("java-plexus-interpolation" ,java-plexus-interpolation))) + (native-inputs + `(("java-modello-core" ,java-modello-core) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-plexus-classworlds" ,java-plexus-classworlds) + ("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect) + ("java-sisu-build-api" ,java-sisu-build-api) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-exclispe-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-guice" ,java-guice) + ("java-guava" ,java-guava) + ("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) + ;; metadata + ("java-plexus-component-metadata" ,java-plexus-component-metadata) + ("java-commons-cli" ,java-commons-cli) + ("java-plexus-cli" ,java-plexus-cli) + ("java-jdom2" ,java-jdom2) + ("maven-plugin-api" ,maven-plugin-api) + ("java-qdox" ,java-qdox) + ;; tests + ("java-plexus-cipher" ,java-plexus-cipher) + ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) + ("java-jsr250", java-jsr250) + ("java-cdi-api" ,java-cdi-api) + ("java-junit" ,java-junit) + ("maven-resolver-impl" ,maven-resolver-impl) + ("maven-resolver-connector-basic" ,maven-resolver-connector-basic) + ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon) + ("java-commons-lang3" ,java-commons-lang3) + ("java-aop" ,java-aopalliance) + ("maven-resolver-provider" ,maven-resolver-provider) + ("java-slf4j-api" ,java-slf4j-api) + ("java-slf4j-simple" ,java-slf4j-simple) + ,@(package-inputs java-slf4j-api))) + (description "Apache Maven is a software project management and comprehension +tool. This package contains Maven2 classes maintained as compatibility +layer for plugins that need to keep Maven2 compatibility."))) -- cgit v1.2.3 From 8c2c105c12e7cc21bc6f27592550bb7132884955 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 17 Mar 2018 16:49:27 +0100 Subject: gnu: Add maven. * gnu/packages/maven.scm (maven): New variable. --- gnu/packages/maven.scm | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 2e920f9b44..070bd7131c 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -1420,3 +1420,91 @@ (define (modello-single-mode file version mode) (description "Apache Maven is a software project management and comprehension tool. This package contains Maven2 classes maintained as compatibility layer for plugins that need to keep Maven2 compatibility."))) + +(define-public maven + (package + (inherit maven-artifact) + (name "maven") + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (substitute* "apache-maven/src/bin/mvn" + (("cygwin=false;") + (string-append + "CLASSPATH=" (getenv "CLASSPATH") "\n" + "cygwin=false;")) + (("-classpath.*") "-classpath ${CLASSPATH} \\\n")) + #t)) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin/")) + (conf (string-append (assoc-ref outputs "out") "/conf/"))) + (mkdir-p (string-append (assoc-ref outputs "out") "/lib")) + (for-each (lambda (file) + (install-file (string-append "apache-maven/src/bin/" file) + bin) + (chmod (string-append bin file) #o755)) + '("mvn" "mvnDebug" "mvnyjp")) + (install-file "apache-maven/src/bin/m2.conf" bin) + (copy-recursively "apache-maven/src/conf" conf)) + #t))))) + (inputs + `(("java-plexus-classworlds" ,java-plexus-classworlds) + ("maven-artifact" ,maven-artifact) + ("maven-embedder" ,maven-embedder) + ("maven-core" ,maven-core) + ("maven-compat" ,maven-compat) + ("maven-builder-support" ,maven-builder-support) + ("maven-model" ,maven-model) + ("maven-model-builder" ,maven-model-builder) + ("maven-settings" ,maven-settings) + ("maven-settings-builder" ,maven-settings-builder) + ("maven-plugin-api" ,maven-plugin-api) + ("maven-repository-metadata", maven-repository-metadata) + ("maven-shared-utils" ,maven-shared-utils) + ("maven-resolver-api" ,maven-resolver-api) + ("maven-resolver-spi" ,maven-resolver-spi) + ("maven-resolver-util" ,maven-resolver-util) + ("maven-resolver-impl" ,maven-resolver-impl) + ("maven-resolver-connector-basic" ,maven-resolver-connector-basic) + ("maven-resolver-provider" ,maven-resolver-provider) + ("maven-resolver-transport-wagon" ,maven-resolver-transport-wagon) + ("maven-wagon-provider-api" ,maven-wagon-provider-api) + ("maven-wagon-file" ,maven-wagon-file) + ("maven-wagon-http" ,maven-wagon-http) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ("java-httpcomponents-httpclient" ,java-httpcomponents-httpclient) + ("java-httpcomponents-httpcore" ,java-httpcomponents-httpcore) + ("maven-wagon-http-shared" ,maven-wagon-http-shared) + ("maven-wagon-tck-http" ,maven-wagon-tck-http) + ("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus) + ("java-guice" ,java-guice) + ("java-aopalliance" ,java-aopalliance) + ("java-cglib" ,java-cglib) + ("java-asm" ,java-asm) + ("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject) + ("java-javax-inject" ,java-javax-inject) + ("java-plexus-component-annotations" ,java-plexus-component-annotations) + ("java-plexus-utils" ,java-plexus-utils) + ("java-plexus-interpolation" ,java-plexus-interpolation) + ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) + ("java-plexus-cipher" ,java-plexus-cipher) + ("java-guava" ,java-guava) + ("java-jansi" ,java-jansi) + ("java-jsr250" ,java-jsr250) + ("java-cdi-api" ,java-cdi-api) + ("java-commons-cli" ,java-commons-cli) + ("java-commons-io" ,java-commons-io) + ("java-commons-lang3" ,java-commons-lang3) + ("java-slf4j-api" ,java-slf4j-api) + ;; TODO: replace with maven-slf4j-provider + ("java-slf4j-simple" ,java-slf4j-simple))) + (description "Apache Maven is a software project management and comprehension +tool. Based on the concept of a project object model: builds, dependency +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."))) -- cgit v1.2.3 From de99ba7e7c0ba782451f1ccf60135adfce058ad5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice <me@tobias.gr> Date: Wed, 20 Jun 2018 01:03:47 +0200 Subject: Fix some more lonely unquotes. * gnu/packages/gnome.scm (workrave)[inputs]: Move unquote to its operand. * gnu/packages/java.scm (java-asm-bootstrap)[propagated-inputs]: Likewise. * gnu/packages/maven.scm (maven-compat)[native-inputs]: Likewise. (maven)[inputs]: Likewise. * gnu/packages/networking.scm (amule)[inputs]: Likewise. * gnu/packages/wm.scm (nitrogen)[native-inputs]: Likewise. --- gnu/packages/gnome.scm | 2 +- gnu/packages/java.scm | 2 +- gnu/packages/maven.scm | 4 ++-- gnu/packages/networking.scm | 2 +- gnu/packages/wm.scm | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b5d8170ae2..a21adf4f56 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -7287,7 +7287,7 @@ (define-public workrave ("libxtst" ,libxtst) ("dconf" ,dconf) ("libice" ,libice))) - (inputs `(("libsm", libsm) + (inputs `(("libsm" ,libsm) ("python-cheetah" ,python2-cheetah))) (native-inputs `(("glib" ,glib "bin") ("pkg-config" ,pkg-config) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b4b1eedd2e..30a9b77380 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3583,7 +3583,7 @@ (define java-asm-bootstrap `(("java-aqute-bndlib" ,java-aqute-bndlib-bootstrap) ("java-aqute-libg" ,java-aqute-libg-bootstrap) ,@(delete `("java-aqute-bndlib" ,java-aqute-bndlib) - (delete `("java-aqute-libg", java-aqute-libg) + (delete `("java-aqute-libg" ,java-aqute-libg) (package-inputs java-asm))))))) (define-public java-cglib diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 070bd7131c..0feb01f040 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -1405,7 +1405,7 @@ (define (modello-single-mode file version mode) ;; tests ("java-plexus-cipher" ,java-plexus-cipher) ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher) - ("java-jsr250", java-jsr250) + ("java-jsr250" ,java-jsr250) ("java-cdi-api" ,java-cdi-api) ("java-junit" ,java-junit) ("maven-resolver-impl" ,maven-resolver-impl) @@ -1463,7 +1463,7 @@ (define-public maven ("maven-settings" ,maven-settings) ("maven-settings-builder" ,maven-settings-builder) ("maven-plugin-api" ,maven-plugin-api) - ("maven-repository-metadata", maven-repository-metadata) + ("maven-repository-metadata" ,maven-repository-metadata) ("maven-shared-utils" ,maven-shared-utils) ("maven-resolver-api" ,maven-resolver-api) ("maven-resolver-spi" ,maven-resolver-spi) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 5cdfec3431..b72a4734d7 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1776,7 +1776,7 @@ (define-public amule `(("zlib" ,zlib) ("crypto++" ,crypto++) ("libpng" ,libpng) - ("wxwidgets-gtk2", wxwidgets-gtk2))) + ("wxwidgets-gtk2" ,wxwidgets-gtk2))) (home-page "http://amule.org/") (synopsis "Peer-to-peer client for the eD2K and Kademlia networks") (description diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 2a09521601..a076cbbb1d 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -991,7 +991,7 @@ (define-public nitrogen ("glib" ,glib) ("glibmm" ,glibmm))) (native-inputs - `(("pkg-config", pkg-config))) + `(("pkg-config" ,pkg-config))) (arguments `(#:configure-flags (list (string-append "--prefix=" %output) -- cgit v1.2.3 From 7504f3c3d3a2fbd0f901757a9bd3175e424c11ca Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 23 Jun 2018 11:48:18 +0200 Subject: gnu: maven: Propagate mvn script requirements. * gnu/packages/maven.scm (maven)[propagated-inputs]: Add coreutils and which. --- gnu/packages/maven.scm | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 0feb01f040..3b24fd7e80 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -23,6 +23,7 @@ (define-module (gnu packages maven) #:use-module (guix utils) #:use-module (guix build-system ant) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages java) #:use-module (gnu packages web) @@ -1502,6 +1503,9 @@ (define-public maven ("java-slf4j-api" ,java-slf4j-api) ;; TODO: replace with maven-slf4j-provider ("java-slf4j-simple" ,java-slf4j-simple))) + (propagated-inputs + `(("coreutils" ,coreutils) + ("which" ,which))) (description "Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model: builds, dependency management, documentation creation, site publication, and distribution -- cgit v1.2.3 From e27c43d94e23daf6b114b03688a51c924890a286 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Sat, 23 Jun 2018 12:16:55 +0200 Subject: gnu: maven-core: Fill properties. * gnu/packages/maven.scm (maven-core-bootstrap)[arguments]: Add a fill-properties phase. --- gnu/packages/maven.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'gnu/packages/maven.scm') diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm index 3b24fd7e80..f63fcee6b2 100644 --- a/gnu/packages/maven.scm +++ b/gnu/packages/maven.scm @@ -1080,6 +1080,18 @@ (define maven-core-bootstrap (mkdir-p "build/classes/") (copy-recursively "src/main/resources" "build/classes") #t)) + (add-after 'copy-resources 'fill-properties + (lambda _ + ;; This file controls the output of some mvn subcommands, such as + ;; mvn -version. + (substitute* "build/classes/org/apache/maven/messages/build.properties" + (("\\$\\{buildNumber\\}") "guix_build") + (("\\$\\{timestamp\\}") "0") + (("\\$\\{project.version\\}") ,(package-version maven-artifact)) + (("\\$\\{distributionId\\}") "apache-maven") + (("\\$\\{distributionShortName\\}") "Maven") + (("\\$\\{distributionName\\}") "Apache Maven")) + #t)) (add-before 'build 'generate-sisu-named (lambda _ (mkdir-p "build/classes/META-INF/sisu") -- cgit v1.2.3