Package org.apache.maven.cli
Class MavenCli
- java.lang.Object
-
- org.apache.maven.cli.MavenCli
-
public class MavenCli extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
MavenCli.ExitException
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
ANSI_RESET
private org.codehaus.plexus.classworlds.ClassWorld
classWorld
private CLIManager
cliManager
private java.util.Map<java.lang.String,ConfigurationProcessor>
configurationProcessors
static java.io.File
DEFAULT_GLOBAL_TOOLCHAINS_FILE
static java.io.File
DEFAULT_USER_TOOLCHAINS_FILE
private org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher
dispatcher
private EventSpyDispatcher
eventSpyDispatcher
private MavenExecutionRequestPopulator
executionRequestPopulator
private static java.lang.String
EXT_CLASS_PATH
private static java.lang.String
EXTENSIONS_FILENAME
private static java.util.regex.Pattern
LAST_ANSI_SEQUENCE
static java.lang.String
LOCAL_REPO_PROPERTY
private Maven
maven
private ModelProcessor
modelProcessor
static java.lang.String
MULTIMODULE_PROJECT_DIRECTORY
private static java.lang.String
MVN_MAVEN_CONFIG
private org.codehaus.plexus.logging.LoggerManager
plexusLoggerManager
private org.slf4j.Logger
slf4jLogger
private org.slf4j.ILoggerFactory
slf4jLoggerFactory
static java.lang.String
STYLE_COLOR_PROPERTY
private ToolchainsBuilder
toolchainsBuilder
static java.lang.String
USER_HOME
static java.io.File
USER_MAVEN_CONFIGURATION_HOME
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) int
calculateDegreeOfConcurrencyWithCoreMultiplier(java.lang.String threadConfiguration)
(package private) void
cli(CliRequest cliRequest)
private org.apache.commons.cli.CommandLine
cliMerge(org.apache.commons.cli.CommandLine mavenArgs, org.apache.commons.cli.CommandLine mavenConfig)
private void
commands(CliRequest cliRequest)
private void
configure(CliRequest cliRequest)
(package private) org.codehaus.plexus.PlexusContainer
container(CliRequest cliRequest)
protected ModelProcessor
createModelProcessor(org.codehaus.plexus.PlexusContainer container)
protected void
customizeContainer(org.codehaus.plexus.PlexusContainer container)
int
doMain(java.lang.String[] args, java.lang.String workingDirectory, java.io.PrintStream stdout, java.io.PrintStream stderr)
This supports painless invocation by the Verifier during embedded execution of the core ITs.static int
doMain(java.lang.String[] args, org.codehaus.plexus.classworlds.ClassWorld classWorld)
int
doMain(CliRequest cliRequest)
private void
encryption(CliRequest cliRequest)
private int
execute(CliRequest cliRequest)
protected org.eclipse.aether.transfer.TransferListener
getBatchTransferListener()
protected org.eclipse.aether.transfer.TransferListener
getConsoleTransferListener(boolean printResourceNames)
private java.lang.Object
getLocation(Source source, java.io.File defaultLocation)
private java.lang.String
getResumeFrom(java.util.List<MavenProject> mavenProjects, MavenProject failedProject)
A helper method to determine the value to resume the build with-rf
taking into account the edge case where multiple modules in the reactor have the same artifactId.private void
informativeCommands(CliRequest cliRequest)
(package private) void
initialize(CliRequest cliRequest)
private java.util.List<CoreExtensionEntry>
loadCoreExtensions(CliRequest cliRequest, org.codehaus.plexus.classworlds.realm.ClassRealm containerRealm, java.util.Set<java.lang.String> providedArtifacts)
(package private) void
logging(CliRequest cliRequest)
configure loggingprivate void
logSummary(ExceptionSummary summary, java.util.Map<java.lang.String,java.lang.String> references, java.lang.String indent, boolean showErrors)
static void
main(java.lang.String[] args)
static int
main(java.lang.String[] args, org.codehaus.plexus.classworlds.ClassWorld classWorld)
private java.util.List<java.io.File>
parseExtClasspath(CliRequest cliRequest)
(package private) static void
populateProperties(org.apache.commons.cli.CommandLine commandLine, java.util.Properties systemProperties, java.util.Properties userProperties)
private MavenExecutionRequest
populateRequest(CliRequest cliRequest)
private MavenExecutionRequest
populateRequest(CliRequest cliRequest, MavenExecutionRequest request)
(package private) void
properties(CliRequest cliRequest)
private java.util.List<CoreExtension>
readCoreExtensionsDescriptor(java.io.File extensionsFile)
private void
repository(CliRequest cliRequest)
private static <T> java.util.List<T>
reverse(java.util.List<T> list)
private static void
setCliProperty(java.lang.String property, java.util.Properties properties)
private org.codehaus.plexus.classworlds.realm.ClassRealm
setupContainerRealm(org.codehaus.plexus.classworlds.ClassWorld classWorld, org.codehaus.plexus.classworlds.realm.ClassRealm coreRealm, java.util.List<java.io.File> extClassPath, java.util.List<CoreExtensionEntry> extensions)
(package private) void
toolchains(CliRequest cliRequest)
private void
version(CliRequest cliRequest)
-
-
-
Field Detail
-
LOCAL_REPO_PROPERTY
public static final java.lang.String LOCAL_REPO_PROPERTY
- See Also:
- Constant Field Values
-
MULTIMODULE_PROJECT_DIRECTORY
public static final java.lang.String MULTIMODULE_PROJECT_DIRECTORY
- See Also:
- Constant Field Values
-
USER_HOME
public static final java.lang.String USER_HOME
-
USER_MAVEN_CONFIGURATION_HOME
public static final java.io.File USER_MAVEN_CONFIGURATION_HOME
-
DEFAULT_USER_TOOLCHAINS_FILE
public static final java.io.File DEFAULT_USER_TOOLCHAINS_FILE
-
DEFAULT_GLOBAL_TOOLCHAINS_FILE
public static final java.io.File DEFAULT_GLOBAL_TOOLCHAINS_FILE
-
EXT_CLASS_PATH
private static final java.lang.String EXT_CLASS_PATH
- See Also:
- Constant Field Values
-
EXTENSIONS_FILENAME
private static final java.lang.String EXTENSIONS_FILENAME
- See Also:
- Constant Field Values
-
MVN_MAVEN_CONFIG
private static final java.lang.String MVN_MAVEN_CONFIG
- See Also:
- Constant Field Values
-
STYLE_COLOR_PROPERTY
public static final java.lang.String STYLE_COLOR_PROPERTY
- See Also:
- Constant Field Values
-
classWorld
private org.codehaus.plexus.classworlds.ClassWorld classWorld
-
plexusLoggerManager
private org.codehaus.plexus.logging.LoggerManager plexusLoggerManager
-
slf4jLoggerFactory
private org.slf4j.ILoggerFactory slf4jLoggerFactory
-
slf4jLogger
private org.slf4j.Logger slf4jLogger
-
eventSpyDispatcher
private EventSpyDispatcher eventSpyDispatcher
-
modelProcessor
private ModelProcessor modelProcessor
-
maven
private Maven maven
-
executionRequestPopulator
private MavenExecutionRequestPopulator executionRequestPopulator
-
toolchainsBuilder
private ToolchainsBuilder toolchainsBuilder
-
dispatcher
private org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher dispatcher
-
configurationProcessors
private java.util.Map<java.lang.String,ConfigurationProcessor> configurationProcessors
-
cliManager
private CLIManager cliManager
-
LAST_ANSI_SEQUENCE
private static final java.util.regex.Pattern LAST_ANSI_SEQUENCE
-
ANSI_RESET
private static final java.lang.String ANSI_RESET
- See Also:
- Constant Field Values
-
-
Method Detail
-
main
public static void main(java.lang.String[] args)
-
main
public static int main(java.lang.String[] args, org.codehaus.plexus.classworlds.ClassWorld classWorld)
-
doMain
public static int doMain(java.lang.String[] args, org.codehaus.plexus.classworlds.ClassWorld classWorld)
-
doMain
public int doMain(java.lang.String[] args, java.lang.String workingDirectory, java.io.PrintStream stdout, java.io.PrintStream stderr)
This supports painless invocation by the Verifier during embedded execution of the core ITs. SeeEmbedded3xLauncher
inmaven-verifier
-
doMain
public int doMain(CliRequest cliRequest)
-
initialize
void initialize(CliRequest cliRequest) throws MavenCli.ExitException
- Throws:
MavenCli.ExitException
-
cli
void cli(CliRequest cliRequest) throws java.lang.Exception
- Throws:
java.lang.Exception
-
informativeCommands
private void informativeCommands(CliRequest cliRequest) throws MavenCli.ExitException
- Throws:
MavenCli.ExitException
-
cliMerge
private org.apache.commons.cli.CommandLine cliMerge(org.apache.commons.cli.CommandLine mavenArgs, org.apache.commons.cli.CommandLine mavenConfig)
-
logging
void logging(CliRequest cliRequest)
configure logging
-
version
private void version(CliRequest cliRequest)
-
commands
private void commands(CliRequest cliRequest)
-
properties
void properties(CliRequest cliRequest)
-
container
org.codehaus.plexus.PlexusContainer container(CliRequest cliRequest) throws java.lang.Exception
- Throws:
java.lang.Exception
-
loadCoreExtensions
private java.util.List<CoreExtensionEntry> loadCoreExtensions(CliRequest cliRequest, org.codehaus.plexus.classworlds.realm.ClassRealm containerRealm, java.util.Set<java.lang.String> providedArtifacts)
-
readCoreExtensionsDescriptor
private java.util.List<CoreExtension> readCoreExtensionsDescriptor(java.io.File extensionsFile) throws java.io.IOException, org.codehaus.plexus.util.xml.pull.XmlPullParserException
- Throws:
java.io.IOException
org.codehaus.plexus.util.xml.pull.XmlPullParserException
-
setupContainerRealm
private org.codehaus.plexus.classworlds.realm.ClassRealm setupContainerRealm(org.codehaus.plexus.classworlds.ClassWorld classWorld, org.codehaus.plexus.classworlds.realm.ClassRealm coreRealm, java.util.List<java.io.File> extClassPath, java.util.List<CoreExtensionEntry> extensions) throws java.lang.Exception
- Throws:
java.lang.Exception
-
reverse
private static <T> java.util.List<T> reverse(java.util.List<T> list)
-
parseExtClasspath
private java.util.List<java.io.File> parseExtClasspath(CliRequest cliRequest)
-
encryption
private void encryption(CliRequest cliRequest) throws java.lang.Exception
- Throws:
java.lang.Exception
-
repository
private void repository(CliRequest cliRequest) throws java.lang.Exception
- Throws:
java.lang.Exception
-
execute
private int execute(CliRequest cliRequest) throws MavenExecutionRequestPopulationException
-
getResumeFrom
private java.lang.String getResumeFrom(java.util.List<MavenProject> mavenProjects, MavenProject failedProject)
A helper method to determine the value to resume the build with-rf
taking into account the edge case where multiple modules in the reactor have the same artifactId.-rf :artifactId
will pick up the first module which matches, but when multiple modules in the reactor have the same artifactId, effective failed module might be later in build reactor. This means that developer will either have to type groupId or wait for build execution of all modules which were fine, but they are still before one which reported errors.Then the returned value is
groupId:artifactId
when there is a name clash and:artifactId
if there is no conflict.- Parameters:
mavenProjects
- Maven projects which are part of build execution.failedProject
- Project which has failed.- Returns:
- Value for -rf flag to resume build exactly from place where it failed (
:artifactId
in general andgroupId:artifactId
when there is a name clash).
-
logSummary
private void logSummary(ExceptionSummary summary, java.util.Map<java.lang.String,java.lang.String> references, java.lang.String indent, boolean showErrors)
-
configure
private void configure(CliRequest cliRequest) throws java.lang.Exception
- Throws:
java.lang.Exception
-
toolchains
void toolchains(CliRequest cliRequest) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getLocation
private java.lang.Object getLocation(Source source, java.io.File defaultLocation)
-
populateRequest
private MavenExecutionRequest populateRequest(CliRequest cliRequest)
-
populateRequest
private MavenExecutionRequest populateRequest(CliRequest cliRequest, MavenExecutionRequest request)
-
calculateDegreeOfConcurrencyWithCoreMultiplier
int calculateDegreeOfConcurrencyWithCoreMultiplier(java.lang.String threadConfiguration)
-
populateProperties
static void populateProperties(org.apache.commons.cli.CommandLine commandLine, java.util.Properties systemProperties, java.util.Properties userProperties)
-
setCliProperty
private static void setCliProperty(java.lang.String property, java.util.Properties properties)
-
getConsoleTransferListener
protected org.eclipse.aether.transfer.TransferListener getConsoleTransferListener(boolean printResourceNames)
-
getBatchTransferListener
protected org.eclipse.aether.transfer.TransferListener getBatchTransferListener()
-
customizeContainer
protected void customizeContainer(org.codehaus.plexus.PlexusContainer container)
-
createModelProcessor
protected ModelProcessor createModelProcessor(org.codehaus.plexus.PlexusContainer container) throws org.codehaus.plexus.component.repository.exception.ComponentLookupException
- Throws:
org.codehaus.plexus.component.repository.exception.ComponentLookupException
-
-