Из сценария оболочки mvn
:
# -----------------------------------------------------------------------------
# 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 с аргументами, которые вам нравятся (по моему опыту, скрипты более надежны, чем псевдонимы).Кроме того, недавно я обнаружил, что версии Java более поздней, чем 8, имеют ... интересные проблемы ... поэтому мне действительно нужно иметь команды mvn8
, mvn11
(и, возможно, больше).
ЕщеПодход, который я только недавно начал использовать, - это оболочка 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".