【发布时间】:2010-07-02 16:11:25
【问题描述】:
有没有办法让 maven 在构建期间输出环境和 maven 变量的值?这对于在出错时进行调试非常有用。
【问题讨论】:
-
注意正确的环境变量名是
$MAVEN_OPTS:maven.apache.org/configure.html#maven_opts-environment-variable
标签: maven environment-variables
有没有办法让 maven 在构建期间输出环境和 maven 变量的值?这对于在出错时进行调试非常有用。
【问题讨论】:
$MAVEN_OPTS:maven.apache.org/configure.html#maven_opts-environment-variable
标签: maven environment-variables
您可以使用Maven Help Plugin 和help:system 目标,因此您的pom 将是:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>testMavenOpt</groupId>
<artifactId>testMavenOpt</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>testMavenOpt</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-help-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
</project>
你应该执行mvn help:system
【讨论】:
MAVEN_OPTS 而不是 MAVEN_OPTIONS 或 MAVEN_OPT。如果它不存在,那么您的构建正在使用默认值 javac 使用。
这需要对 pom.xml 进行一些更改。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>[MAVEN_OPTIONS]${env.MAVEN_OPTIONS}</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
当然,运行起来可能最简单
echo $MAVEN_OPTS
【讨论】:
使用-X 或--debug 选项运行您的maven
命令行示例:
mvn clean compile --debug
您会在控制台上看到环境信息。
【讨论】:
在 pom.xml 的 plugins 部分下添加这个插件并使用 mvn validate :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Displaying value of system variables</echo>
<echo> ${env.YOUR_ENVIRONMENT_VARIABLE_NAME}</echo>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
这将打印您的环境变量值。
【讨论】:
为已经提供的答案添加一个选项。
根据https://maven.apache.org/configure.html,有多种方法可以将 JVM 选项传递给 mvn,您可以使用环境变量 (MAVEN_OPTS) 或文件 (${maven.projectBasedir}/.mvn/jvm.config) 来实现。
我想看看哪个被拾取,并且通过开始构建然后跟随一个 ps 列表来断言拾取了什么,例如
ps -ef | grep SomeOption
【讨论】: