mirror of https://github.com/apache/maven.git
[MNG-7203] Introduce a long option --verbose and deprecate --debug
This closes #519
This commit is contained in:
parent
750cb6cb15
commit
a2a3df3d02
|
@ -97,7 +97,7 @@ public class FileProfileActivator
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.warn( "Failed to interpolate missing file location for profile activator: " + fileString
|
logger.warn( "Failed to interpolate missing file location for profile activator: " + fileString
|
||||||
+ ". Run in debug mode (-X) for more information." );
|
+ ", enable verbose output (-X) for more details" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,7 +128,7 @@ class LoggingRepositoryListener
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.warn( buffer + ", enable debug logging for more details" );
|
logger.warn( buffer + ", enable verbose output (-X) for more details" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -157,7 +157,8 @@ public class BuilderCommon
|
||||||
{
|
{
|
||||||
logger.warn( unsafePlugin.getId() );
|
logger.warn( unsafePlugin.getId() );
|
||||||
}
|
}
|
||||||
logger.warn( "Enable debug to see more precisely which goals are not marked @threadSafe." );
|
logger.warn( "Enable verbose output (-X) to see more precisely which goals are not marked"
|
||||||
|
+ " @threadSafe." );
|
||||||
}
|
}
|
||||||
logger.warn( "*****************************************************************" );
|
logger.warn( "*****************************************************************" );
|
||||||
}
|
}
|
||||||
|
|
|
@ -623,7 +623,7 @@ public class MavenMetadataSource
|
||||||
message =
|
message =
|
||||||
"Invalid POM for " + artifact.getId()
|
"Invalid POM for " + artifact.getId()
|
||||||
+ ", transitive dependencies (if any) will not be available"
|
+ ", transitive dependencies (if any) will not be available"
|
||||||
+ ", enable debug logging for more details";
|
+ ", enable verbose output (-X) for more details";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( logger.isDebugEnabled() )
|
if ( logger.isDebugEnabled() )
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class CLIManager
|
||||||
|
|
||||||
public static final char QUIET = 'q';
|
public static final char QUIET = 'q';
|
||||||
|
|
||||||
public static final char DEBUG = 'X';
|
public static final char VERBOSE = 'X';
|
||||||
|
|
||||||
public static final char ERRORS = 'e';
|
public static final char ERRORS = 'e';
|
||||||
|
|
||||||
|
@ -110,6 +110,11 @@ public class CLIManager
|
||||||
|
|
||||||
public static final String COLOR = "color";
|
public static final String COLOR = "color";
|
||||||
|
|
||||||
|
/** This option is deprecated and may be repurposed as Java debug in a future version.
|
||||||
|
* Use {@code -X/--verbose} instead. */
|
||||||
|
@Deprecated
|
||||||
|
public static final String DEBUG = "debug";
|
||||||
|
|
||||||
protected Options options;
|
protected Options options;
|
||||||
|
|
||||||
@SuppressWarnings( "checkstyle:linelength" )
|
@SuppressWarnings( "checkstyle:linelength" )
|
||||||
|
@ -122,7 +127,7 @@ public class CLIManager
|
||||||
options.addOption( Option.builder( Character.toString( OFFLINE ) ).longOpt( "offline" ).desc( "Work offline" ).build() );
|
options.addOption( Option.builder( Character.toString( OFFLINE ) ).longOpt( "offline" ).desc( "Work offline" ).build() );
|
||||||
options.addOption( Option.builder( Character.toString( VERSION ) ).longOpt( "version" ).desc( "Display version information" ).build() );
|
options.addOption( Option.builder( Character.toString( VERSION ) ).longOpt( "version" ).desc( "Display version information" ).build() );
|
||||||
options.addOption( Option.builder( Character.toString( QUIET ) ).longOpt( "quiet" ).desc( "Quiet output - only show errors" ).build() );
|
options.addOption( Option.builder( Character.toString( QUIET ) ).longOpt( "quiet" ).desc( "Quiet output - only show errors" ).build() );
|
||||||
options.addOption( Option.builder( Character.toString( DEBUG ) ).longOpt( "debug" ).desc( "Produce execution debug output" ).build() );
|
options.addOption( Option.builder( Character.toString( VERBOSE ) ).longOpt( "verbose" ).longOpt( "verbose" ).desc( "Produce execution verbose output" ).build() );
|
||||||
options.addOption( Option.builder( Character.toString( ERRORS ) ).longOpt( "errors" ).desc( "Produce execution error messages" ).build() );
|
options.addOption( Option.builder( Character.toString( ERRORS ) ).longOpt( "errors" ).desc( "Produce execution error messages" ).build() );
|
||||||
options.addOption( Option.builder( Character.toString( NON_RECURSIVE ) ).longOpt( "non-recursive" ).desc( "Do not recurse into sub-projects. When used together with -pl, do not recurse into sub-projects of selected aggregators" ).build() );
|
options.addOption( Option.builder( Character.toString( NON_RECURSIVE ) ).longOpt( "non-recursive" ).desc( "Do not recurse into sub-projects. When used together with -pl, do not recurse into sub-projects of selected aggregators" ).build() );
|
||||||
options.addOption( Option.builder( Character.toString( UPDATE_SNAPSHOTS ) ).longOpt( "update-snapshots" ).desc( "Forces a check for missing releases and updated snapshots on remote repositories" ).build() );
|
options.addOption( Option.builder( Character.toString( UPDATE_SNAPSHOTS ) ).longOpt( "update-snapshots" ).desc( "Forces a check for missing releases and updated snapshots on remote repositories" ).build() );
|
||||||
|
@ -153,6 +158,9 @@ public class CLIManager
|
||||||
options.addOption( Option.builder( BUILDER ).longOpt( "builder" ).hasArg().desc( "The id of the build strategy to use" ).build() );
|
options.addOption( Option.builder( BUILDER ).longOpt( "builder" ).hasArg().desc( "The id of the build strategy to use" ).build() );
|
||||||
options.addOption( Option.builder( NO_TRANSFER_PROGRESS ).longOpt( "no-transfer-progress" ).desc( "Do not display transfer progress when downloading or uploading" ).build() );
|
options.addOption( Option.builder( NO_TRANSFER_PROGRESS ).longOpt( "no-transfer-progress" ).desc( "Do not display transfer progress when downloading or uploading" ).build() );
|
||||||
options.addOption( Option.builder().longOpt( COLOR ).hasArg().optionalArg( true ).desc( "Defines the color mode of the output. Supported are 'auto', 'always', 'never'." ).build() );
|
options.addOption( Option.builder().longOpt( COLOR ).hasArg().optionalArg( true ).desc( "Defines the color mode of the output. Supported are 'auto', 'always', 'never'." ).build() );
|
||||||
|
|
||||||
|
// Deprecated
|
||||||
|
options.addOption( Option.builder().longOpt( DEBUG ).desc( "Produce execution verbose output (deprecated; only kept for backward compatibility)" ).build() );
|
||||||
}
|
}
|
||||||
|
|
||||||
public CommandLine parse( String[] args )
|
public CommandLine parse( String[] args )
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class CliRequest
|
||||||
|
|
||||||
File multiModuleProjectDirectory;
|
File multiModuleProjectDirectory;
|
||||||
|
|
||||||
boolean debug;
|
boolean verbose;
|
||||||
|
|
||||||
boolean quiet;
|
boolean quiet;
|
||||||
|
|
||||||
|
@ -86,9 +86,9 @@ public class CliRequest
|
||||||
return multiModuleProjectDirectory;
|
return multiModuleProjectDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isDebug()
|
public boolean isVerbose()
|
||||||
{
|
{
|
||||||
return debug;
|
return verbose;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isQuiet()
|
public boolean isQuiet()
|
||||||
|
|
|
@ -497,14 +497,15 @@ public class MavenCli
|
||||||
void logging( CliRequest cliRequest )
|
void logging( CliRequest cliRequest )
|
||||||
{
|
{
|
||||||
// LOG LEVEL
|
// LOG LEVEL
|
||||||
cliRequest.debug = cliRequest.commandLine.hasOption( CLIManager.DEBUG );
|
cliRequest.verbose = cliRequest.commandLine.hasOption( CLIManager.VERBOSE )
|
||||||
cliRequest.quiet = !cliRequest.debug && cliRequest.commandLine.hasOption( CLIManager.QUIET );
|
|| cliRequest.commandLine.hasOption( CLIManager.DEBUG );
|
||||||
cliRequest.showErrors = cliRequest.debug || cliRequest.commandLine.hasOption( CLIManager.ERRORS );
|
cliRequest.quiet = !cliRequest.verbose && cliRequest.commandLine.hasOption( CLIManager.QUIET );
|
||||||
|
cliRequest.showErrors = cliRequest.verbose || cliRequest.commandLine.hasOption( CLIManager.ERRORS );
|
||||||
|
|
||||||
slf4jLoggerFactory = LoggerFactory.getILoggerFactory();
|
slf4jLoggerFactory = LoggerFactory.getILoggerFactory();
|
||||||
Slf4jConfiguration slf4jConfiguration = Slf4jConfigurationFactory.getConfiguration( slf4jLoggerFactory );
|
Slf4jConfiguration slf4jConfiguration = Slf4jConfigurationFactory.getConfiguration( slf4jLoggerFactory );
|
||||||
|
|
||||||
if ( cliRequest.debug )
|
if ( cliRequest.verbose )
|
||||||
{
|
{
|
||||||
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_DEBUG );
|
cliRequest.request.setLoggingLevel( MavenExecutionRequest.LOGGING_LEVEL_DEBUG );
|
||||||
slf4jConfiguration.setRootLoggerLevel( Slf4jConfiguration.Level.DEBUG );
|
slf4jConfiguration.setRootLoggerLevel( Slf4jConfiguration.Level.DEBUG );
|
||||||
|
@ -582,11 +583,17 @@ public class MavenCli
|
||||||
MavenSlf4jWrapperFactory.class.getName(), slf4jLoggerFactory.getClass().getName() );
|
MavenSlf4jWrapperFactory.class.getName(), slf4jLoggerFactory.getClass().getName() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( cliRequest.commandLine.hasOption( CLIManager.DEBUG ) )
|
||||||
|
{
|
||||||
|
slf4jLogger.warn( "The option '--debug' is deprecated and may be repurposed as Java debug"
|
||||||
|
+ " in a future version. Use -X/--verbose instead." );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void version( CliRequest cliRequest )
|
private void version( CliRequest cliRequest )
|
||||||
{
|
{
|
||||||
if ( cliRequest.debug || cliRequest.commandLine.hasOption( CLIManager.SHOW_VERSION ) )
|
if ( cliRequest.verbose || cliRequest.commandLine.hasOption( CLIManager.SHOW_VERSION ) )
|
||||||
{
|
{
|
||||||
System.out.println( CLIReportingUtils.showVersion() );
|
System.out.println( CLIReportingUtils.showVersion() );
|
||||||
}
|
}
|
||||||
|
@ -1029,12 +1036,12 @@ public class MavenCli
|
||||||
|
|
||||||
if ( !cliRequest.showErrors )
|
if ( !cliRequest.showErrors )
|
||||||
{
|
{
|
||||||
slf4jLogger.error( "To see the full stack trace of the errors, re-run Maven with the '{}' switch.",
|
slf4jLogger.error( "To see the full stack trace of the errors, re-run Maven with the '{}' switch",
|
||||||
buffer().strong( "-e" ) );
|
buffer().strong( "-e" ) );
|
||||||
}
|
}
|
||||||
if ( !slf4jLogger.isDebugEnabled() )
|
if ( !slf4jLogger.isDebugEnabled() )
|
||||||
{
|
{
|
||||||
slf4jLogger.error( "Re-run Maven using the '{}' switch to enable full debug logging.",
|
slf4jLogger.error( "Re-run Maven using the '{}' switch to enable verbose output",
|
||||||
buffer().strong( "-X" ) );
|
buffer().strong( "-X" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1368,6 +1375,7 @@ public class MavenCli
|
||||||
CommandLine commandLine = cliRequest.commandLine;
|
CommandLine commandLine = cliRequest.commandLine;
|
||||||
String workingDirectory = cliRequest.workingDirectory;
|
String workingDirectory = cliRequest.workingDirectory;
|
||||||
boolean quiet = cliRequest.quiet;
|
boolean quiet = cliRequest.quiet;
|
||||||
|
boolean verbose = cliRequest.verbose;
|
||||||
request.setShowErrors( cliRequest.showErrors ); // default: false
|
request.setShowErrors( cliRequest.showErrors ); // default: false
|
||||||
File baseDirectory = new File( workingDirectory, "" ).getAbsoluteFile();
|
File baseDirectory = new File( workingDirectory, "" ).getAbsoluteFile();
|
||||||
|
|
||||||
|
@ -1384,7 +1392,7 @@ public class MavenCli
|
||||||
request.setUserProperties( cliRequest.userProperties );
|
request.setUserProperties( cliRequest.userProperties );
|
||||||
request.setMultiModuleProjectDirectory( cliRequest.multiModuleProjectDirectory );
|
request.setMultiModuleProjectDirectory( cliRequest.multiModuleProjectDirectory );
|
||||||
request.setPom( determinePom( commandLine, workingDirectory, baseDirectory ) );
|
request.setPom( determinePom( commandLine, workingDirectory, baseDirectory ) );
|
||||||
request.setTransferListener( determineTransferListener( quiet, commandLine, request ) );
|
request.setTransferListener( determineTransferListener( quiet, verbose, commandLine, request ) );
|
||||||
request.setExecutionListener( determineExecutionListener() );
|
request.setExecutionListener( determineExecutionListener() );
|
||||||
|
|
||||||
if ( ( request.getPom() != null ) && ( request.getPom().getParentFile() != null ) )
|
if ( ( request.getPom() != null ) && ( request.getPom().getParentFile() != null ) )
|
||||||
|
@ -1593,6 +1601,7 @@ public class MavenCli
|
||||||
}
|
}
|
||||||
|
|
||||||
private TransferListener determineTransferListener( final boolean quiet,
|
private TransferListener determineTransferListener( final boolean quiet,
|
||||||
|
final boolean verbose,
|
||||||
final CommandLine commandLine,
|
final CommandLine commandLine,
|
||||||
final MavenExecutionRequest request )
|
final MavenExecutionRequest request )
|
||||||
{
|
{
|
||||||
|
@ -1606,7 +1615,7 @@ public class MavenCli
|
||||||
// If we're logging to a file then we don't want the console transfer listener as it will spew
|
// If we're logging to a file then we don't want the console transfer listener as it will spew
|
||||||
// download progress all over the place
|
// download progress all over the place
|
||||||
//
|
//
|
||||||
return getConsoleTransferListener( commandLine.hasOption( CLIManager.DEBUG ) );
|
return getConsoleTransferListener( verbose );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class CLIManagerTest
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
CommandLine cmdLine = cliManager.parse( "-X -Dx=1 -D y=2 test".split( " " ) );
|
CommandLine cmdLine = cliManager.parse( "-X -Dx=1 -D y=2 test".split( " " ) );
|
||||||
assertTrue( cmdLine.hasOption( CLIManager.DEBUG ) );
|
assertTrue( cmdLine.hasOption( CLIManager.VERBOSE ) );
|
||||||
assertThat( cmdLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY )[0], is( "x=1" ) );
|
assertThat( cmdLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY )[0], is( "x=1" ) );
|
||||||
assertThat( cmdLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY )[1], is( "y=2" ) );
|
assertThat( cmdLine.getOptionValues( CLIManager.SET_SYSTEM_PROPERTY )[1], is( "y=2" ) );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue