2010-02-12 10 views
8

Actualizado a (con suerte) aclarar: Si se define un objetivo para ejecutarse durante una fase determinada, ¿es posible ejecutar el objetivo individual sin ejecutar todas las fases? En otras palabras, ¿sería posible ejecutar el objetivo antrun:run (que se define como parte de la fase de instalación a continuación) sin obtener dependencias, generar recursos, compilar, probar, empaquetar, etc.?¿Es posible seleccionar y ejecutar un objetivo específico ligado a una fase de maven?

Estoy usando el plugin antrun para crear un archivo zip durante la fase package y para eliminar y copiar algunos archivos durante la fase install. Entiendo cómo ejecutar objetivos de complemento maven único, por ejemplo: mvn antrun:run. Sin embargo, ¿hay alguna manera de ejecutar el objetivo de una ejecución específica? Algo como mvn antrun:run:execution-id, o mvn phase:antrun:run?

Básicamente, estaría bien si pudiera decirle a maven que no haga nada más que ejecutar las tareas ant definidas a continuación dentro de la fase de despliegue, por ejemplo. Es tedioso tener que esperar a que Maven pase por todas las fases solo para comprobar si las tareas ant en la fase de implementación están funcionando correctamente.

<executions> 
    <!-- create zip file --> 
    <execution> 
    <id>create-zip</id> 
    <phase>package</phase> 
    <configuration> 
     <tasks> 
    ...create zip... 
     </tasks> 
    </configuration> 
    <goals> 
     <goal>run</goal> 
    </goals> 
     </execution> 
    <!-- do some other stuff --> 
    <execution> 
    <id>copy-files</id> 
    <phase>install</phase> 
    <configuration> 
     <tasks> 
    ...delete some files, copy some files ... 
     </tasks> 
    </configuration> 
    <goals> 
     <goal>run</goal> 
    </goals> 
     </execution> 
    </executions> 
+0

Sí, es posible – ant

Respuesta

6

En otras palabras tendrían que ser posible ejecutar el objetivo antrun: run (que se define como parte de la fase de instalación a continuación) sin obtener dependencias, generar recursos, compilar, probar, empaquetar, etc.

No, no lo es. Si bien puede configurar un complemento (con una sección <configuration> bajo el elemento <plugin>) y llamar a la línea de comando, no puede invocar un juego de ejecución específico (y en consecuencia el <configuration> específico de un <execution>).

La única solución en su caso sería declarar el plugin antRun en un perfil, digamos my-profile, para duplicar la siguiente parte de la configuración para configurar el plugin en este perfil:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.3</version> 
    <configuration> 
    <tasks> 
     ... delete some files, copy some files ... 
    </tasks> 
    </configuration> 
</plugin> 

ya llamada con el perfil activo correcto:

mvn antrun:run -Pmy-profile 
0

Por ejemplo:

Cuando se ejecuta con JBoss experto, no se puede ver la salida de la consola de JBoss, pero necesito que se muestre, por lo que lo que hice es que escribió un archivo Java que lee en server.log (la salida de la consola del servidor) a medida que cambia para mostrar los cambios, por lo que parece que la consola jboss se está mostrando (un poco hack-ish pero funciona). Así que llegué al punto de responder a su pregunta, durante la prueba previa a la integración ejecuté un objetivo java que inicia mi programa java. Aquí es cómo, usando ejecutar plug-in, por supuesto:

<plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <version>1.1</version> 
       <executions> 
        <execution> 
         <id>console-start</id> 
         <phase>pre-integration-test</phase> 
         <goals> 
          <goal>java</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <mainClass>org.eclipse.console.Main</mainClass> 
       </configuration> 
      </plugin> 

Usted acaba de ejecutar la instalación y ejecuta durante la integración previa a la prueba, sin embargo, si lo que desea es ejecutar algo como Java, utilice el plugin ejecutar. Lo siento si la respuesta no es apropiada, que no tenía la paciencia de leer su pregunta en detalles, mis horas de trabajo son más .. aplausos

Cuestiones relacionadas