Выполнение exec-maven-плагина не является частью обычного процесса сборки и без наследования

#java #maven #build #maven-3 #maven-plugin

#java #maven #сборка #мавен-3 #maven-плагин #maven-3

Вопрос:

Я пытаюсь выполнить плагин maven вне обычного процесса сборки, это потому, что он должен выполняться как часть задания дженкинса только при слиянии с мастером. Об этом позаботится файл jenkins. Однако, чтобы гарантировать это, плагин не должен запускаться при запуске mvn clean install. То, как я это сделал сейчас, — это поместить этот плагин в pluginManagement, и я вызываю mvn exec:exec@goal когда я хочу запустить плагин.

Этот плагин следует запускать только один раз, на родительском уровне. Я установил для inherited значение false, но сборка по-прежнему завершается с этим сообщением об ошибке

 The parameter 'executable' is missing or invalid
  

после успешного выполнения на родительском уровне.
Вот как в настоящее время настроен мой плагин:

 <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>3.0.0</version>
           <inherited>false</inherited>
        <configuration>
           <param>${VID}</param>
           <param>${VKEY}</param>
           <param>${BUILD_NUMBER}</param>
           <executable>java</executable>
        </configuration>
           <executions>
              <execution>
                 <id>veracode</id>
                 <configuration>
                    <arguments>
                       <argument>-jar</argument>
                       <argument>${settings.localRepository}/com/veracode/vosp/api/wrappers/vosp-api-wrappers-java/20.7.7.0/vosp-api-wrappers-java-20.7.7.0.jar</argument>
                       <argument>-action</argument>
                       <argument>UploadAndScan</argument>
                       <argument>-vid</argument>
                       <argument>${VID}</argument>
                       <argument>-vkey</argument>
                       <argument>${VKEY}</argument>
                       <argument>-criticality</argument>
                       <argument>High</argument>
                       <argument>-createprofile</argument>
                       <argument>false</argument>
                       <argument>-createprofile</argument>
                       <argument>false</argument>
                       <argument>-version</argument>
                       <argument>${BUILD_NUMBER}</argument>
                       <argument>-appname</argument>
                       <argument>PULSE-DELIVERY</argument>
                       <argument>-sandboxname</argument>
                       <argument>proxy-standard</argument>
                       <argument>-filepath</argument>
                       <argument>proxy-service/target/lib</argument>
                    </arguments>
                    <classpathScope>run</classpathScope>
                    <includePluginDependencies>true</includePluginDependencies>
                 </configuration>
                 <goals>
                    <goal>exec</goal>
                 </goals>
              </execution>
           </executions>
        <dependencies>
           <dependency>
              <groupId>com.veracode.vosp.api.wrappers</groupId>
              <artifactId>vosp-api-wrappers-java</artifactId>
              <version>20.7.7.0</version>
           </dependency>
        </dependencies>
     </plugin>
  

Ответ №1:

Я решил это, установив для параметра skip значение strue во всех дочерних pom.

описание пропуска