鉴于此Maven插件调用:
mvn archetype:generate -DgroupId=YourProjectGroupId
-DartifactId=YourProjectName
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
在此命令中,-D
代表什么?
我知道它用于定义参数但是为什么-D
为什么不-P
或其他什么?
答案 0 :(得分:2)
-D
参数允许您将系统属性传递给基础JVM。
Maven插件可以按如下方式阅读:
System.getProperty("groupId");
System.getProperty("artifactId")
因此,使用-D
只反映了插件作者选择从调用者(即你)获取参数的方式。
这里的插件作者不是发明一个从调用者传递命令行输入的自定义机制,而是选择使用一种将“应用程序属性”传递给JVM的标准方法。
回答这个问题:
为什么-D为什么不-P或其他什么?
这不是特定于Maven插件的问题,因为JDK定义了-D
而Java properties docs没有解释选择-D
的原因。
答案 1 :(得分:0)
只需在命令行中查看java帮助:
C:\Users\user1>java -help
...
-D<name>=<value>
set a system property
...