Я пытаюсь использовать exec-maven-plugin с целью java
. Тем не менее, я смущает разница между этими двумя вариантами:Разница между exec и maven-plugin между аргументами и commandlineArgs
- аргументы
- commandlineArgs
Если я пытаюсь с помощью аргументов, вызов мой класс Java не удается.
Подпись моего класса называют это:
public static void main(String[] args)
{
VeracodeParser parser = new VeracodeParser();
parser.parse(args);
}
Мой ПОМ:
<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 о том, что мне не хватает моего -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>
.
Может ли кто-нибудь объяснить мне разницу между двумя и/или если/как я могу использовать параметр arguments
?
Похоже, что именно это. Я собирался опубликовать ответ сам после того, как я начал копаться в исходном коде и запускать некоторые тесты. –