我想找出所有的Maven属性的值,也适用于一些Maven项目。
mvn help:system
列出的操作系统环境变量和JVM系统属性,但没有Maven的特性。
mvn help:evaluate
只能在交互模式,这意味着我必须键入一个Maven的特性(例如${project.build.outputDirectory}
)来获取属性的值。
我在寻找一种方式让所有的Maven属性及其值的完整列表。
我想找出所有的Maven属性的值,也适用于一些Maven项目。
mvn help:system
列出的操作系统环境变量和JVM系统属性,但没有Maven的特性。
mvn help:evaluate
只能在交互模式,这意味着我必须键入一个Maven的特性(例如${project.build.outputDirectory}
)来获取属性的值。
我在寻找一种方式让所有的Maven属性及其值的完整列表。
作为一种变通方法,将其添加到<plugins> ... </plugins>
项目的内部部分pom.xml
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echoproperties />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
现在执行mvn validate
。
在控制台上,带有前缀[echoproperties]
会有系统属性,包括那些由Maven的设定如的完整列表project.build.outputDirectory
, basedir
,和settings.localRepository
。
我不知道如何让他们“正式”,但这里是一个解决办法。 添加maven-antrun-plugin
到您的项目和运行mvn test -X
。 该插件会显示从Maven的传递给它的所有属性。 该列表看起来完整的我。
其实project.build.outputDirectory是有,但你需要在“编译”阶段,而不是在“验证”来执行。 我猜属性可什么也取决于特定插件的执行目标的当前阶段,在这种情况下,“Maven的antrun-插件”。
<!-- Ant Run Plugin for debugging pom.xml and calling ant tasks -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${ant.plugin.version}</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echoproperties/>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
不知道是否有帮助,但我发现这个试图做同样的事情时:
mvn com.github.ekryd.echo-maven-plugin:echo-maven-plugin:echo -Decho.message='${project.build.testOutputDirectory}'
从这里
有同样的问题。 基于Maven改变了FindBugs的配置超时和maxheap。
下面的固定对我来说:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<maxHeap>2048</maxHeap>
<timeout>1800000</timeout>
</configuration>
</plugin>