in src/main/java/org/apache/maven/plugins/jmod/JModCreateMojo.java [527:663]
private Commandline createJModCreateCommandLine( File resultingJModFile )
throws IOException
{
File file = new File( outputDirectory, "jmodCreateArgs" );
if ( !getLog().isDebugEnabled() )
{
file.deleteOnExit();
}
file.getParentFile().mkdirs();
file.createNewFile();
PrintStream argsFile = new PrintStream( file );
argsFile.println( "create" );
if ( moduleVersion != null )
{
argsFile.println( "--module-version" );
argsFile.println( moduleVersion );
}
List<String> classPaths;
if ( classpathElements != null )
{
classPaths = new ArrayList<>( classpathElements );
}
else
{
classPaths = new ArrayList<>( 1 );
}
if ( targetClassesDirectory.exists() )
{
classPaths.add( targetClassesDirectory.getAbsolutePath() );
}
argsFile.println( "--class-path" );
argsFile .append( '"' )
.append( getPlatformSeparatedList( classPaths ).replace( "\\", "\\\\" ) )
.println( '"' );
if ( excludes != null && !excludes.isEmpty() )
{
argsFile.println( "--exclude" );
String commaSeparatedList = getCommaSeparatedList( excludes );
argsFile.append( '"' ).append( commaSeparatedList.replace( "\\", "\\\\" ) ).println( '"' );
}
List<String> configList = handleConfigurationListWithDefault( configs, DEFAULT_CONFIG_DIRECTORY );
if ( !configList.isEmpty() )
{
argsFile.println( "--config" );
// Should we quote the paths?
argsFile.println( getPlatformSeparatedList( configList ) );
}
if ( StringUtils.isNotBlank( mainClass ) )
{
argsFile.println( "--main-class" );
argsFile.println( mainClass );
}
List<String> cmdsList = handleConfigurationListWithDefault( cmds, DEFAULT_CMD_DIRECTORY );
if ( !cmdsList.isEmpty() )
{
argsFile.println( "--cmds" );
argsFile.println( getPlatformSeparatedList( cmdsList ) );
}
List<String> libsList = handleConfigurationListWithDefault( libs, DEFAULT_LIB_DIRECTORY );
if ( !libsList.isEmpty() )
{
argsFile.println( "--libs" );
argsFile.println( getPlatformSeparatedList( libsList ) );
}
List<String> headerFilesList =
handleConfigurationListWithDefault( headerFiles, DEFAULT_HEADER_FILES_DIRECTORY );
if ( !headerFilesList.isEmpty() )
{
argsFile.println( "--header-files" );
argsFile.println( getPlatformSeparatedList( headerFilesList ) );
}
List<String> legalNoticesList =
handleConfigurationListWithDefault( legalNotices, DEFAULT_LEGAL_NOTICES_DIRECTORY );
if ( !legalNoticesList.isEmpty() )
{
argsFile.println( "--legal-notices" );
argsFile.println( getPlatformSeparatedList( legalNoticesList ) );
}
List<String> manPagesList = handleConfigurationListWithDefault( manPages, DEFAULT_MAN_PAGES_DIRECTORY );
if ( !manPagesList.isEmpty() )
{
argsFile.println( "--man-pages" );
argsFile.println( getPlatformSeparatedList( manPagesList ) );
}
List<String> modulePaths = new ArrayList<>( modulepathElements );
modulePaths.add( new File( javaHome, JMODS ).getAbsolutePath() );
if ( modulePaths != null )
{
//@formatter:off
argsFile.println( "--module-path" );
argsFile
.append( '"' )
.append( getPlatformSeparatedList( modulePaths ).replace( "\\", "\\\\" ) )
.println( '"' );
//@formatter:off
}
if ( targetPlatform != null )
{
argsFile.println( "--target-platform" );
argsFile.println( targetPlatform );
}
if ( warnIfResolved != null )
{
argsFile.println( "--warn-if-resolved" );
argsFile.println( warnIfResolved );
}
if ( doNotResolveByDefault )
{
argsFile.println( "--do-not-resolve-by-default" );
}
argsFile.println( resultingJModFile.getAbsolutePath() );
argsFile.close();
Commandline cmd = new Commandline();
cmd.createArg().setValue( '@' + file.getAbsolutePath() );
return cmd;
}