Results 1 to 2 of 2

Thread: Eclipse AspectJ compilation in Maven project

  1. #1
    Join Date
    Aug 2012
    Posts
    2

    Unhappy 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>
    pom.zip
    .settings.zip
    .classpath.zip
    .project.zip
    Last edited by hurzeler; Aug 25th, 2012 at 06:48 PM.

  2. #2
    Join Date
    Aug 2012
    Posts
    2

    Default

    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.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •