xmvn/0008-Mimic-maven-javadoc-plugin-for-source-and-release.patch

79 lines
2.8 KiB
Diff

From ebba7d4d4534d8e1d8c0d8e31b92269e62adea8e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Wed, 4 May 2022 13:26:00 +0200
Subject: [PATCH 8/8] Mimic maven-javadoc-plugin for -source and --release
Consider the maven.compiler.sourceand maven.compiler.release
properties. Skip module-info.java if source level is specified
and it is < 9.
---
.../fedoraproject/xmvn/mojo/JavadocMojo.java | 37 +++++++++++++++++--
1 file changed, 34 insertions(+), 3 deletions(-)
diff --git a/xmvn-mojo/src/main/java/org/fedoraproject/xmvn/mojo/JavadocMojo.java b/xmvn-mojo/src/main/java/org/fedoraproject/xmvn/mojo/JavadocMojo.java
index c1e61617..a2582057 100644
--- a/xmvn-mojo/src/main/java/org/fedoraproject/xmvn/mojo/JavadocMojo.java
+++ b/xmvn-mojo/src/main/java/org/fedoraproject/xmvn/mojo/JavadocMojo.java
@@ -84,9 +84,12 @@ public class JavadocMojo
@Parameter( defaultValue = "${project.build.directory}", required = true )
private File buildDirectory;
- @Parameter( property = "source" )
+ @Parameter( property = "source", defaultValue = "${maven.compiler.source}" )
private String source;
+ @Parameter( defaultValue = "${maven.compiler.release}" )
+ private String release;
+
private static String quoted( Object obj )
{
String arg = obj.toString();
@@ -229,14 +232,42 @@ public class JavadocMojo
opts.add( quoted( docencoding ) );
opts.add( "-doctitle" );
opts.add( quoted( "Javadoc for package XXX" ) );
- if ( source != null )
+
+ String sourceLevel = null;
+ if ( release != null )
+ {
+ opts.add( "--release" );
+ opts.add( quoted( release ) );
+ sourceLevel = release;
+
+ }
+ else if ( source != null )
{
opts.add( "-source" );
opts.add( quoted( source ) );
+ sourceLevel = source;
+ }
+
+ boolean skipModuleInfo = false;
+ if ( sourceLevel != null )
+ {
+ try
+ {
+ float f = Float.parseFloat(sourceLevel);
+ if (f < 9)
+ skipModuleInfo = true;
+ }
+ catch ( Exception e )
+ {
+ // pass, we assume that we use modular Java
+ }
}
for ( Path file : files )
- opts.add( quoted( file ) );
+ {
+ if ( !skipModuleInfo || !file.endsWith( "module-info.java" ) )
+ opts.add( quoted( file ) );
+ }
Files.write( outputDir.resolve( "args" ), opts, StandardOpenOption.CREATE );
--
2.36.0