2015-06-29 4 views
1

Я пытаюсь использовать 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?

ответ

2

Возможно, вам необходимо предоставить свои аргументы таким образом, индивидуально? согласно сообщению в Maven - pass argument to use in exec-maven-plugin

<arguments> 
     <argument>-action</argument> 
     <argument>GetAppList</argument> 
     <argument>-vuser</argument> 
     <argument>${veracode.username}</argument> 
     <argument>-vpassword</argument> 
     <argument>${veracode.password}</argument> 
    </arguments> 
+0

Похоже, что именно это. Я собирался опубликовать ответ сам после того, как я начал копаться в исходном коде и запускать некоторые тесты. –

Смежные вопросы