Announcement Announcement Module
Collapse
No announcement yet.
Eclipse AspectJ compilation in Maven project Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Eclipse AspectJ compilation in Maven project

    Hi there,
    I need some help here. I am trying to run the vote example of Spring Roo 1.2.2.RELEASE in Eclipse Juno. All is fine if I 'perform eclipse' on the vote project. Then open it in eclipse. It build, deploys and runs ok. Equally if I right click on the pom.xml and build and deploy the war the application runs fine.
    The trouble starts when I convert the project to a Maven project as it should be. 'perform eclipse' makes only a Dynamic Web Module.
    I noticed that the class files are different and look as if eclipse has not done the AspectJ compilation correcly. For example the Entities do not implement org.springframework.beans.factory.aspectj.Configur ableObject. So clearly eclipse is missing something.

    Note the project has the Dynamic Web Module facet is of AspectJ and Maven nature.
    Maven 3.0.4
    AspectJ 1.7.0
    m2e 1.1.0
    m2e WTP 0.15

    Code:
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>1.2</version>
                    <!-- NB: do not use 1.3 or 1.3.x due to MASPECTJ-90 and do not use 1.4 due to declare parents issue  -->
                    <dependencies>
                        <!-- NB: 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>
                            <goals>
                                <goal>compile</goal>
                                <goal>test-compile</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <outxml>true</outxml>
                        <aspectLibraries>
                            <aspectLibrary>
                                <groupId>org.springframework</groupId>
                                <artifactId>spring-aspects</artifactId>
                            </aspectLibrary>
                        </aspectLibraries>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                    </configuration>
                </plugin>
    and

    Code:
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-eclipse-plugin</artifactId>
                    <version>2.7</version>
                    <!-- Note 2.8 does not work with AspectJ aspect path -->
                    <configuration>
                        <downloadSources>true</downloadSources>
                        <downloadJavadocs>false</downloadJavadocs>
                        <wtpversion>2.0</wtpversion>
                        <additionalBuildcommands>
                            <buildCommand>
                                <name>org.eclipse.ajdt.core.ajbuilder</name>
                                <arguments>
                                    <aspectPath>org.springframework.aspects</aspectPath>
                                </arguments>
                            </buildCommand>
                            <buildCommand>
                                <name>org.springframework.ide.eclipse.core.springbuilder</name>
                            </buildCommand>
                        </additionalBuildcommands>
                        <additionalProjectnatures>
                            <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature>
                            <projectnature>com.springsource.sts.roo.core.nature</projectnature>
                            <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                        </additionalProjectnatures>
                    </configuration>
                </plugin>
    Code:
            <pluginManagement>
            	<plugins>
            		<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
            		<plugin>
            			<groupId>org.eclipse.m2e</groupId>
            			<artifactId>lifecycle-mapping</artifactId>
            			<version>1.0.0</version>
            			<configuration>
            				<lifecycleMappingMetadata>
            					<pluginExecutions>
            						<pluginExecution>
            							<pluginExecutionFilter>
            								<groupId>
            									org.codehaus.mojo
            								</groupId>
            								<artifactId>
            									aspectj-maven-plugin
            								</artifactId>
            								<versionRange>
            									[1.2,)
            								</versionRange>
            								<goals>
            									<goal>test-compile</goal>
            									<goal>compile</goal>
            								</goals>
            							</pluginExecutionFilter>
            							<action>
            								<ignore/>
            							</action>
            						</pluginExecution>
            					</pluginExecutions>
            				</lifecycleMappingMetadata>
            			</configuration>
            		</plugin>
            	</plugins>
            </pluginManagement>
    Attachment
    Attachment
    Attachment
    Attachment
    Attached Files
    Last edited by hurzeler; Aug 25th, 2012, 07:48 PM.

  • #2
    Well it turns out that m2e does ignore the aspectj-maven-plugin because I explicitly ask it to do so. The solution is quite simple. Just change:

    Code:
    <action>
          <ignore/>
    </action>
    to
    Code:
    <action>
          <execute/>
    </action>
    Unfortunately the pom.xml that gets generated is set to ignore by default.

    Comment

    Working...
    X