;;; 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 maven-pom
(package
(name "maven-pom")
- (version "3.8.4")
+ (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 "16xbhkhhp05gskgbhrf1ia8riivvkhpk822n9xgnad61f9hzp2r9"))
+ (sha256 (base32 "0jszmcaxp597a62ajrc478jxix1qmw4pknhiygsbjdy3kccc7gvj"))
(modules '((guix build utils)))
(snippet
'(begin
(replace 'install
(install-pom-file "pom.xml")))))
(propagated-inputs
- `(("maven-parent-pom-34" ,maven-parent-pom-34)))
+ (list maven-parent-pom-35))
(home-page "https://maven.apache.org/")
(synopsis "Build system")
(description "Apache Maven is a software project management and comprehension
(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-sisu-named
(lambda _
(mkdir-p "build/classes/META-INF/sisu")
- (chmod "sisu.sh" #o755)
- (invoke "./sisu.sh" "maven-model-builder/src/main/java"
+ (chmod "../sisu.sh" #o755)
+ (invoke "../sisu.sh" "src/main/java"
"build/classes/META-INF/sisu/javax.inject.Named")))
- (add-before 'check 'fix-paths
- (lambda _
- (substitute* (find-files "maven-model-builder/src/test/java" ".*.java")
- (("src/test") "maven-model-builder/src/test"))
- #t))
(replace 'install
- (install-from-pom "maven-model-builder/pom.xml")))))
+ (install-from-pom "pom.xml")))))
(propagated-inputs
(list java-plexus-interpolation
java-plexus-utils
(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")
- (with-directory-excursion "generated-sources"
- (invoke "tar" "xf" (assoc-ref inputs "java-slf4j-simple-source"))
- (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)))
+ #: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
(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"
+ (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 "maven-model-builder/src/test/java/org/apache/maven/model/interpolation/StringSearchModelInterpolatorTest.java")))))))
+ (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")
(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.")))