tutorial que proyecto pom mvn español desde crear consola comandos clean java maven aspectj pom.xml

java - que - mvn clean package



Al agregar AspectJ a pom.xml, se modificó la versión de Java con Maven, ¿por qué? (5)

Creo que el problema está en la configuración predeterminada de source , target y complianceLevel del aspectj-maven-plugin (según la documentación vinculada previamente, 1.4, 1.2 y 1.4, respectivamente). Debe establecer estos explícitamente en su pom padre:

<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.5</version> <!-- new configuration is here --> <configuration> <complianceLevel>1.6</complianceLevel> <source>1.6</source> <target>1.6</target> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> </plugin> ... </plugins> <build>

ACTUALIZACIÓN: aquí está mi configuración maven-compiler-plugin:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration>

Trabajo en una aplicación multiproyecto que construyo con Maven. Decidimos agregar AspectJ, así que agregué el siguiente código a pom.xml en el proyecto de nivel superior: (de la documentación oficial)

<project> ... <dependencies> ... <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.7.3</version> </dependency> ... </dependencies> ... <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.5</version> <executions> <execution> <goals> <goal>compile</goal> <!-- use this goal to weave all your main classes --> <goal>test-compile</goal> <!-- use this goal to weave all your test classes --> </goals> </execution> </executions> </plugin> ... </plugins> <build> ... </project>

y los siguientes fragmentos a cada proyecto subordinado:

</project> ... <build> .... <plugins> ... <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> </plugin> </plugins> </build> <dependencies> ... <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> </dependency> .... </dependencies> ... </project>

De alguna manera, esta modificación ha anulado la versión de Java que uso. Si ejecuto build, obtengo varios errores como este:

Error de sintaxis, las anotaciones solo están disponibles si el nivel de fuente es 1.5 o mayor

Eso me da la sospecha de que mi versión de Java (originalmente 1.6) de alguna manera se revirtió a 1.4. No hice nada, al menos no a sabiendas, que pudiera influir en la versión de Java, por lo que sospecho que el código relacionado con AspectJ mencionado anteriormente es responsable del cambio.

Mi pregunta es cómo puede AspectJ cambiar la versión de Java y qué debo hacer para solucionar este problema. ¿O malinterpreto algo por completo y estoy en el camino equivocado?



estaba perdido

<complianceLevel>${java.level}</complianceLevel>

en mi pom.xml



Me faltaba la versión de Java con la versión jdk en la parte superior de mis propiedades pom.

<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <version>1.2</version> <!-- 1.5 dint work for me --> <dependencies> <!-- You must use Maven 2.0.9 or above or these are ignored (see MNG-2972) --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj.version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> <executions> <execution> <phase>process-sources</phase> <!-- or any phase before compile --> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <configuration> <outxml>true</outxml> <source>${jdk.version}</source> <!-- I was missing this --> <target>${jdk.version}</target> <!-- jdk.version property --> </configuration> </plugin>

y en la parte superior de mi pom.xml había establecido la propiedad jdk.version como,

<properties> <jdk.version>1.7</jdk.version> </properties>