que pom plugin example compiler artefact maven maven-compiler-plugin

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:

  1. 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
  2. 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>