2011-03-18 5 views
0

Eclipse (AJDT)에서 아름답게 작동하는 기존 클래스에서 AspectJ를 컴파일하는 중입니다. 그러나 확실한 테스트를 통해 maven에서 테스트를 실행하면이 클래스의 테스트 애스펙트가 적용된 테스트 케이스가 실패합니다. 나는 길쌈이 올바르게 일어나고 있다고 확신합니다. 그것은 클래스 경로 문제와 같습니다. 다음은 확실한 테스트를 실행할 때의 오류입니다. 다음AspectJ :: 확신 테스트가 NoSuchMethodError를 제공합니다.

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

나는 여러 가지를 시도

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

의 pom.xml 내 확실한 플러그인 설정이지만이 작동하지 않았다, 어떤 제안은 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가 구성되지 있습니다.

제발 도와주세요!

감사합니다. 있는 Girish

답변

1

세 가지 제안 :

  1. 받는다는 귀하의 AspectJ 플러그인이 올바르게 구성되어 있는지 확인합니다. 이에 대한 질문이 있으면 위의 질문에 pom.xml의 해당 부분을 붙여 넣으십시오.
  2. aop.xml이 필요한 모든 측면을 참조하는지 확인하십시오.
  3. aspect-path/in-path가 올바르게 구성되었는지 확인하십시오.
+0

안녕하세요 앤드류 ... 다시 한 번 감사드립니다. 질문에 aspectj 플러그인 세부 정보를 추가했습니다. 나는 약간 혼란 스럽다. 나는 컴파일 시간을 짜내고있다. (로드 시간이 아니다.) 또한 aop.xml이 필요하다? pom에서 inpath에 aspectpath를 제공 할 수있는 방법이 있습니까? – Girish

+0

Girish, 혹시 이것에 대한 답변을 얻었습니까? 나는 또한 aop.xml 파일이 필요한지 궁금해했다. – Eric

+0

처음으로 질문을 놓쳐 야합니다. 컴파일 시간 짜기에는 aop.xml이 필요 없습니다. –