plugin - pom maven
¿Cómo deshabilito el complemento compilador de maven? (3)
Tengo un proyecto de maven que usa el plugin-compilador de aspectj. Utilizo declaraciones intertipo, por lo que hay referencias al código de Aspect en mi código Java. Debido a esto, el compilador-plugin de maven no puede compilar ya que no compila el código de aspecto.
Mi pregunta es: ¿cómo deshabilito la ejecución del complemento compilador-compilador porque no está haciendo nada útil?
Hay varias formas en que puedo obtener la compilación de este proyecto, pero son subóptimas:
- Agregue filtros de exclusión al compilador-complemento de maven. El complemento aún se ejecutará, pero no intentará compilar nada. El problema es que esto rompe el configurador de proyectos ajdt en Eclipse
- Mueve todo el código java a las carpetas aspectj. Esto tampoco se siente bien.
En Maven 3, lo siguiente hará esto, por ejemplo, deshabilitando el complemento limpio:
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>default-clean</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
La misma técnica se puede utilizar para cualquier otro complemento definido en el super-POM, el tipo de paquete o el POM principal. El punto clave es que debe copiar el <id>
muestra con help:effective-pom
, y cambiar la <phase>
a un valor no válido (por ejemplo, "ninguno"). Si no tiene el <id>
(como, por ejemplo, en la respuesta original de Jintian DENG, ya que se ha editado para agregar uno), no funcionará, como ha descubierto.
La razón por la que maven-compiler-plugin se ejecuta en primer lugar es porque activa uno de los enlaces de ciclo de vida predeterminados. Por ejemplo, si está empaquetando jar usando el paquete mvn , se activará compile: compile en la fase de compilación.
Tal vez intente no usar el ciclo de vida predeterminado, pero use mvn aspectj: compile en su lugar.
http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html tiene más información sobre los enlaces de ciclo de vida predeterminados de Maven.
Puede deshabilitar el complemento configurando la fase del complemento en ninguno.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>