【问题标题】:Maven list/array property command line overrideMaven 列表/数组属性命令行覆盖
【发布时间】:2019-11-27 21:41:11
【问题描述】:

有没有办法使用系统属性方法传递 Maven 列表/数组属性(例如 maven-exec-plugin arguments 可选参数)?

我知道 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

但它并没有像我预期的那样工作。

【问题讨论】:

    标签: maven command-line maven-exec-plugin


    【解决方案1】:

    只需将参数列表拉入双引号“”。 例子: 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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多