2012-09-12 23 views
9

He tratado de agregar un objetivo a mi ciclo de vida maven con la siguiente parte de pom. Definí un nuevo complemento y lo configuré con la fase y ejecuté la información.¿Por qué mi plugin Maven no se ejecuta en el ciclo de vida de compilación?

<build> 
    <pluginManagement> 
     <plugins>     
      <plugin> 
       <groupId>org.apache.openjpa</groupId> 
       <artifactId>openjpa-maven-plugin</artifactId> 
       <version>2.2.0</version> 
       <configuration> 
       <includes>**/entity/*.class</includes> 
       <addDefaultConstructor>true</addDefaultConstructor> 
       <connectionDriverName>com.ibm.db2.jcc.DB2Driver</connectionDriverName> 
         <enforcePropertyRestrictions>true</enforcePropertyRestrictions> 
         <sqlFile>${project.build.directory}/database.sql</sqlFile> 
        </configuration> 
        <executions> 
         <execution> 
          <id>sql</id> 
          <phase>generate-resources</phase> 
          <goals> 
           <goal>sql</goal> 
          </goals> 
         </execution> 
         <execution> 
          <id>enhancer</id> 
          <phase>process-classes</phase> 
          <goals> 
           <goal>enhance</goal> 
          </goals> 
         </execution> 
        </executions> 
        <dependencies> 
         <dependency> 
          <groupId>org.apache.openjpa</groupId> 
          <artifactId>openjpa</artifactId> 

          <version>2.1.1</version> 
         </dependency> 
        </dependencies> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 

Luego ejecutar experto con mvn:install Pero el plugin no se ejecuta?

+0

@ Pascal-thivent alguna idea? – Kayser

+0

por defecto, el mojo sql está vinculado a la fase de "clases de proceso". tal vez ese objetivo no funciona porque intenta ejecutarlo demasiado temprano en el ciclo de vida de compilación? – wemu

+0

Simplemente experimente un importante problema mientras intenta hacer funcionar un complemento. Había sido definido dos veces y la segunda definición anulaba la primera. – doc

Respuesta

16

Asegúrese de que existe una dependencia en el complemento y que el complemento está en build/plugin no en build/pluginmanagement/plugin.

intento con algo como esto:

<dependencies> 
    <dependency> 
     <groupId>org.apache.openjpa</groupId> 
     <artifactId>openjpa</artifactId> 
     <version>2.1.1</version> 
    </dependency> 
</dependencies> 

<build> 
    <pluginManagement> 
     <plugins>     
      <plugin> 
       <groupId>org.apache.openjpa</groupId> 
       <artifactId>openjpa-maven-plugin</artifactId> 
       <version>2.2.0</version> 
       <configuration> 
        <includes>**/entity/*.class</includes> 
        <addDefaultConstructor>true</addDefaultConstructor> 
        <connectionDriverName>com.ibm.db2.jcc.DB2Driver</connectionDriverName> 
        <enforcePropertyRestrictions>true</enforcePropertyRestrictions> 
        <sqlFile>${project.build.directory}/database.sql</sqlFile> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.openjpa</groupId> 
      <artifactId>openjpa-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>sql</id> 
        <phase>generate-resources</phase> 
        <goals> 
         <goal>sql</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>enhancer</id> 
        <phase>process-classes</phase> 
        <goals> 
         <goal>enhance</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
+0

No, no funciona. – Kayser

+0

Debo pedir disculpas. Me perdí la segunda parte. Lo intenté ahora. Todo funciona como se esperaba – Kayser

+0

contento de que esté ordenado ahora. – Farid

9

pluginManagement se supone que configurar plug-in, que se invoca en la línea de comandos.

Si desea enlazar plugin para alguna fase de ejecución - sólo tiene que mover en la sección ficios> Plugins de su pom.xml

Cuestiones relacionadas