2015-01-17 6 views
1

나는 테스트를 작성하고 그루비 특성을 사용하려고합니다. 나는이 물건을 컴파일하기 위해 노력하고있어그루비 자바 gmaven 및 특성

class UserToCrossIdConnectionTest extends IntegrationBaseTest implements UserTrait{} 

: 여기

trait UserTrait { 

    String generateCrossId(){ 
     System.currentTimeMillis().toString() 
    } 

    String generateOuterKey(){ 
     (System.currentTimeMillis()/new Random().nextInt(1000)) as String 
    } 
} 

내 테스트 클래스입니다 : 여기

여기
<plugin> 
       <groupId>org.codehaus.gmaven</groupId> 
       <artifactId>gmaven-plugin</artifactId> 
       <version>1.5</version> 
       <configuration> 
        <debug>false</debug> 
        <verbose>true</verbose> 
        <stacktrace>true</stacktrace> 
        <providerSelection>2.0</providerSelection> 
       </configuration> 
       <executions> 
        <execution> 
         <goals> 
          <goal>compile</goal> 
          <goal>generateStubs</goal> 
          <goal>testCompile</goal> 
          <goal>generateTestStubs</goal> 
         </goals> 
        </execution> 
       </executions> 
       <dependencies> 
        <dependency> 
         <groupId>org.codehaus.groovy</groupId> 
         <artifactId>groovy-all</artifactId> 
         <version>2.3.0</version> 
        </dependency> 
       </dependencies> 
      </plugin> 

내 형질 내 gmaven 플러그인 구성입니다 maven과 i를 사용하여 얻으십시오 :

INFO] --- maven-compiler-plugin:3.0:testCompile (default-testCompile) @ project --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 21 source files to /project/target/test-classes 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] /project/target/generated-sources/groovy-stubs/test/ru/mycode/UserControllerTest.java:[12,33] interface expected here 
[ERROR] /project/target/generated-sources/groovy-stubs/test/ru/mycode/UserToCrossIdConnectionTest.java:[12,33] interface expected here 
[INFO] 2 errors 

클래스를 확인했습니다. 특성은되었다 : 특성 구현

@groovy.transform.Trait() public class UserTrait 
    extends java.lang.Object implements 
    groovy.lang.GroovyObject {} 

및 클래스 :

공평 ​​
public class UserToCrossIdConnectionTest 
    extends IntegrationBaseTest implements 
    ru.mycode.UserTrait { 

, 내가 클래스를 구현할 수 없습니다. 어떻게 해결할 수 있습니까?

답변

2

GMaven은 새로운 버전의 Groovy를 컴파일 할 수 없습니다. 내가 GMavenPlus (나는 방금 당신의 예제에 대해 성공적으로 테스트)로 옮길 것을 제안합니다.

<plugin> 
    <groupId>org.codehaus.gmavenplus</groupId> 
    <artifactId>gmavenplus-plugin</artifactId> 
    <version>1.4</version> 
    <executions> 
     <execution> 
     <goals> 
      <goal>addSources</goal> 
      <goal>addTestSources</goal> 
      <goal>generateStubs</goal> 
      <goal>compile</goal> 
      <goal>testGenerateStubs</goal> 
      <goal>testCompile</goal> 
      <goal>removeStubs</goal> 
      <goal>removeTestStubs</goal> 
     </goals> 
     </execution> 
    </executions> 
</plugin> 

내가 GMavenPlus의 저자 해요 때문에

은 모든 옵션에 대해 정직하게, (나 또한 잠시 동안 GMaven 유지), Groovy-Eclipse Compiler Plugin for Maven도있다. 나는 사람들이 그들의 선택을 이해하도록 도왔다 here.

+0

안녕하세요, 다른 각도의 형체에 문제가 있습니다. 나는 구체적이고 추상적 인 방법으로 특성을 가지고있다. 그리고 두 클래스는 추상 메소드를 구현하고 오버라이드합니다. 내가 컴파일 오류가 발생 : 자바 두 클래스가 특성에서 구체적인 방법을 재정의하지 않는 불평 ... 내가 새로운 질문을 시작해야합니까? – Sergey

+0

예, 새로운 질문을 시작하십시오. – Keegan

+0

http://stackoverflow.com/questions/32224258/cant-compile-trait-using-gmavenplus-plugin 제발 볼 수 있습니까? – Sergey