Subject: [PATCH] gnu: Add maven-release-api

From: "Artyom V. Poptsov" <[email-masked]>
Date: Sat, 25 Jun 2022 12:26:58 +0300

Hello,

this patch adds Maven Release API under the name 'maven-release-api', as
well as the private 'maven-release-parent-pom' package.

From f071547eaf36804cfe0fc7ee0ef418e2db1abb7a Mon Sep 17 00:00:00 2001
From: "Artyom V. Poptsov" <[email-masked]>
Date: Sat, 25 Jun 2022 12:16:29 +0300
Subject: [PATCH] gnu: Add maven-release-api

* gnu/packages/maven.scm (maven-release-api): New variable.
  (maven-release-parent-pom): New variable.
---
 gnu/packages/maven.scm | 58 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/maven.scm b/gnu/packages/maven.scm
index e5831ee614..7ff2d6d69e 100644
--- a/gnu/packages/maven.scm
+++ b/gnu/packages/maven.scm
@@ -3938,3 +3938,61 @@ method and a end of tag by @code{xxxx_()} method.")
     (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-release-api
+  (package
+    (name "maven-release-api")
+    (version "3.0.0-M5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/apache/maven-release")
+                    (commit (string-append "maven-release-" version))))
+              (file-name (git-file-name "maven-release" version))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; XXX: Delete dummy JAR-files.
+                  (delete-file-recursively
+                   "maven-release-manager/src/test/remote-repository")
+                  #t))
+              (sha256
+               (base32
+                "13yxjl29jp4zkb8xvy0b045b5fpqz9nais1jsf4r9krczyxyj96k"))))
+    (build-system ant-build-system)
+    (propagated-inputs (list maven-release-parent-pom))
+    (inputs (list maven-repository-metadata
+                  maven-artifact
+                  maven-core
+                  maven-model
+                  java-eclipse-aether-util
+                  java-slf4j-api
+                  java-plexus-utils))
+    (arguments
+     `(#:jar-name "maven-release-api.jar"
+       #:source-dir "maven-release-api/src/main/java"
+       #:tests? #f ; no tests
+       #:phases (modify-phases %standard-phases
+                  (replace 'install
+                    (install-from-pom "maven-release-api/pom.xml")))))
+    (home-page "https://maven.apache.org/maven-release/")
+    (synopsis "APIs to implement to extend maven-release-plugin")
+    (description "APIs to implement to extend maven-release-plugin")
+    (license license:asl2.0)))
+
+(define maven-release-parent-pom
+  (package
+    (inherit maven-release-api)
+    (name "maven-release-parent-pom")
+    (arguments
+     `(#:tests? #f                      ; no tests
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure)
+                  (delete 'build)
+                  (replace 'install
+                    (install-pom-file "pom.xml")))))
+    (propagated-inputs
+     (list maven-parent-pom-34))
+    (synopsis "Apache Maven Release (Plugin)")
+    (description "This plugin is used to release a project with Maven, saving
+a lot of repetitive, manual work.")))
-- 
2.25.1

Thanks,

- Artyom

-- 
Artyom "avp" Poptsov <[email-masked]>
Home page: https://memory-heap.org/~avp/
CADR Hackerspace co-founder: https://cadrspace.ru/
GPG: D0C2 EAC1 3310 822D 98DE  B57C E9C5 A2D9 0898 A02F