2011-03-18 80 views
0

我正在编译时间AspectJ编织现有的类,这是在eclipse(AJDT)中精美的工作。但是当我使用surefire在maven中运行测试时,这个方面应用的这个类的测试用例失败了。我很确定编织是正确的,它看起来像一个类路径问题。以下是执行surefire测试时的错误。AspectJ :: Surefire测试给出了NoSuchMethodError

java.lang.NoSuchMethodError: com.online.station.OBSDescriptorBrokerageMortgageRemovalAspect.aspectOf()Lcom/online/station/OBSDescriptorBrokerageMortgageRemovalAspect; at com.online.station.delegate.fundstransfer.AuthorizeAccForTransfDelegImpl.unpackResponse(AuthorizeAccForTransfDelegImpl.java:111)

以下是在pom.xml中

 <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <forkMode>once</forkMode> 
       <argLine> 
        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" 
       </argLine> 
       <useSystemClassloader>true</useSystemClassloader> 
       <includes> 
        <include>**/*Test.java</include> 
       </includes> 
       <excludes> 
        <exclude>**/WebTestCase.java</exclude> 
       </excludes> 
      </configuration> 
     </plugin> 

我尝试过各种东西我的保命插件的配置,但它没有工作,任何建议,将greately感谢!

有没有必要有一个aop.xml这个工作? 以下是aspectj插件信息。

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>aspectj-maven-plugin</artifactId> 
<version>1.3</version> 
<configuration> 
    <verbose>true</verbose> 
    <complianceLevel>${jdk.source.version}</complianceLevel> 
    <target>${jdk.target.version}</target> 
    <showWeaveInfo>true</showWeaveInfo> 
    <weaveMainSourceFolder>true</weaveMainSourceFolder> 
    <includes> 
     <!-- Class AspectClass1 and dependencies --> 
     <include>**/AspectClass1*</include> 
     <include>**/Class2*</include> 
     <include>**/Class3*</include> 
     <include>**/Class4*</include> 
     <include>**/Class5*</include> 
     <include>**/Class6*</include> 
     <include>**/Class7*</include> 
     <include>**/Class8*</include> 

    </includes> 
</configuration> 
<executions> 
    <execution> 
    <goals> 
     <goal>compile</goal>    <goal>test-compile</goal>  </goals> 
    </execution> 
    </executions> 

,因为我需要编译的时候只有织布,我也没有配置aop.xml文件。

任何帮助tjis请!

谢谢! 吉里什

回答

1

三点建议:

  1. 确保您的AspectJ插件Maven是正确配置。如果您对此有任何疑问,请在上面的问题中粘贴您的pom.xml部分。
  2. 确保您的aop.xml引用了所有必需的方面。
  3. 确保您的纵横路径/路径中的配置正确。
+0

嘿安德鲁......再次感谢。我在问题中添加了aspectj插件的详细信息。我有点困惑,我正在编译时编织(不加载时间),那么我也需要aop.xml?有没有什么办法可以在pom中的inpath中提供aspectpath? – Girish 2011-03-18 21:25:24

+0

Girish,你有没有得到答案?我也想知道是否需要aop.xml文件。 – Eric 2013-05-28 22:28:07

+0

第一次必须错过这个问题。不,编译时编织不需要aop.xml。 – 2013-05-28 23:26:28

相关问题