Normally, -D is used to specify a system property to the JVM. However, when I
check out the following invocation of the archetype plugin:
mvn archetype:generate -DgroupId=com.mycompany -DartifactId=SampleApp
-DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
The invocation is like:
java
-classpath
/usr/local/apache-maven-3.3.9/boot/plexus-classworlds-2.5.2.jar
-Dclassworlds.conf=/usr/local/apache-maven-3.3.9/bin/m2.conf
-Dmaven.home=/usr/local/apache-maven-3.3.9
-Dmaven.multiModuleProjectDirectory=/Users/username/Documents/Maven_Archetype_Test
org.codehaus.plexus.classworlds.launcher.Launcher archetype:generate
-DgroupId=com.mycompany
-DartifactId=SampleApp
-DarchetypeArtifactId=maven-archetype-webapp
-DinteractiveMode=false
Options coming after the class name (i.e, after
"org.codehaus.plexus.classworlds.launcher.Launcher”) are passed to the main
method of the application. Hence, the options
-DgroupId=com.mycompany
-DartifactId=SampleApp
-DarchetypeArtifactId=maven-archetype-webapp
-DinteractiveMode=false
are not sent to the JVM but to
org.codehaus.plexus.classworlds.launcher.Launcher. Yet, these options
“masquerade” as JVM options (unless these options are not set to be System
Properties in Launcher class or somewhere else).
I wonder the reason for this. Why not simply specify the arguments as
-groupId=com.mycompany
-artifactId=SampleApp
-archetypeArtifactId=maven-archetype-webapp
-interactiveMode=false
but as
-DgroupId=com.mycompany
-DartifactId=SampleApp
-DarchetypeArtifactId=maven-archetype-webapp
-DinteractiveMode=false
?
Regards
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]