我想找出适用于某些 Maven 项目的所有Maven 属性的值。
mvn help:system
列出 OS 环境变量和 JVM 系统属性,但没有 Maven 属性。
mvn help:evaluate
只能在交互模式下工作,这意味着我必须键入一个 Maven 属性(例如${project.build.outputDirectory}
)来获取该属性的值。
我正在寻找一种获取所有 Maven 属性及其值的完整列表的方法。
我想找出适用于某些 Maven 项目的所有Maven 属性的值。
mvn help:system
列出 OS 环境变量和 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
。
不确定是否有帮助,但我在尝试做同样的事情时发现了这一点:
mvn com.github.ekryd.echo-maven-plugin:echo-maven-plugin:echo -Decho.message='${project.build.testOutputDirectory}'
从这里。
将以下内容添加到${user.home}/.m2/settings.xml
:
<pluginGroups>
<pluginGroup>com.github.ekryd.echo-maven-plugin</pluginGroup>
</pluginGroups>
该命令可以缩短为:
mvn echo:echo -Decho.message='${project.build.testOutputDirectory}'
我不知道如何“正式”获得它们,但这是一种解决方法。添加maven-antrun-plugin
到您的项目并运行mvn test -X
. 该插件将显示从 Maven 传递给它的所有属性。这份清单对我来说看起来很完整。
maven-help-plugin 做你想做的事,只需调用它-Dexpression=project.properties
就会打印出有效 pom 的属性标签。
tl;博士
mvn help:evaluate -Dexpression=project.properties
当您只想要属性输出而不是 Maven 输出时的奖励积分
mvn help:evaluate -Dexpression=project.properties -q -DforceStdout
或使用显式版本,因为-DforceStdout
从版本 3.1.0 开始工作
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.properties -q -DforceStdout
实际上 project.build.outputDirectory 在那里,但您需要在“编译”阶段执行,而不是在“验证”阶段执行。我想哪些属性可用也取决于特定插件的执行目标的当前阶段,在本例中为“maven-antrun-plugin”。
<!-- 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>
有同样的问题。通过 maven 更改了 findbugs 配置中的 timeout 和 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>