Переопределение командной строки свойства списка / массива Maven

Есть ли способ передать свойство списка / массива Maven (например, необязательный параметр аргументов maven-exec-plugin), используя системный подход?

Я знаю, что необязательный параметр arguments может быть переопределен переменной среды exec.args, а необязательный параметр commandlineArgs может быть переопределен системным свойством exec.args. Но что я хотел бы узнать, существует ли общий способ командной строки Maven для переопределения таких свойств списка / массива конфигураций плагинов с использованием системных свойств, когда речь идет о других плагинах, имеющих такие свойства конфигурации списка / массива?

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>execute somebinary</id>
            <phase>compile</phase>
            <goals>
                <goal>exec</goal>
            </goals>
            <configuration>
                <executable>somebinary</executable>
                <arguments>
                    <argument>arg1</argument>
                    <argument>arg2</argument>
                </arguments>
            </configuration>
        </execution>
    </executions>
</plugin>

Я ожидаю сделать это с помощью команды вроде:

mvn exec:exec -Dexec.arguments=arg1,arg2

Но это не работает, как я ожидаю.

0 ответов

Просто заключите список параметров в двойные кавычки "". Пример: pom.mxl

<project .....>

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.logicbig.example</groupId>
    <artifactId>mvn-exec-java-example</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

основной класс

public class MyMainClass {
  public static void main(String[] args) {
      Arrays.stream(args).forEach(System.out::println);
  }
}

аргументы командной строки

mvn -q clean compile exec:java -Dexec.mainClass="com.logicbig.example.MyMainClass" -Dexec.args="myArg1 myArg2"
Другие вопросы по тегам