AspectJ Maven Plugin Cannot Compile My Project


Answer :

It seems like a known issue http://jira.codehaus.org/browse/MASPECTJ-125

You can fix it by adding the following to your pom file.

<complianceLevel>1.6</complianceLevel> 

Update: While the things I said about AspectJ Maven configuration in this answer are all correct, the root cause of the concrete problem at hand - bad Maven dependency management - is described in my other answer. It would be better if that one was the accepted answer and not this one.


  • User codelion's hint makes sense, please change your <compilationLevel> tag (typo?) - to <complianceLevel>.
  • There is no need to downgrade to plugin version 1.6, you can keep 1.7.
  • There is also no need to specify the configuration again within the <execution> section, the one at plugin level is enough.
  • Please note that the default AspectJ version in plugin 1.7 is 1.8.2, so maybe your runtime dependency on 1.7.4 works, but if I were you I would upgrade that one too, optimally in sync with the plugin version. It is no hard requirement, but I think it makes sense.
  • Maybe you even want to upgrade to the current version AspectJ 1.8.4, in the plugin as well as the runtime. This can also be achieved by adding a dependency to the desired aspectjtools version to the plugin configuration:
    <properties>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>         <java.source-target.version>1.8</java.source-target.version>         <aspectj.version>1.8.4</aspectj.version>     </properties>      <build>         <pluginManagement>              <plugins>                 <plugin>                     <groupId>org.codehaus.mojo</groupId>                     <artifactId>aspectj-maven-plugin</artifactId>                     <version>1.7</version>                     <configuration>                         <showWeaveInfo>true</showWeaveInfo>                         <source>${java.source-target.version}</source>                         <target>${java.source-target.version}</target>                         <Xlint>ignore</Xlint>                         <complianceLevel>${java.source-target.version}</complianceLevel>                         <encoding>UTF-8</encoding>                         <verbose>true</verbose>                     </configuration>                     <executions>                         <execution>                             <!-- IMPORTANT -->                             <phase>process-sources</phase>                             <goals>                                 <goal>compile</goal>                                 <goal>test-compile</goal>                             </goals>                         </execution>                     </executions>                     <dependencies>                         <dependency>                             <groupId>org.aspectj</groupId>                             <artifactId>aspectjtools</artifactId>                             <version>${aspectj.version}</version>                         </dependency>                     </dependencies>                 </plugin>             </plugins>         </pluginManagement>          <plugins>             <plugin>                 <groupId>org.codehaus.mojo</groupId>                 <artifactId>aspectj-maven-plugin</artifactId>             </plugin>         </plugins>     </build>      <dependencyManagement>         <dependencies>             <dependency>                 <groupId>org.aspectj</groupId>                 <artifactId>aspectjrt</artifactId>                 <version>${aspectj.version}</version>                 <scope>runtime</scope>             </dependency>         </dependencies>     </dependencyManagement>      <dependencies>         <dependency>             <groupId>org.aspectj</groupId>             <artifactId>aspectjrt</artifactId>         </dependency>     </dependencies> 

Having looked at your Maven project https://github.com/dmitrievanthony/test-aspectj I found out that

  • the problem is totally unrelated to AspectJ Maven Plugin,
  • the same compilation errors also occur in Maven Compiler Plugin and
  • that the root cause of your problem is simply bad dependency management.

Here is a screenshot (full size here) from IntelliJ IDEA's "find class":

Class LockModeType is found 3x in the project

As you can see, class LockModeType is found in 3 (three!) dependencies, one of which contains a version of the class which does not contain the expected enum values. Your code compiles if you remove this dependency.

    <dependency>         <groupId>org.hibernate</groupId>         <artifactId>ejb3-persistence</artifactId>         <version>1.0.2.GA</version>     </dependency> 

Maybe you should clean up your dependencies. You can use the Maven Dependency Plugin with goals like dependency:analyze and dependency:tree for that purpose.


Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?