summaryrefslogtreecommitdiff
path: root/guix/build/maven/pom.scm
diff options
context:
space:
mode:
authorJulien Lepiller <julien@lepiller.eu>2021-06-01 00:44:18 +0200
committerJulien Lepiller <julien@lepiller.eu>2021-06-22 13:10:28 +0200
commit0db1393b732304220aff978676b5354bfa186a65 (patch)
tree49eba8fd472054b74e2e83dabf8ca06687878422 /guix/build/maven/pom.scm
parent9711970c99cfbf1b5546c395d5407d67b954c343 (diff)
guix: maven: Support fixing modules.
* guix/build/maven/pom.scm (fix-pom-dependencies): Support fixing modules that do not exist. * guix/build/maven-build-system.scm (fix-pom): Fix modules.
Diffstat (limited to 'guix/build/maven/pom.scm')
-rw-r--r--guix/build/maven/pom.scm19
1 files changed, 18 insertions, 1 deletions
diff --git a/guix/build/maven/pom.scm b/guix/build/maven/pom.scm
index 3a4ad7a216..ffb4515179 100644
--- a/guix/build/maven/pom.scm
+++ b/guix/build/maven/pom.scm
@@ -291,7 +291,8 @@ this repository contains."
(define* (fix-pom-dependencies pom-file inputs
#:key with-plugins? with-build-dependencies?
- (excludes '()) (local-packages '()))
+ with-modules? (excludes '())
+ (local-packages '()))
"Open @var{pom-file}, and override its content, rewritting its dependencies
to set their version to the latest version available in the @var{inputs}.
@@ -339,8 +340,24 @@ Returns nothing, but overrides the @var{pom-file} as a side-effect."
`((http://maven.apache.org/POM/4.0.0:build ,(fix-build build))
,@(fix-pom rest))
(cons tag (fix-pom rest))))
+ (('http://maven.apache.org/POM/4.0.0:modules modules ...)
+ (if with-modules?
+ `((http://maven.apache.org/POM/4.0.0:modules ,(fix-modules modules))
+ ,@(fix-pom rest))
+ (cons tag (fix-pom rest))))
(tag (cons tag (fix-pom rest)))))))
+ (define fix-modules
+ (match-lambda
+ ('() '())
+ ((tag rest ...)
+ (match tag
+ (('http://maven.apache.org/POM/4.0.0:module module)
+ (if (file-exists? (string-append (dirname pom-file) "/" module "/pom.xml"))
+ `((http://maven.apache.org/POM/4.0.0:module ,module) ,@(fix-modules rest))
+ (fix-modules rest)))
+ (tag (cons tag (fix-modules rest)))))))
+
(define fix-dep-management
(match-lambda
('() '())