Skip to content

Commit cc6551c

Browse files
plamentotevolamy
authored andcommitted
Add the ability to specify --module-version argument for Java 9+ (#42)
1 parent e60e1cd commit cc6551c

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

plexus-compiler-api/src/main/java/org/codehaus/plexus/compiler/CompilerConfiguration.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,11 @@ public class CompilerConfiguration
8787

8888
private String sourceEncoding;
8989

90+
/**
91+
* value of --module-version parameter in java 9+
92+
*/
93+
private String moduleVersion;
94+
9095
private Collection<Map.Entry<String,String>> customCompilerArguments = new ArrayList<Map.Entry<String,String>>();
9196

9297
private boolean fork;
@@ -404,6 +409,16 @@ public void setSourceEncoding( String sourceEncoding )
404409
this.sourceEncoding = sourceEncoding;
405410
}
406411

412+
public String getModuleVersion()
413+
{
414+
return moduleVersion;
415+
}
416+
417+
public void setModuleVersion( String moduleVersion )
418+
{
419+
this.moduleVersion = moduleVersion;
420+
}
421+
407422
public void addCompilerCustomArgument( String customArgument, String value )
408423
{
409424
customCompilerArguments.add( new AbstractMap.SimpleImmutableEntry<String, String>( customArgument, value ) );

plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,12 @@ else if ( !suppressSource( config ) )
372372
args.add( config.getSourceEncoding() );
373373
}
374374

375+
if ( !StringUtils.isEmpty( config.getModuleVersion() ) )
376+
{
377+
args.add( "--module-version" );
378+
args.add( config.getModuleVersion() );
379+
}
380+
375381
for ( Map.Entry<String, String> entry : config.getCustomCompilerArgumentsEntries() )
376382
{
377383
String key = entry.getKey();

plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,31 @@ public void testModulePath() throws Exception
243243
internalTest( compilerConfiguration, expectedArguments );
244244
}
245245

246+
public void testModuleVersion()
247+
{
248+
List<String> expectedArguments = new ArrayList<String>();
249+
250+
CompilerConfiguration compilerConfiguration = new CompilerConfiguration();
251+
252+
// outputLocation
253+
compilerConfiguration.setOutputLocation( "/output" );
254+
expectedArguments.add( "-d" );
255+
expectedArguments.add( new File( "/output" ).getAbsolutePath() );
256+
257+
// default source + target
258+
expectedArguments.add( "-target" );
259+
expectedArguments.add( "1.1" );
260+
expectedArguments.add( "-source" );
261+
expectedArguments.add( "1.3" );
262+
263+
// module version
264+
compilerConfiguration.setModuleVersion( "1.2.0-SNAPSHOT" );
265+
expectedArguments.add( "--module-version" );
266+
expectedArguments.add( "1.2.0-SNAPSHOT" );
267+
268+
internalTest( compilerConfiguration, expectedArguments );
269+
}
270+
246271
public void testReleaseVersion()
247272
{
248273
List<String> expectedArguments = new ArrayList<String>();

0 commit comments

Comments
 (0)