预定义Maven属性的列表在哪里

时间:2010-12-10 14:07:41

标签: maven

我知道有一个所有预定义Maven属性的列表(你知道像project.build.sourceEncodingproject.build.sourceDirectory)。我曾经看过这个清单,但我再也找不到了。

6 个答案:

答案 0 :(得分:119)

答案 1 :(得分:23)

答案 2 :(得分:21)

看看“有效的POM”可能也会有所帮助。例如,如果您想知道${project.build.sourceDirectory}

的路径是什么

您可以在有效的POM中找到相关的XML,例如:     <project>     <build>     <sourceDirectory>/my/path</sourceDirectory>

也很有帮助 - 您可以在与POM相同的目录中通过命令行执行mvn help:evaluate来对属性进行实时评估。

答案 3 :(得分:9)

我认为最好看的地方是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

(要引用资源目录,请参阅this stackoverflow question

<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>

答案 4 :(得分:5)

我已经厌倦了看到这个页面,它现在已经陈旧地引用了已解散的Codehaus页面,所以我在Maven Users mailing list上询问并获得了一些更新的答案。

我会说上面链接中包含的最好(也是最具权威性)的答案是由HervéBOUTEMY提供的答案:

  

这是核心参考:   http://maven.apache.org/ref/3-LATEST/maven-model-builder/

     

它没有解释在POM或设置中可以找到的所有内容,   因为有太多的信息,但它指向POM和   设置描述符并解释所有不是POM或   设置

答案 5 :(得分:1)

此链接显示如何列出所有活动属性: 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>