我知道有一个所有预定义的Maven属性的列表(比如project.build.sourceEncoding或project.build.sourceDirectory)。我看过一次名单,但就是找不到了。
project.build.sourceEncoding
project.build.sourceDirectory
vhipe2zx1#
你的意思是这个?https://web.archive.org/web/20150520200505/https://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide我还将其内容移至GitHub回购:https://github.com/cko/predefined_maven_properties/blob/master/README.md
xdnvmnnf2#
看看免费在线图书Maven: The Complete Reference的section 9.2.: Maven Properties。
t0ybt7op3#
看看“有效的POM”可能也会有所帮助。例如,如果您想知道${project.build.sourceDirectory}的路径是什么您将在有效的POM中找到相关的XML,例如:<project><build><sourceDirectory>/my/path</sourceDirectory>这也很有帮助--您可以在与POM相同的目录中通过命令行执行mvn help:evaluate对属性进行实时评估。
${project.build.sourceDirectory}
<project>
<build>
<sourceDirectory>/my/path</sourceDirectory>
mvn help:evaluate
szqfcxe24#
我认为最好的地方是超级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(要参考资源目录,请参阅this stackoverflow question)
.
${project.build.testOutputDirectory}
${project.build.directory}/test-classes
${project.build.directory}
${project.basedir}/target
${project.basedir}/target/test-classes
<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>
voj3qocg5#
我厌倦了看到这个页面,其中包含了对已不存在的Codehaus页面的陈旧引用,所以我在Maven Users mailing list上询问了一下,得到了一些更新的答案。我想说,我上面的链接中包含的最好(也是最权威的)答案是埃尔韦·布特米贡献的答案:以下是核心参考:http://maven.apache.org/ref/3-LATEST/maven-model-builder/它没有解释在POM或设置中可以找到的所有内容,因为有太多可用信息,但它指向POM和设置描述符,并解释POM或设置以外的所有内容
lkaoscv76#
此链接显示如何列出所有活动属性:http://skillshared.blogspot.co.uk/2012/11/how-to-list-down-all-maven-available.html总之,将以下插件定义添加到您的POM中,然后运行mvn install:
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>
zlhcx6iw7#
这些答案中的大多数都提供了旧链接,依赖于非权威书籍,或者参考了某人的个人收藏。即使在一个答案中引用的http://maven.apache.org/ref/3-LATEST/maven-model-builder/也不包含完整的列表。例如,尝试在页面中搜索project.build.directory。不幸的是,似乎没有一个权威的声明列表,但我相信有一个关于编程访问的权威文档:org.apache.maven.model.Model的API参考。例如,要发现和/或了解project.build.directory:1.Model.getBuild()1.Build1.Build.getDirectory()获取放置构建生成的所有文件的目录。默认值为target。Maven Model和Maven Project Descriptor也很有用。如果有人有时间,他们可以通过编程方式遍历最小的org.apache.maven.model.Model,以至少发现默认属性并生成一些HTML/Markdown参考页面。(我意识到动态地,模型在基于项目的构建时将是唯一的。)
project.build.directory
org.apache.maven.model.Model
Model.getBuild()
Build
Build.getDirectory()
target
7条答案
按热度按时间vhipe2zx1#
你的意思是这个?
https://web.archive.org/web/20150520200505/https://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide
我还将其内容移至GitHub回购:
https://github.com/cko/predefined_maven_properties/blob/master/README.md
xdnvmnnf2#
看看免费在线图书Maven: The Complete Reference的section 9.2.: Maven Properties。
t0ybt7op3#
看看“有效的POM”可能也会有所帮助。例如,如果您想知道
${project.build.sourceDirectory}
的路径是什么您将在有效的POM中找到相关的XML,例如:
<project>
<build>
<sourceDirectory>/my/path</sourceDirectory>
这也很有帮助--您可以在与POM相同的目录中通过命令行执行
mvn help:evaluate
对属性进行实时评估。szqfcxe24#
我认为最好的地方是超级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
(要参考资源目录,请参阅this stackoverflow question)
voj3qocg5#
我厌倦了看到这个页面,其中包含了对已不存在的Codehaus页面的陈旧引用,所以我在Maven Users mailing list上询问了一下,得到了一些更新的答案。
我想说,我上面的链接中包含的最好(也是最权威的)答案是埃尔韦·布特米贡献的答案:
以下是核心参考:http://maven.apache.org/ref/3-LATEST/maven-model-builder/
它没有解释在POM或设置中可以找到的所有内容,因为有太多可用信息,但它指向POM和设置描述符,并解释POM或设置以外的所有内容
lkaoscv76#
此链接显示如何列出所有活动属性:http://skillshared.blogspot.co.uk/2012/11/how-to-list-down-all-maven-available.html
总之,将以下插件定义添加到您的POM中,然后运行
mvn install
:zlhcx6iw7#
这些答案中的大多数都提供了旧链接,依赖于非权威书籍,或者参考了某人的个人收藏。即使在一个答案中引用的http://maven.apache.org/ref/3-LATEST/maven-model-builder/也不包含完整的列表。例如,尝试在页面中搜索
project.build.directory
。不幸的是,似乎没有一个权威的声明列表,但我相信有一个关于编程访问的权威文档:
org.apache.maven.model.Model
的API参考。例如,要发现和/或了解project.build.directory
:1.
Model.getBuild()
1.
Build
1.
Build.getDirectory()
获取放置构建生成的所有文件的目录。默认值为
target
。Maven Model和Maven Project Descriptor也很有用。
如果有人有时间,他们可以通过编程方式遍历最小的
org.apache.maven.model.Model
,以至少发现默认属性并生成一些HTML/Markdown参考页面。(我意识到动态地,模型在基于项目的构建时将是唯一的。)