Answers:
你是这个意思吗?
我还将其内容移至GitHub存储库:
https://github.com/cko/predefined_maven_properties/blob/master/README.md
[WARNING] The expression ${artifactId} is deprecated. Please use ${project.artifactId} instead.
但包括大多数;)
看一看免费在线在线书籍Maven:The Complete Reference的9.2 .: Maven属性。
查看“有效的POM”可能也会有所帮助。例如,如果您想知道路径是什么${project.build.sourceDirectory}
您会在有效的POM中找到相关的XML,例如:
<project>
<build>
<sourceDirectory>/my/path</sourceDirectory>
也很有帮助-您可以通过在mvn help:evaluate
与POM相同的目录中执行while 的命令行来实时评估属性。
我认为最好看的地方是Super POM。
例如,在撰写本文时,链接的参考文献显示了第32-48行之间的某些属性。
对此的解释是遵循XPath作为.
分隔属性。
因此,例如:
${project.build.testOutputDirectory}
== ${project.build.directory}/test-classes
和:
${project.build.directory}
== ${project.basedir}/target
结合起来,我们发现:
${project.build.testOutputDirectory}
== ${project.basedir}/target/test-classes
(要引用资源目录,请参阅此stackoverflow问题)
<project>
<modelVersion>4.0.0</modelVersion>
.
.
.
<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
.
.
.
</build>
.
.
.
</project>
我已经厌倦了看到此页面,其中包含已经失效的Codehaus页面的过时引用,因此我在Maven用户邮件列表中询问并获得了更多最新答案。
我想说的是,我上面的链接中包含的最好的(也是最权威的)答案是HervéBOUTEMY做出的贡献:
这是核心参考:http : //maven.apache.org/ref/3-LATEST/maven-model-builder/
它没有解释可以在POM或设置中找到的所有内容,因为有太多可用信息,但它指向POM和设置描述符,并解释了不是POM或设置的所有内容
该链接显示了如何列出所有活动属性:http : //skillshared.blogspot.co.uk/2012/11/how-to-list-down-all-maven-available.html
总之,将以下插件定义添加到您的POM中,然后运行mvn install
:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>install</phase>
<configuration>
<target>
<echoproperties />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
${...}
)