exec-maven-plugin arguments 和 commandlineArgs 之间的区别
exec-maven-plugin difference between arguments and commandlineArgs
我正在尝试使用具有 java
目标的 exec-maven-plugin。但是,我对这两个选项之间的区别感到困惑:
- 参数
- 命令行参数
如果我尝试使用参数,对我的 java class 的调用会失败。
我的class被调用的签名是:
public static void main(String[] args)
{
VeracodeParser parser = new VeracodeParser();
parser.parse(args);
}
我的pom:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>Zip packaging and deployment</id>
<phase>process-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.veracode.apiwrapper.cli.VeracodeCommand</mainClass>
<arguments>
<argument>-action GetAppList</argument>
<argument>-vuser ${veracode.username}</argument>
<argument>-vpassword ${veracode.password}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
但是,我从 VeracodeCommand class 收到错误消息,表明我缺少 -action
、-vuser
和 -vpassword
参数。
然而,当我将其切换为使用单个字符串 commandlineArgs
参数时,它按预期工作:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>Zip packaging and deployment</id>
<phase>process-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.veracode.apiwrapper.cli.VeracodeCommand</mainClass>
<commandlineArgs>-action UploadFile -vuser ${veracode.username} -vpassword ${veracode.password} -appid ${veracode.appId} -filepath ${project.build.directory}/dependency/sbip_ear_pres.ear</commandlineArgs>
</configuration>
</execution>
</executions>
</plugin>
问题是 <commandlineArgs>
会变得笨重。这就是为什么我更喜欢使用 <arguments>
参数。
谁能给我解释一下两者的区别and/orif/how我可以使用arguments
参数吗?
也许你必须以这种方式单独提供你的论点?
根据 Maven - pass argument to use in exec-maven-plugin
中的 post
<arguments>
<argument>-action</argument>
<argument>GetAppList</argument>
<argument>-vuser</argument>
<argument>${veracode.username}</argument>
<argument>-vpassword</argument>
<argument>${veracode.password}</argument>
</arguments>
我正在尝试使用具有 java
目标的 exec-maven-plugin。但是,我对这两个选项之间的区别感到困惑:
- 参数
- 命令行参数
如果我尝试使用参数,对我的 java class 的调用会失败。
我的class被调用的签名是:
public static void main(String[] args)
{
VeracodeParser parser = new VeracodeParser();
parser.parse(args);
}
我的pom:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>Zip packaging and deployment</id>
<phase>process-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.veracode.apiwrapper.cli.VeracodeCommand</mainClass>
<arguments>
<argument>-action GetAppList</argument>
<argument>-vuser ${veracode.username}</argument>
<argument>-vpassword ${veracode.password}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
但是,我从 VeracodeCommand class 收到错误消息,表明我缺少 -action
、-vuser
和 -vpassword
参数。
然而,当我将其切换为使用单个字符串 commandlineArgs
参数时,它按预期工作:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<executions>
<execution>
<id>Zip packaging and deployment</id>
<phase>process-sources</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.veracode.apiwrapper.cli.VeracodeCommand</mainClass>
<commandlineArgs>-action UploadFile -vuser ${veracode.username} -vpassword ${veracode.password} -appid ${veracode.appId} -filepath ${project.build.directory}/dependency/sbip_ear_pres.ear</commandlineArgs>
</configuration>
</execution>
</executions>
</plugin>
问题是 <commandlineArgs>
会变得笨重。这就是为什么我更喜欢使用 <arguments>
参数。
谁能给我解释一下两者的区别and/orif/how我可以使用arguments
参数吗?
也许你必须以这种方式单独提供你的论点? 根据 Maven - pass argument to use in exec-maven-plugin
中的 post <arguments>
<argument>-action</argument>
<argument>GetAppList</argument>
<argument>-vuser</argument>
<argument>${veracode.username}</argument>
<argument>-vpassword</argument>
<argument>${veracode.password}</argument>
</arguments>