gpt4 book ai didi

java - Maven 通过 MAVEN_OPTS 指定设置文件位置

转载 作者:行者123 更新时间:2023-11-30 01:57:15 29 4
gpt4 key购买 nike

我需要在特定位置使用带有设置文件的 maven,通常您可以提供 MAVEN_OPTS env 变量,但它们会传递到 JVM,因此将产生以下结果:

$ MAVEN_OPTS="-s /settings.xml"
$ mvn clean
Unrecognized option: -s
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

我搜索了很多,但发现了两个键,org.apache.maven.user-settingsorg.apache.maven.global-settings,解释为here但是看起来它只适用于 Maven 2。将 mvn 别名为 mvn -s/settings.xml 可能会起作用,但我不喜欢它。

最佳答案

来自 mvn shell 脚本:

# -----------------------------------------------------------------------------
# Apache Maven Startup Script
#
# Environment Variable Prerequisites
#
# JAVA_HOME Must point at your Java Development Kit installation.
# MAVEN_OPTS (Optional) Java runtime options used when Maven is executed.
# MAVEN_SKIP_RC (Optional) Flag to disable loading of mavenrc files.
# -----------------------------------------------------------------------------

因此 MAVEN_OPTS 包含 JVM 参数,而不是 Maven 参数(这与指示 JVM 不喜欢您的参数的错误消息一致)。

实际调用是

exec "$JAVACMD" \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath "${CLASSWORLDS_JAR}" \
"-Dclassworlds.conf=${MAVEN_HOME}/bin/m2.conf" \
"-Dmaven.home=${MAVEN_HOME}" \
"-Dlibrary.jansi.path=${MAVEN_HOME}/lib/jansi-native" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${CLASSWORLDS_LAUNCHER} "$@"

所以没地方放。因此,我建议您自己编写? mvn 脚本依次使用您喜欢的参数调用真正的 Maven 命令(根据我的经验,脚本比别名更强大)。另外,我最近发现自己高于 8 的 Java 版本有……有趣的问题……所以我真的需要 mvn8mvn11 (也许还有更多)无论如何命令。

我最近才开始使用的另一种方法是 Maven 包装器 ( https://github.com/takari/maven-wrapper ),其中将 ./mvnw 命令放置在您的项目中,然后在需要时下载 Maven。这非常有用。开始使用

mvn -N io.takari:maven:wrapper

之后./mvnw应该可以直接使用,而不是mvn。这里有趣的部分是生成的 Maven 命令看起来像

exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"

并且 MAVEN_CONFIG 未在脚本的早期设置。因此,对于 mvnw,您可以将 MAVEN_CONFIG 设置为“-s/settings.xml”字符串。

关于java - Maven 通过 MAVEN_OPTS 指定设置文件位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53990100/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com