2009-07-18 9 views
7

Mein Aspekt funktioniert gut von Eclipse mit AspectJ Plugin, aber wenn ich versuche, es mit Maven zu verwenden, bekomme ich .... nichts.Maven vs AspectJ - Beispiel?

Ich habe versucht, diese http://mojo.codehaus.org/aspectj-maven-plugin/includeExclude.html

ich loggin in meinem Aspekt hinzufügen, und ich versuche, es mit JUnit-Test zu testen, aber wenn ich

mvn clean 
mvn test 

laufen bekomme ich ...

[INFO] [aspectj:compile {execution: default}] 

Aber ich sehe nicht einloggen Test

Wenn ich kompilieren in Eclipse funktioniert es finden, aber ich mag es IDE unabhängig zu sein (so könnte ich es mit Hudson verwenden)

P.S. Ich benutze .aj Datei für Aspekt

Ich habe versucht, Google es, aber ich kann kein funktionierendes Beispiel finden.

Antwort

8

Ohne das POM zu sehen, ist es schwer zu sagen, dass Maven erwartet, dass Ihre Aspekte standardmäßig unter src/main/aspect statt src/main/java liegen.

Sie müssen auch die aspectj Laufzeitbibliothek, um sicherzustellen, auf Ihrem Classpath ist (in Eclipse es durch die AJDT Classpath Container enthalten ist

Zum Beispiel (aus der Plugin-Dokumentation).

<project> 
    ... 
    <dependencies> 
     ... 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>1.6.2</version> 
     </dependency> 
     ... 
    </dependencies> 
    ... 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>aspectj-maven-plugin</artifactId> 
       <version>1.2</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> 

Wenn Keiner von diesen funktioniert, können Sie Ihre Pom Inhalte posten? Es könnte helfen, das Problem zu identifizieren.

+0

Ich wusste nicht über src/main/aspect, es funktioniert super, thx. – martin

+0

Gern geschehen. –

+0

ich nicht denke du musst die aspekte setzen im src/main/java mehr – user496949