Как распечатать фактические MAVEN_OPTIONS, которые используются?
Есть ли способ заставить maven выводить значение переменных среды и maven во время сборки? Это было бы очень полезно для отладки вещей, когда они идут не так.
3 ответа
Вы можете использовать Maven Help Plugin и help:system
цель, так что ваш пом будет:
<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
Это потребует некоторых изменений в пом.
<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
опции
Пример командной строки:
mvn clean compile --debug
Вы увидите информацию об окружающей среде на своей консоли.
Добавьте этот плагин в разделе плагинов в pom.xml и используйте 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>
Это напечатает ваше значение переменной env.
Добавление опции к уже предоставленным ответам.
Существуют различные способы передачи параметров JVM в mvn согласно https://maven.apache.org/configure.html, вы можете сделать это с помощью переменной среды (MAVEN_OPTS
) или файл (${maven.projectBasedir}/.mvn/jvm.config
).
Я хотел увидеть, что было подобрано, и сделал это, запустив сборку, а затем следил за листингом ps, чтобы подтвердить, что было подобрано, например
ps -ef | grep SomeOption