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.
This commit is contained in:
Julien Lepiller 2021-06-01 00:44:18 +02:00
parent 9711970c99
commit 0db1393b73
No known key found for this signature in database
GPG Key ID: 53D457B2D636EE82
2 changed files with 19 additions and 1 deletions

View File

@ -65,6 +65,7 @@
(format #t "fixing ~a~%" pom-file)
(fix-pom-dependencies pom-file (map cdr inputs)
#:with-plugins? #t #:with-build-dependencies? #t
#:with-modules? #t
#:local-packages local-packages
#:excludes excludes))

View File

@ -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
('() '())