44

我想找出适用于某些 Maven 项目的所有Maven 属性的值。
mvn help:system列出 OS 环境变量和 JVM 系统属性,但没有 Maven 属性。
mvn help:evaluate只能在交互模式下工作,这意味着我必须键入一个 Maven 属性(例如${project.build.outputDirectory})来获取该属性的值。

我正在寻找一种获取所有 Maven 属性及其值的完整列表的方法。

4

6 回答 6

61

作为一种解决方法,将其添加到<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.outputDirectorybasedirsettings.localRepository

于 2012-09-12T13:28:37.220 回答
6

不确定是否有帮助,但我在尝试做同样的事情时发现了这一点:

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}'
于 2019-05-06T14:30:31.370 回答
1

我不知道如何“正式”获得它们,但这是一种解决方法。添加maven-antrun-plugin到您的项目并运行mvn test -X. 该插件将显示从 Maven 传递给它的所有属性。这份清单对我来说看起来很完整。

于 2012-09-10T10:19:44.913 回答
1

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
于 2022-01-12T11:03:31.127 回答
0

实际上 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>
于 2016-06-02T17:16:31.077 回答
-2

有同样的问题。通过 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>
于 2015-10-28T16:29:31.917 回答