Maven:Maven属性值概述



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

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

作为一种变通方法,将其添加到项目的pom.xml:中的<plugins> ... </plugins>部分

<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

maven帮助插件可以随心所欲,只需用-Dexpression=project.properties调用它,这将打印有效pom的属性标签。

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.1.0:evaluate -Dexpression=project.properties -q -DforceStdout

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

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传递给它的所有属性。我觉得这个列表很完整。

实际上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>

最新更新