2011-12-15 4 views
10

Tôi đang cố gắng thêm groovy vào một dự án Java Maven hiện có để thúc đẩy Lombok. Thật không may khi tôi kích hoạt trình biên dịch groovy-maven-eclipse với đoạn pom bên dưới, các tệp java chú thích lombok của tôi không biên dịch được. Theo như tôi có thể nói, Lombok không tham gia vào việc biên dịch các tệp java.Maven Groovy và Java + Lombok

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.3.1</version> 
    <configuration> 
     <compilerId>groovy-eclipse-compiler</compilerId> 
     <verbose>true</verbose> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-eclipse-compiler</artifactId> 
      <version>2.6.0-01-SNAPSHOT</version> 
     </dependency> 
    </dependencies> 
</plugin> 

Tôi cũng nên chỉ ra rằng trong khi ở nhật thực (với m2e) mọi thứ đều hoạt động tốt. Vấn đề của tôi nảy sinh khi tôi cố gắng làm một gói mvn.

+0

Bạn có Lombok có trong phụ thuộc Maven của bạn? http://projectlombok.org/mavenrepo/index.html –

Trả lời

15

@Todd: Trình biên dịch groovy-eclipse là sự lựa chọn tốt nhất nếu bạn không cần phải phát triển plugin maven với một số công cụ hấp dẫn (xem http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven).

@Ambience: bạn đã gặp sự cố liên quan tại http://jira.codehaus.org/browse/GRECLIPSE-1293. Lỗi này hiện đã được khắc phục bằng trình biên dịch mới nhất-thực-dịch-bit 2.6.1-01-SNAPSHOT.

Note: Phiên bản mới nhất có sẵn tại là 2.9.1-01, xem http://docs.groovy-lang.org/latest/html/documentation/tools-groovyeclipse.html

Bạn phải thay đổi pom của bạn như thế này:

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <compilerId>groovy-eclipse-compiler</compilerId> 
     <verbose>true</verbose> 
     <fork>true</fork> 
     <compilerArguments> 
     <javaAgentClass>lombok.launch.Agent</javaAgentClass> 
     </compilerArguments> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-eclipse-compiler</artifactId> 
      <version>2.9.1-01</version> 
     </dependency> 
     <!-- for 2.8.0-01 and later you must have an explicit dependency on groovy-eclipse-batch --> 
     <dependency> 
      <groupId>org.codehaus.groovy</groupId> 
      <artifactId>groovy-eclipse-batch</artifactId> 
      <version>2.3.7-01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>1.16.4</version> 
     </dependency> 
    </dependencies> 
</plugin> 

Các bộ phận bắt buộc:

<fork>true</fork> 

<compilerArguments> 
    <javaAgentClass>lombok.launch.Agent</javaAgentClass> 
</compilerArguments> 

Sự phụ thuộc được thêm vào lombok bên trong trình biên dịch-maven-plugi n

Edit: cập nhật phiên bản

+0

Bất kỳ ý tưởng nào để lấy các hiện vật Maven của org.codehaus.groovy: groovy-eclipse-compiler: 2.6.1-01-SNAPSHOT? Tôi không thể tìm thấy nó trong bất kỳ repo nào. Ngay cả trong repo codehaus snapshot! – Meeque

+0

Phiên bản mới nhất hiện có là 2.7.0-01, xem http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven –