He intentado añadir un objetivo para mi ciclo de vida de maven con el siguiente pom parte. He definido un nuevo plugin y configurarlo con la fase y ejecutar la informació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>

A continuación, ejecutar maven con mvn:install Pero el plugin no se ejecuta?

  • Alguna Idea?
  • por defecto, el sql mojo está vinculado al «proceso-clases de fase». tal vez esa meta no funciona porque intenta ejecutar es demasiado temprano en el ciclo de vida?
  • Sólo la experiencia de una de las principales gotcha, mientras que tratando de conseguir un trabajo de plugin. Había sido definido dos veces y la segunda definición anuló la primera.
InformationsquelleAutor Kayser | 2012-09-12

2 Comentarios

  1. 20

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

    Probar 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>
    • No, no funciona.
    • Debo pedir disculpas. Me perdí la segunda parte. Lo he probado ahora. Todo funciona como se espera
    • me alegro de que se ordena ahora.
    • Parece extraño para definir una dependencia (tiempo de ejecución) en el plugin… Con esta configuración no vas a conseguir el plugin de maven para ser incluido en su último artefacto (WEB-INF/lib/ de una guerra, o como necesaria de las naciones unidas una dependencia transitiva de un frasco) ?
  2. 10

    pluginManagement se supone que es para configurar el plugin, que se invoca en la línea de comandos.

    Si quieres enlazar plugin para algunos la fase de ejecución – simplemente lo traslada a construir->sección de plugins de tu pom.xml

Dejar respuesta

Please enter your comment!
Please enter your name here