2012-10-10 34 views

Respuesta

16

Otra solución que difiere completamente de mi otra respuesta sería usar el exec-maven-plugin con el objetivo exec:exec.

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <version>1.2.1</version> 
      <configuration> 
       <executable>mvn</executable> 
       <arguments> 
        <argument>clean</argument> 
        <argument>compile</argument> 
        <argument>hibernate3:hbm2java</argument> 
       </arguments> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Y a continuación, sólo ejecuta la siguiente manera:

mvn exec:exec 

Al hacerlo de esta manera no va a cambiar cualquiera de los otros plugins y no está vinculada a ningún fases tampoco.

+0

Yo quería tener lo mismo, y realmente estaba pensando en poner en su lugar un makefile. Pero pensé ... debería haber una solución maven ... ¿entonces estás diciendo que no está ahí? Como ejecutivo, si lo entiendo directamente del nombre y el hecho de que hay ¡se "ejecutará"! ... así que no es realmente fácil administrar los pasos, las dependencias y los códigos de retorno ... ¿Es realmente el caso con maven? No puedo encadenar objetivos? Quiero decir con un poco de control? – mariotti

+0

Lo busqué en Google nuevamente y encontré este documento 2005: http://docs.codehaus.org/display/MAVEN/Multiple+Goal+Declaration – mariotti

+0

¡Exactamente la solución que estaba buscando! Nota: la versión 1.5.0 está rota en windows. Ver - https://github.com/mojohaus/exec-maven-plugin/issues/42 Así que evita eso si quieres usarlo allí. Utilice la versión anterior 1.4.0 o una versión actualizada> 1.5.0 cuando lanzan uno – codewing

5

Según el sitio Hibernate3 Maven Plugin, el objetivo hbm2java se une a la fase generate-sources de forma predeterminada.

Y normalmente no tendrá que limpiar el proyecto, ejecuta compilaciones incrementales.

De todas formas, si agrega el maven-clean-plugin y el hibernate3-maven-plugin en su pom.xml lo tendrá todo en un solo comando.

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-clean-plugin</artifactId> 
      <version>2.5</version> 
      <executions> 
       <execution> 
        <id>auto-clean</id> 
        <phase>initialize</phase> 
        <goals> 
         <goal>clean</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>hibernate3-maven-plugin</artifactId> 
      <version>2.2</version> 
      <executions> 
       <execution> 
        <id>hbm2java</id> 
        <goals> 
         <goal>hbm2java</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

Si desea que el hibernate3-maven-plugin a ejecutar después de compile luego simplemente fijado el objetivo de compile ya que siempre se ejecutará después de las fases predeterminadas.

Así que para ejecutar todos sus objetivos con un solo comando basta con ejecutar:

mvn compile 

Y si por alguna razón no desea limpiar, tecleamos:

mvn compile -Dclean.skip 
+0

Y si no desea que siempre ejecute 'hbm2java', coloque ese (y tal vez el complemento' clean') dentro de un [perfil] (http://www.sonatype.com/books/mvnref- book/reference/profiles-sect-what.html), es decir 'mvn compile -Phbm' – noahlz

Cuestiones relacionadas