;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2018-2021 Julien Lepiller <julien@lepiller.eu>
+;;; Copyright © 2018-2022 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system ant)
+ #:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
(define-public maven-resolver-api
(package
(name "maven-resolver-api")
- (version "1.3.1")
+ (version "1.6.3")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1x1gll8nkfl6zgnab78fxxvvhg42b2grxgdh1wp2h4qxsjkxg93d"))))
+ "0hbbbxj14qyq8pccyab96pjqq90jnjmid1pml9kx55c5smfpjn37"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "maven-resolver-api.jar"
(replace 'install
(install-from-pom "maven-resolver-api/pom.xml")))))
(native-inputs
- `(("java-asm" ,java-asm)
+ `(("java-asm-8" ,java-asm-8)
("java-cglib" ,java-cglib)
("java-hamcrest-core" ,java-hamcrest-core)
("java-junit" ,java-junit)
(list maven-resolver-api
maven-resolver-spi
maven-resolver-util
+ java-commons-lang3
java-eclipse-sisu-inject
java-javax-inject
java-guice
maven-resolver-test-util
java-guava
java-cglib
- java-asm
java-aopalliance
java-guice))
(synopsis "Transport implementation for Maven")
("java-plexus-cli" ,java-plexus-cli)
("maven-plugin-api" ,maven-plugin-api)
("maven-plugin-annotations" ,maven-plugin-annotations)
+ ("maven-slf4j-provider" ,maven-slf4j-provider)
("maven-core" ,maven-core)
("maven-model" ,maven-model)
("java-commons-cli" ,java-commons-cli)
("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
(define maven-pom
(package
(name "maven-pom")
- (version "3.6.1")
+ (version "3.8.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/maven/"
"maven-3/" version "/source/"
"apache-maven-" version "-src.tar.gz"))
- (sha256 (base32 "0grw9zp166ci53rd7qkyy2qmwmik37xhiz1z84jpm0msyvzj2n82"))
+ (sha256 (base32 "0jszmcaxp597a62ajrc478jxix1qmw4pknhiygsbjdy3kccc7gvj"))
(modules '((guix build utils)))
(snippet
'(begin
(replace 'install
(install-pom-file "pom.xml")))))
(propagated-inputs
- `(("maven-parent-pom-33" ,maven-parent-pom-33)))
+ (list maven-parent-pom-35))
(home-page "https://maven.apache.org/")
(synopsis "Build system")
(description "Apache Maven is a software project management and comprehension
(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-extended-reader")
(modello-single-mode file "4.0.0" "xpp3-writer")
- (modello-single-mode file "4.0.0" "xpp3-extended-reader"))
+ (modello-single-mode file "4.0.0" "xpp3-extended-writer"))
#t))
(replace 'install (install-from-pom "maven-model/pom.xml")))))
(propagated-inputs
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"))
+ (modello-single-mode file "1.2.0" "java")
+ (modello-single-mode file "1.2.0" "xpp3-reader")
+ (modello-single-mode file "1.2.0" "xpp3-writer"))
#t))
(replace 'install (install-from-pom "maven-settings/pom.xml")))))
(propagated-inputs
java-plexus-component-annotations
java-guice
java-cglib
- java-asm
java-eclipse-sisu-inject
java-javax-inject
java-plexus-classworlds
#:test-dir "maven-settings-builder/src/test"
#:phases
(modify-phases %standard-phases
- (add-before 'build 'generate-components.xml
+ (add-before 'build 'generate-sisu-named
(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))
+ (mkdir-p "build/classes/META-INF/sisu")
+ (chmod "sisu.sh" #o755)
+ (invoke "./sisu.sh" "maven-settings-builder/src/main/java"
+ "build/classes/META-INF/sisu/javax.inject.Named")))
(replace 'install (install-from-pom "maven-settings-builder/pom.xml")))))
(propagated-inputs
(list java-plexus-utils
java-plexus-interpolation
- java-plexus-sec-dispatcher-1.4
+ java-plexus-sec-dispatcher
maven-builder-support
maven-settings
maven-pom))
(native-inputs
- (list java-junit java-plexus-component-annotations))
+ (list java-junit java-javax-inject java-plexus-component-annotations))
(description "Apache Maven is a software project management and comprehension
tool. This package contains the effective model builder, with profile activation,
inheritance, interpolation, @dots{}")))
(name "maven-model-builder")
(arguments
`(#:jar-name "maven-model-builder.jar"
- #:source-dir "maven-model-builder/src/main/java"
+ #:source-dir "src/main/java"
#:jdk ,icedtea-8
- #:test-dir "maven-model-builder/src/test"
+ #:test-dir "src/test"
#:phases
(modify-phases %standard-phases
+ (add-before 'configure 'chdir
+ (lambda _
+ ;; Required for tests that rely on the package's default
+ ;; locations, that reference ${basedir}/src/test.
+ (chdir "maven-model-builder")))
(add-before 'build 'copy-resources
(lambda _
- (copy-recursively "maven-model-builder/src/main/resources"
+ (copy-recursively "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
+ (add-before 'build 'generate-sisu-named
(lambda _
- (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
- (("src/test") "maven-model-builder/src/test"))
- #t))
+ (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")))
(replace 'install
- (install-from-pom "maven-model-builder/pom.xml")))))
+ (install-from-pom "pom.xml")))))
(propagated-inputs
(list java-plexus-interpolation
java-plexus-utils
("java-guava" ,java-guava)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
+ ("java-powermock-reflect" ,java-powermock-reflect)
+ ("java-objenesis" ,java-objenesis)
("guice" ,java-guice)
("java-cglib" ,java-cglib)
- ("java-asm" ,java-asm)
("sisu-inject" ,java-eclipse-sisu-inject)
("javax-inject" ,java-javax-inject)
("java-xmlunit" ,java-xmlunit)
("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
`(("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-plexus-build-api" ,java-plexus-build-api)
("maven-core-boot" ,maven-core-bootstrap)
,@(package-native-inputs maven-core-bootstrap)))))
+(define-public maven-slf4j-provider
+ (package
+ (inherit maven-artifact)
+ (name "maven-slf4j-provider")
+ (arguments
+ `(#:jar-name "maven-slf4j-provider.jar"
+ #:source-dir "maven-slf4j-provider/src/main/java"
+ #:tests? #f ;no tests
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-slf4j
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "generated-sources")
+ (copy-recursively (assoc-ref inputs
+ "java-slf4j-simple-source")
+ "generated-sources")
+ (with-directory-excursion "generated-sources"
+ (for-each delete-file
+ (find-files "." "StaticLoggerBinder.java")))
+ (for-each (lambda (simple)
+ (for-each (lambda (java)
+ (copy-file java
+ (string-append
+ "maven-slf4j-provider/src/main/java/org/slf4j/impl/"
+ (basename java))))
+ (find-files (string-append simple
+ "/src/main/java/")
+ "\\.java$")))
+ (find-files "generated-sources" "slf4j-simple"
+ #:directories? #t))))
+ (replace 'install
+ (install-from-pom "maven-slf4j-provider/pom.xml")))))
+ (inputs `(("java-slf4j-api" ,java-slf4j-api)
+ ("java-slf4j-simple-source" ,(package-source java-slf4j-simple))
+ ("maven-shared-utils" ,maven-shared-utils)))
+ (native-inputs (list unzip))))
+
(define-public maven-embedder
(package
(inherit maven-artifact)
(invoke "./sisu.sh" "maven-embedder/src/main/java"
"build/classes/META-INF/sisu/javax.inject.Named")
#t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/")
+ (copy-recursively "maven-embedder/src/main/resources" "build/classes")))
(add-before 'build 'generate-models
(lambda* (#:key inputs #:allow-other-keys)
(define (modello-single-mode file version mode)
(("srcdir=\"maven-embedder/src/test\"")
"srcdir=\"maven-embedder/src/test/java\""))
#t))
+ (add-before 'check 'disable-failing-test
+ (lambda _
+ (delete-file "maven-embedder/src/test/java/org/apache/maven/cli/event/ExecutionEventLoggerTest.java")))
(add-before 'install 'fix-pom
(lambda _
(substitute* "maven-embedder/pom.xml"
("maven-settings" ,maven-settings)
("maven-settings-builder" ,maven-settings-builder)
("maven-shared-utils" ,maven-shared-utils)
+ ("maven-slf4j-provider" ,maven-slf4j-provider)
("java-plexus-classworlds" ,java-plexus-classworlds)
("java-plexus-util" ,java-plexus-utils)
("java-eclipse-sisu-plexus" ,java-eclipse-sisu-plexus)
("java-guice" ,java-guice)
("java-javax-inject" ,java-javax-inject)
("java-slf4j-api" ,java-slf4j-api)
- ("java-slf4j-simple" ,java-slf4j-simple)
("java-jsr250" ,java-jsr250)))
(native-inputs
- `(("java-modello-core" ,java-modello-core)
+ `(("java-asm-8" ,java-asm-8)
+ ("java-modello-core" ,java-modello-core)
("java-geronimo-xbean-reflect" ,java-geronimo-xbean-reflect)
("java-plexus-build-api" ,java-plexus-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)
(modello-single-mode file "1.0.0" "xpp3-reader")
(modello-single-mode file "1.0.0" "xpp3-writer"))
#t))
+ (add-before 'build 'copy-resources
+ (lambda _
+ (mkdir-p "build/classes/")
+ (copy-recursively "src/main/resources" "build/classes")))
(add-after 'build 'generate-metadata
(lambda _
(invoke "java" "-cp" (string-append (getenv "CLASSPATH") ":build/classes")
"--classes" "build/test-classes"
"--descriptors" "build/test-classes/META-INF")
#t))
+ (add-before 'check 'disable-failing-test
+ (lambda _
+ (delete-file "src/test/java/org/apache/maven/profiles/manager/DefaultProfileManagerTest.java")))
(add-after 'generate-metadata 'rebuild
(lambda _
(invoke "ant" "jar")
("java-qdox" ,java-qdox)
;; tests
("java-plexus-cipher" ,java-plexus-cipher)
- ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher-1.4)
+ ("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher)
("java-jsr250" ,java-jsr250)
("java-cdi-api" ,java-cdi-api)
("java-junit" ,java-junit)
("java-commons-lang3" ,java-commons-lang3)
("java-aop" ,java-aopalliance)
("maven-resolver-provider" ,maven-resolver-provider)
+ ("maven-slf4j-provider" ,maven-slf4j-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
"maven-repository-metadata" "maven-shared-utils" "maven-resolver-api"
"maven-resolver-spi" "maven-resolver-util" "maven-resolver-impl"
"maven-resolver-connector-basic" "maven-resolver-provider"
- "maven-resolver-transport-wagon" "maven-wagon-provider-api"
+ "maven-resolver-transport-wagon" "maven-slf4j-provider"
+ "maven-wagon-provider-api"
"maven-wagon-file" "maven-wagon-http" "java-commons-logging-minimal"
"java-httpcomponents-httpclient" "java-httpcomponents-httpcore"
"maven-wagon-http-shared" "maven-wagon-tck-http"
"java-plexus-utils" "java-plexus-interpolation"
"java-plexus-sec-dispatcher" "java-plexus-cipher" "java-guava"
"java-jansi" "java-jsr250" "java-cdi-api" "java-commons-cli"
- "java-commons-io" "java-commons-lang3" "java-slf4j-api"
- "java-slf4j-simple"))))
+ "java-commons-io" "java-commons-lang3" "java-slf4j-api"))))
(substitute* "apache-maven/src/bin/mvn"
(("cygwin=false;")
(string-append
maven-resolver-connector-basic
maven-resolver-provider
maven-resolver-transport-wagon
+ maven-slf4j-provider
maven-wagon-provider-api
maven-wagon-file
maven-wagon-http
java-guice
java-aopalliance
java-cglib
- java-asm
+ java-asm-8
java-eclipse-sisu-inject
java-javax-inject
java-plexus-component-annotations
java-commons-cli
java-commons-io
java-commons-lang3
- java-slf4j-api
- ;; TODO: replace with maven-slf4j-provider
- java-slf4j-simple))
+ java-slf4j-api))
(propagated-inputs
(list coreutils which))
(description "Apache Maven is a software project management and comprehension
(inherit maven-settings-builder)
(version (package-version maven-3.0-pom))
(source (package-source maven-3.0-pom))
+ (arguments
+ (substitute-keyword-arguments (package-arguments maven-settings-builder)
+ ((#:phases phases)
+ `(modify-phases ,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")))))))
(propagated-inputs
`(("java-plexus-component-annotations" ,java-plexus-component-annotations)
,@(filter
("maven-pom" `("maven-pom" ,maven-3.0-pom))
("maven-settings" `("maven-settings" ,maven-3.0-settings))
("maven-builder-support" #f)
+ ("java-plexus-sec-dispatcher"
+ `("java-plexus-sec-dispatcher" ,java-plexus-sec-dispatcher-1.4))
(_ input)))
(package-propagated-inputs maven-settings-builder)))))))
(inherit maven-model-builder)
(version (package-version maven-3.0-pom))
(source (package-source maven-3.0-pom))
+ (arguments
+ (substitute-keyword-arguments (package-arguments maven-model-builder)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'build 'generate-components.xml
+ (lambda _
+ (mkdir-p "build/classes/META-INF/plexus")
+ (chmod "../components.sh" #o755)
+ (invoke "../components.sh" "src/main/java"
+ "build/classes/META-INF/plexus/components.xml")))
+ (add-before 'check 'remove-failing-test
+ (lambda _
+ (delete-file "src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java")))))))
(propagated-inputs
`(("java-plexus-component-annotations" ,java-plexus-component-annotations)
,@(filter
maven-plugin-annotations
maven-enforcer-parent-pom))))
+(define-public maven-sisu-plugin
+ (package
+ (name "maven-sisu-plugin")
+ (version "0.3.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/eclipse/sisu.mojos/")
+ (commit (string-append "releases/" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "00hb7v6hz8jg0mgkj3cl0nmqz49za4k2a0rbjr4gdhy2m7f34sq3"))))
+ (build-system ant-build-system)
+ (arguments
+ (list #:jar-name "maven-sisu-plugin.jar"
+ #:source-dir "src"
+ #:tests? #f ;no tests
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'build 'generate-plugin.xml
+ (generate-plugin.xml "pom.xml" "sisu"
+ "src/main/java/org/eclipse/sisu/mojos/"
+ (list (list "IndexMojo.java")
+ (list "MainIndexMojo.java")
+ (list "TestIndexMojo.java"))))
+ (replace 'install
+ (install-from-pom "pom.xml")))))
+ (propagated-inputs (list java-sonatype-oss-parent-pom-9))
+ (inputs (list maven-artifact
+ maven-plugin-api
+ maven-plugin-annotations
+ maven-core
+ maven-common-artifact-filters
+ java-slf4j-nop
+ java-eclipse-sisu-inject
+ java-plexus-utils
+ java-plexus-build-api
+ java-slf4j-api))
+ (home-page "https://www.eclipse.org/sisu/")
+ (synopsis "Maven plugin that generates annotation indexes for Sisu")
+ (description "Maven plugin that generates annotation indexes for Sisu to
+avoid classpath scanning at runtime.")
+ (license license:epl1.0)))
+
(define-public maven-artifact-transfer
(package
(name "maven-artifact-transfer")
- (version "0.12.0")
+ (version "0.13.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/maven/shared/"
"-source-release.zip"))
(sha256
(base32
- "0mkdjr3wnvaxqaq68sy7h4mqlq3xgwwp5s2anj5vbxfy4bsc1ivj"))))
+ "0xl7lkksljacrhmvwf924zb6h0h5zw9494jaz9cz4hll0lrhlpz6"))))
(build-system ant-build-system)
(arguments
`(#:tests? #f; require mockito 2
(description "This plugin provides the capability to build jars. If you
would like to sign jars please use the Maven Jarsigner Plugin instead.")
(license license:asl2.0)))
+
+(define-public maven-doxia-sink-api
+ (package
+ (name "maven-doxia-sink-api")
+ (version "2.0.0-M2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitbox.apache.org/repos/asf/maven-doxia.git")
+ (commit (string-append "doxia-" version))))
+ (file-name (git-file-name "doxia" version))
+ (sha256
+ (base32
+ "0jx96lg0hgjsrm8mynhac4hwh2hmgiwjpwpx2k03yr14040zcr48"))))
+ (build-system ant-build-system)
+ (propagated-inputs
+ (list maven-doxia-parent-pom))
+ (arguments
+ `(#:jar-name "doxia-sink-api.jar"
+ #:source-dir "doxia-sink-api/src/main/java"
+ #:tests? #f ; no tests
+ #:phases (modify-phases %standard-phases
+ (replace 'install
+ (install-from-pom "doxia-sink-api/pom.xml")))))
+ (home-page "https://maven.apache.org/doxia/index.html")
+ (synopsis "Generic markup language interface")
+ (description
+ "The @code{Sink} interface is a generic markup language
+interface provided as a Java API. It contains several methods that
+encapsulate common text syntax. A start tag is denoted by @code{xxxx()}
+method and a end of tag by @code{xxxx_()} method.")
+ (license license:asl2.0)))
+
+(define maven-doxia-parent-pom
+ (package
+ (inherit maven-doxia-sink-api)
+ (name "maven-doxia-parent-pom")
+ (arguments
+ `(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (install-pom-file "pom.xml")))))
+ (propagated-inputs
+ (list maven-parent-pom-34))
+ (synopsis "Content generation framework")
+ (description "@samp{Doxia} is a content generation framework that provides
+powerful techniques for generating static and dynamic content, supporting a
+variety of markup languages.")))
+
+(define-public maven-doxia-core
+ (package
+ (inherit maven-doxia-sink-api)
+ (name "maven-doxia-core")
+ (arguments
+ `(#:jar-name "doxia-core.jar"
+ #:source-dir "doxia-core/src/main/java"
+ #:test-dir "doxia-core/src/test/java"
+ #:tests? #f ; tests require JUnit5
+ #:phases (modify-phases %standard-phases
+ (replace 'install
+ (install-from-pom "doxia-core/pom.xml")))))
+ (propagated-inputs (list maven-doxia-parent-pom
+ maven-doxia-sink-api
+ java-slf4j-api
+ java-javax-inject
+ java-plexus-utils
+ java-eclipse-sisu-plexus
+ java-commons-text))
+ (synopsis "Doxia core classes and interfaces")
+ (description
+ "Doxia is a content generation framework that provides powerful
+techniques for generating static and dynamic content, supporting a variety of
+markup languages.
+
+This package contains Doxia core classes and interfaces.")))