2011-05-05 10 views
8

Estoy trabajando con Eclipse y Maven y ejecuto mi aplicación utilizando el plugin Maven jetty.Al usar maven embarcadero: ejecutar: ¿es posible desactivar el paso de compilación?

Me resulta algo irritante que Maven insista en volver a compilar mis archivos cada vez que ejecuto embarcadero: ejecutar. No es óptimo, ya que los archivos ya han sido compilados por Eclipse (y estoy escribiendo Scala que tiene un compilador (relativamente) lento).

Estoy usando perfiles y ejecuto mvn embarcadero: ejecute bajo mi perfil de 'desarrollo'.

Lo que quiero hacer es:

configurar el plugin embarcadero para que se salta la fase de compilación, mientras que se ejecuta bajo el perfil de desarrollo.

He mirado en la documentación experto ciclo de vida, pero no he encontrado ninguna información sobre una bandera 'skip.compile' o parámetro de configuración.

También intenté configurar Maven como tal en la vana suposición de que detendría la recompilación en el arranque de maven-jetty-plugin.

Estaba equivocado, no funcionó. Pero lo que pensé es que tal vez el problema sea el compilador de Scala. Tal vez ignora las cosas de compilación.

desarrollo experto compilador-plugin default-testCompile prueba de compilar default-compilar compilar 1,6 1,6 falsa org.mortbay.jetty embarcadero-experto-plugin 7.2.2.v20101205 cierto desarrollo

Actualización:

Voy a tratar específicamente deshabilitar la compilación Scala

+0

Por lo que yo sé que usted puede configurar plugin de embarcadero para analizar con regularidad y por lo que no es necesario detener el embarcadero ... y hacer cambios dentro de Eclipse ... Eche un vistazo más profundo al plugin de maven-jetty ... – khmarbaise

+0

khmarbaise, ya he deshabilitado el escaneo mientras compilo usando jrebel. También he echado un vistazo bastante profundo al complemento o, de lo contrario, no estaría aquí. Lo que necesita es desactivar la fase de compilación de fork de embarcadero: ejecutar el objetivo –

Respuesta

-1

Si usted dice que las clases ya han sido recopilados por Eclipse, hay dos causas posibles para recompilar:

  • está invocando clean o eliminando las clases compiladas de alguna manera;
  • la carpeta de salida para Eclipse no es lo mismo que la carpeta de salida para Maven.

Por lo tanto, debe evitar la eliminación de las clases compiladas o configurar Eclipse y Maven para utilizar la misma carpeta de salida.

+1

No, esa no es la causa. La causa es que el objetivo jetty: run divide una compilación cada vez que se inicia. He resuelto este problema, publicaré la solución ahora. –

2

La solución es establecer una variable ambiental de:

MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE" 

Lo anterior trabajó para mí.

otros lugares en Internet que se describe como:

MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y" 
+0

¡Mi código, compilación, prueba, ciclo no es mucho más aceptable! –

+0

Aunque esto pareció funcionar, en realidad no lo hizo. De vuelta al tablero de dibujo. –

+0

La otra parte es para el depurador remoto para conectar –

9

Finalmente solucioné .. @RobertMunteanu

Wow! Bueno, finalmente me di cuenta de lo que estaba haciendo mal, la solución es crear un perfil de desarrollo y producción y, para el perfil de desarrollo, configurar las ejecuciones del complemento Scala para que no hagan nada.

así:

<profile> 
    <id>development</id> 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.scala-tools</groupId> 
     <artifactId>maven-scala-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>compile</id> 
      <goals></goals> 
      <phase>compile</phase> 
      </execution> 
      <execution> 
      <id>test-compile</id> 
      <goals></goals> 
      <phase>test-compile</phase> 
      </execution> 
      <execution> 
      <id>default-testCompile</id> 
      <phase>test-compile</phase> 
      <goals></goals> 
      </execution> 
      <execution> 
      <id>default-compile</id> 
      <phase>compile</phase> 
      <goals></goals> 
      </execution> 
      <execution> 
      <phase>process-resources</phase> 
      <goals> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
0

Después de algunas investigaciones, el problema no es con el plugin embarcadero, pero con maven-compilador-plugin. Hay un error en la compilación incremental. Consulte esta pregunta y respuesta de stackoverflow: Maven compiler plugin always detecting a set of sources as "stale"

La siguiente configuración funciona bien para mí; que permite un reinicio muy rápido de amarre cuando el código ha cambiado con recompilación mínima, y ​​que no vuelva a compilar si ya ha compilado:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     <encoding>UTF-8</encoding> 
     <debug>${compile.debug}</debug> 
     <useIncrementalCompilation>false</useIncrementalCompilation> 
      </configuration> 
</plugin> 
    <plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>maven-jetty-plugin</artifactId> 
    <version>6.1.26</version>  
       <configuration> 
       <contextPath>/</contextPath>      
       <webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory> 
       <scanIntervalSeconds>2</scanIntervalSeconds> 
       <scanTargets> 
        <scanTarget>src/main/java</scanTarget> 
       </scanTargets>      
      </configuration>    
</plugin> 
Cuestiones relacionadas