2016-08-25 4 views
0

Ich habe einen Eltern Aggregator POM mit mehreren Modulen. Ich habe eine build/pluginManagement im Elternteil, da die Plugin-Ausführung für jedes Untermodul gleich ist.Wie überspringen Maven Plugin Eltern Pom Ausführung?

Wenn ich in jedem Untermodul (mvn package) ausführen, funktioniert es gut. Wenn ich in der übergeordneten ausführen: mvn package -Pmytest, möchte ich Plugin Ausführung in der übergeordneten Modul überspringen, so fügte ich hinzu:

<plugin> 
     <groupId>org.wildfly.plugins</groupId> 
     <artifactId>wildfly-maven-plugin</artifactId> 
     <configuration> 
      <skip>true</skip> 
     </configuration> 
    </plugin> 

Allerdings ist es nicht funktioniert.

Eltern pom.xml:

<project 
    xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.xyz.jboss.config</groupId> 
    <artifactId>jboss-config</artifactId> 
    <packaging>pom</packaging> 
    <version>1.2-SNAPSHOT</version> 
    <name>jboss-config</name> 
    <url>http://maven.apache.org</url> 

    <profiles> 
     <profile> 
      <id>mytest</id> 
      <modules> 
       <module>jboss-system-properties</module> 
       <module>jboss-security</module> 
      </modules> 
     </profile> 
    </profiles> 
    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>process-package</id> 
          <phase>package</phase> 
          <goals> 
           <goal>copy-resources</goal> 
          </goals> 
          <configuration> 
           <outputDirectory>${basedir}/processed/scripts</outputDirectory> 
           <resources> 
            <resource> 
             <directory>${basedir}/src/main/resources/scripts</directory> 
             <filtering>true</filtering> 
            </resource> 
           </resources> 
          </configuration> 
         </execution> 
         <execution> 
          <id>process-clean</id> 
          <phase>clean</phase> 
          <goals> 
           <goal>copy-resources</goal> 
          </goals> 
          <configuration> 
           <outputDirectory>${basedir}/processed/scripts</outputDirectory> 
           <resources> 
            <resource> 
             <directory>${basedir}/src/main/resources/scripts</directory> 
             <filtering>true</filtering> 
            </resource> 
           </resources> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <groupId>org.wildfly.plugins</groupId> 
        <artifactId>wildfly-maven-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>add-${project.artifactId}</id> 
          <phase>package</phase> 
          <goals> 
           <goal>execute-commands</goal> 
          </goals> 
          <configuration> 
           <execute-commands> 
            <scripts> 
             <script>${basedir}/processed/scripts/add-${project.artifactId}.cli</script> 
            </scripts> 
           </execute-commands> 
          </configuration> 
         </execution> 
         <execution> 
          <id>remove-${project.artifactId}</id> 
          <phase>clean</phase> 
          <goals> 
           <goal>execute-commands</goal> 
          </goals> 
          <configuration> 
           <execute-commands> 
            <scripts> 
             <script>${basedir}/processed/scripts/remove-${project.artifactId}.cli</script> 
            </scripts> 
           </execute-commands> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </pluginManagement> 

     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-resources-plugin</artifactId> 
       <configuration> 
        <skip>true</skip> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.wildfly.plugins</groupId> 
       <artifactId>wildfly-maven-plugin</artifactId> 
       <configuration> 
        <skip>true</skip> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Kinder pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>com.xyz.jboss.config</groupId> 
     <artifactId>jboss-config</artifactId> 
     <version>1.2-SNAPSHOT</version> 
    </parent> 
    <artifactId>jboss-system-properties</artifactId> 
    <packaging>ear</packaging> 
    <name>jboss-system-properties</name> 
    <url>http://maven.apache.org</url> 
</project> 

Ich erhalte eine Datei nicht gefunden wurde. Die Datei soll hier nicht existieren. Das Problem ist, dass die Ausführung des übergeordneten Moduls nicht übersprungen wird.

[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] jboss-config ....................................... FAILURE [ 20.238 s] 
[INFO] jboss-system-properties ............................ SKIPPED 
[INFO] jboss-security ..................................... SKIPPED 
[INFO] ------------------------------------------------------------------------ 

[ERROR] Failed to execute goal org.wildfly.plugins:wildfly-maven-plugin:1.0.2.Final: 
    execute-commands (add-jboss-config) on project jboss-config: 
    Execution add-jboss-config of goal org.wildfly.plugins:wildfly-maven-plugin:1.0.2.Final:execute-commands failed: 
    Failed to process file 'H:\projects\xyz\jboss\trunk\jboss-configuration\processed\scripts\add-jboss-config.cli': 
    H:\projects\xyz\jboss\trunk\jboss-configuration\processed\scripts\add-jboss-config.cli 
    (The system cannot find the path specified) 

Antwort

1

Ich habe das Problem gefunden. Wenn die Ausführung ID parametriert, in meinem Fall:

<plugin> 
     <groupId>org.wildfly.plugins</groupId> 
     <artifactId>wildfly-maven-plugin</artifactId> 
     <executions> 
      <execution> 
       <id>add-${project.artifactId}</id> 
... 
... 
     <executions> 
      <execution> 
       <id>remove-${project.artifactId}</id> 
... 
... 

Plugin Ausführung zu überspringen, dann würden Sie explizit müssen die Ausführung ID und Phase angeben:

 <plugin> 
      <groupId>org.wildfly.plugins</groupId> 
      <artifactId>wildfly-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>add-jboss-config</id> 
        <phase/> 
       </execution> 
       <execution> 
        <id>remove-jboss-config</id> 
        <phase/> 
       </execution> 
      </executions> 
      <configuration> 
       <skip>true</skip> 
      </configuration> 
     </plugin> 

Nun ist es die Eltern überspringt, führt in allen Kindermodulen aus, und ich habe nur einen Platz für die Plugin-Konfiguration.

Hinweis: Ich habe versucht, statische Ausführungs-IDs zu verwenden, aber es hat den Nebeneffekt, die Ausführung in den untergeordneten Modulen zu überspringen. Ich bin mir auch nicht sicher, ob all diese Probleme nur in Wildfly-Maven-Plugin sind.

Verwandte Themen