2016-04-19 4 views
1

Dies ist meine Situation:AspectJ Modulabhängigkeits mit Maven - Wie erhalten arbeiten, um die Inter-Typdeklarationen Methoden eines Abhängigkeitsmodul

Workspace-my-project-aj-dependency

Ich habe ein Maven Projekt my-project-aj-dependency von zwei Glas-Modulen zusammen:

  • my-project-aj-dependencyJarWithAJ (wobei i eine Inter-type declaration haben, siehe ahah() Methode unten innerhalb des Aspekts AppWithAj_Ahah.aj
  • )
  • my-project-aj-dependencyJarWithoutAJ

innerhalb des zweiten Moduls in dem Aspekt des ersten Moduls Mein Problem ist, dass ich definiert möchte einige erklärten Methode verwenden, aber wahrscheinlich habe ich etwas verpasst.

My poms Konfiguration ist die folgende:

Maven Projekt POM (my-project-aj-dependency):

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <name>MyProjectAjDependency</name> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.madx</groupId> 
    <artifactId>my-project-aj-dependency</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <modules> 
     <!-- <module>TestMaven-ejb</module> --> 
     <module>my-project-aj-dependencyJarWithAJ</module> 
     <module>my-project-aj-dependencyJarWithoutAJ</module> 
    </modules> 

    <properties> 
     <maven.compiler.target>1.7</maven.compiler.target> 
     <maven.compiler.source>1.7</maven.compiler.source> 
     <aspectj.version>1.8.9</aspectj.version> 
    </properties> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>com.madx</groupId> 
       <artifactId>my-project-aj-dependencyJarWithAj</artifactId> 
       <version>${project.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>com.madx</groupId> 
       <artifactId>my-project-aj-dependencyJarWithoutAj</artifactId> 
       <version>${project.version}</version> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <build> 
     <pluginManagement> 
      <plugins> 
      </plugins> 
     </pluginManagement> 
    </build> 

</project> 

Maven Modul 1 POM (my-project-aj-dependencyJarWithAJ):

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>com.madx</groupId> 
     <artifactId>my-project-aj-dependency</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <groupId>com.madx</groupId> 
    <artifactId>my-project-aj-dependencyJarWithAJ</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>my-project-aj-dependencyJarWithAJ</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <dependencies> 
     <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>1.8.9</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>install</id> 
        <phase>install</phase> 
        <goals> 
        <goal>sources</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>aspectj-maven-plugin</artifactId> 
      <!-- 
        Have to use version 1.2 since version 1.3 does not appear to work 
        with ITDs 
       --> 
      <version>1.2</version> 
      <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>${org.aspectj-version}</version> 
       </dependency> 
       <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjtools</artifactId> 
        <version>${org.aspectj-version}</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <goals> 
        <goal>compile</goal> 
        <goal>test-compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <outxml>true</outxml> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
</project> 

Maven Modul 2 POM (my-project-aj-dependencyJarWithoutAJ):

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>com.madx</groupId> 
     <artifactId>my-project-aj-dependency</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <groupId>com.madx</groupId> 
    <artifactId>my-project-aj-dependencyJarWithoutAJ</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>my-project-aj-dependencyJarWithoutAJ</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <dependencies> 
     <dependency> 
     <groupId>com.madx</groupId> 
     <artifactId>my-project-aj-dependencyJarWithAj</artifactId> 
     <version>${project.version}</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>install</id> 
        <phase>install</phase> 
        <goals> 
        <goal>sources</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>aspectj-maven-plugin</artifactId> 
      <!-- 
        Have to use version 1.2 since version 1.3 does not appear to work 
        with ITDs 
       --> 
      <version>1.2</version> 
      <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>${org.aspectj-version}</version> 
       </dependency> 
       <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjtools</artifactId> 
        <version>${org.aspectj-version}</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <goals> 
        <goal>compile</goal> 
        <goal>test-compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <outxml>true</outxml> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
</project> 

Wo AppWithAj.java ist:

package org.my.project.aj.dependencyJarWithAJ; 

public class AppWithAj { 
    public static void main(String[] args){ 
     System.out.println("Hello World!"); 
    } 
} 

und AppWithAj_Ahah.aj ist:

package org.my.project.aj.dependencyJarWithAJ; 

public aspect AppWithAj_Ahah { 
    public String AppWithAj.ahah(){ 
     return "Ahahahah!"; 
    } 
} 

und schließlich App.java ist:

package org.my.project.aj.dependencyJarWithoutAJ; 
import org.my.project.aj.dependencyJarWithAJ.AppWithAj; 

public class App { 
    public static void main(String[] args) { 
     System.out.println("Hello World! " + new AppWithAj().ahah()); 
    } 
} 

Antwort

1

Ihre Lösung ist viel zu kompliziert:

  • Die AspectJ (AJ) Modul AJ Maven Plugin und eine Abhängigkeit von aspectjrt muss. So weit, ist es gut.
  • Der angegebene Aspekt betrifft jedoch nur eine Klasse innerhalb eines eigenen Moduls, die über ITD erweitert wird. Daher muss der AJ-Compiler nicht auf dem reinen Java-Modul verwendet werden, das nur eine Methode aus dem AJ-Modul aufruft. Es ist irrelevant, dass die aufgerufene Methode von ITD erstellt wurde, für das andere Modul sieht es wie normales Java aus.
  • Folglich sind alle Nicht-AJ-Modulanforderungen eine normale Abhängigkeit vom AJ-Modul, da es eine seiner Klassen verwendet. Die AJ-Laufzeitabhängigkeit ist transitiv und sollte automatisch verwendet werden.

Update:

Sie für POMs gefragt, hier sind sie.

Wurzel POM:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.madx</groupId> 
    <artifactId>my-project-aj-dependency</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>MyProjectAjDependency</name> 
    <packaging>pom</packaging> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.source-target.version>1.7</java.source-target.version> 
     <aspectj.version>1.8.9</aspectj.version> 
    </properties> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>org.aspectj</groupId> 
       <artifactId>aspectjrt</artifactId> 
       <version>${aspectj.version}</version> 
       <scope>runtime</scope> 
      </dependency> 
      <dependency> 
       <groupId>com.madx</groupId> 
       <artifactId>my-project-aj-dependencyJarWithAj</artifactId> 
       <version>${project.version}</version> 
      </dependency> 
      <dependency> 
       <groupId>com.madx</groupId> 
       <artifactId>my-project-aj-dependencyJarWithoutAj</artifactId> 
       <version>${project.version}</version> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.5.1</version> 
        <configuration> 
         <source>${java.source-target.version}</source> 
         <target>${java.source-target.version}</target> 
         <!-- IMPORTANT --> 
         <useIncrementalCompilation>false</useIncrementalCompilation> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>aspectj-maven-plugin</artifactId> 
        <version>1.8</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>${project.build.sourceEncoding}</encoding> 
         <!--<verbose>true</verbose>--> 
         <!--<warn>constructorName,packageDefaultMethod,deprecation,maskedCatchBlocks,unusedLocals,unusedArguments,unusedImport</warn>--> 
        </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> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>exec-maven-plugin</artifactId> 
        <version>1.4.0</version> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 

    <modules> 
     <module>my-project-aj-dependencyJarWithAJ</module> 
     <module>my-project-aj-dependencyJarWithoutAJ</module> 
    </modules> 

</project> 

Modul mit AspectJ:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>com.madx</groupId> 
     <artifactId>my-project-aj-dependency</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 

    <artifactId>my-project-aj-dependencyJarWithAJ</artifactId> 

    <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> 

Plain Java-Modul:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <parent> 
     <groupId>com.madx</groupId> 
     <artifactId>my-project-aj-dependency</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 

    <artifactId>my-project-aj-dependencyJarWithoutAJ</artifactId> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>exec-maven-plugin</artifactId> 
       <configuration> 
        <mainClass>org.my.project.aj.dependencyJarWithoutAJ.App</mainClass> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     <dependency> 
      <groupId>com.madx</groupId> 
      <artifactId>my-project-aj-dependencyJarWithAj</artifactId> 
     </dependency> 
    </dependencies> 
</project> 

Bitte beachten Sie: Ich habe den Exec Maven Plugin nur für Demozwecke hinzugefügt, so dass Sie so etwas tun:

mvn clean install 
mvn -pl my-project-aj-dependencyJarWithoutAJ exec:java 

Dann sollten Sie so etwas wie dies auf der Konsole sehen:

(...) 
[INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ my-project-aj-dependencyJarWithoutAJ --- 
Hello World! Ahahahah! 

Remove Exec Maven sowohl von den Root- als auch von den Plain Java POMs, um noch kürzere POMs zu erhalten.

+0

Ok, könnten Sie bitte hier die einfachsten Poms einfügen (wie in meiner Antwort unten), damit ich Ihre Antwort akzeptieren kann? Sie können sogar kopieren Sie meine Poms und löschen Sie die unbenutzten Teile, dann lösche ich meine Antwort : D Danke! – madx

+0

Wow, vielen Dank, es ist wirklich einfacher so. Allerdings habe ich noch eine Frage/Problem ... Wenn ich von Eclipse laufen org.my.project.aj.pendencyJarWithoutAJ.App es funktioniert gut, aber es immer noch eine Art Warnung in der Nähe der Verwendung von ahah() -Methode innerhalb markieren die org.my.project.aj.pendencyJarWithoutAJ.App-Hauptdatei. In der Nähe meiner Antwort habe ich einen Schnappschuss eingefügt. Lass es mich wissen. Danke immer wieder! – madx

+0

Muss ich das Plugin aspectj-maven-plugin ohne die aspectj-Abhängigkeit hinzufügen, um diese Art von Warnung im nonAj proj zu vermeiden? – madx

0

Ich habe es mit diesem pom c Arbeits onfiguration:

Projekt pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <name>abc</name> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.madx</groupId> 
    <artifactId>abc</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <modules> 
     <module>abc1</module> 
     <module>abc2</module> 
    </modules> 
    <properties> 
     <maven.compiler.target>1.7</maven.compiler.target> 
     <maven.compiler.source>1.7</maven.compiler.source> 
     <aspectj.version>1.8.9</aspectj.version> 
    </properties> 
    <dependencyManagement> 
     <dependencies> 
     <dependency> 
      <groupId>com.madx</groupId> 
      <artifactId>abc1</artifactId> 
      <version>${project.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>com.madx</groupId> 
      <artifactId>abc2</artifactId> 
      <version>${project.version}</version> 
     </dependency> 
     </dependencies> 
    </dependencyManagement> 
    <build> 
     <pluginManagement> 
     <plugins /> 
     </pluginManagement> 
    </build> 
</project> 

Pom des ersten Moduls:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>com.madx</groupId> 
     <artifactId>abc</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <groupId>com.madx</groupId> 
    <artifactId>abc1</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>abc1</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <dependencies> 
     <dependency> 
     <groupId>org.aspectj</groupId> 
     <artifactId>aspectjrt</artifactId> 
     <version>1.8.9</version> 
     </dependency> 
     <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>install</id> 
        <phase>install</phase> 
        <goals> 
        <goal>sources</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>aspectj-maven-plugin</artifactId> 
      <!-- 
        Have to use version 1.2 since version 1.3 does not appear to work 
        with ITDs 
       --> 
      <version>1.2</version> 
      <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>${org.aspectj-version}</version> 
       </dependency> 
       <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjtools</artifactId> 
        <version>${org.aspectj-version}</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <goals> 
        <goal>compile</goal> 
        <goal>test-compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <outxml>true</outxml> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
</project> 

Pom des zweiten Moduls:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
     <groupId>com.madx</groupId> 
     <artifactId>abc</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <groupId>com.madx</groupId> 
    <artifactId>abc2</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>abc2</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <dependencies> 
     <dependency> 
     <groupId>com.madx</groupId> 
     <artifactId>abc1</artifactId> 
     <version>${project.version}</version> 
     </dependency> 
     <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>install</id> 
        <phase>install</phase> 
        <goals> 
        <goal>sources</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>aspectj-maven-plugin</artifactId> 
      <!-- 
         Have to use version 1.2 since version 1.3 does not appear to work 
         with ITDs 
        --> 
      <version>1.2</version> 
      <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>${org.aspectj-version}</version> 
       </dependency> 
       <dependency> 
        <groupId>org.aspectj</groupId> 
        <artifactId>aspectjtools</artifactId> 
        <version>${org.aspectj-version}</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <goals> 
        <goal>compile</goal> 
        <goal>test-compile</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <outxml>true</outxml> 
       <source>${java-version}</source> 
       <target>${java-version}</target> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
</project> 

Hier zeige ich es funktioniert: AspectJ module dependency with Maven

Bearbeiten: Es scheint, dass wenn das nonAj Projekt keine AspectJ Natur hat, warnt es Sie in der Nähe der .aj definierten Methoden (obwohl es gut funktioniert, wenn Sie es einfach starten, für Eclipse ist es kein Fehler, durch die Möglichkeit, dass Sie die Autocomplete-Anzeige nicht verwenden können, füllt den Code mit wanings ...).Dies ist der Schnappschuss: Warning if the other has not a Aj nature

Verwandte Themen