Maven POM reference说 Maven 属性有“五种不同的样式”:
env.X: Prefixing a variable with "env." will return the shell's environment
variable. For example, ${env.PATH} contains the PATH environment variable.
project.x: A dot (.) notated path in the POM will contain the corresponding
element's value. For example: <project><version>1.0</version></project>
is accessible via ${project.version}.
settings.x: A dot (.) notated path in the settings.xml will contain the
corresponding element's value. For example: <settings>
<offline>false</offline></settings> is accessible via
${settings.offline}.
Java System Properties: All properties accessible via
java.lang.System.getProperties() are available as POM properties, such
as ${java.home}.
x: Set within a <properties /> element in the POM. The value of <
<properties><someVar>value</someVar></properties> may be used as
${someVar}.
但是,我见过在命令行上设置诸如 -Dmaven.test.skip=true
之类的属性,以及在各种 Maven 项目中使用诸如 user.home
之类的属性。我认为前者是通过maven插件设置的(不是POM本身的一部分?),并且不知道后者。
最佳答案
user.home
是 Java 系统属性,请参阅 mvn help:system
了解所有可用选项。
maven.test.skip
是 Maven Surefire Plugin 定义的参数。 maven.test 部分是控制必须跳过哪个插件的最佳实践。
如果可以通过命令行设置 maven-plugin 的参数,则必须使用 (User) 属性或表达式,如早期文档中所调用的那样。如果没有这样的键,则无法通过命令行设置,只能在 pom.xml
关于java - Maven 属性前缀 "user"和 "maven"有特殊含义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45422053/