2011-12-15 90 views
10

我正在嘗試將Groovy添加到利用Lombok的現有Java Maven項目中。不幸的是,當我使用下面的pom片段啓用groovy-maven-eclipse編譯器時,我的lombok註釋的java文件無法編譯。據我所知,龍目島根本沒有參與編譯java文件。Maven Groovy和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> 

我還應該指出,雖然在日食(與m2e)一切工作正常。我嘗試製作mvn軟件包時出現問題。

+0

你有龍目島包含在你的Maven的依賴? http://projectlombok.org/mavenrepo/index.html – 2011-12-27 01:37:10

回答

15

@Todd:如果您不需要使用一些常規工具開發maven插件(請參閱http://groovy.codehaus.org/Groovy-Eclipse+compiler+plugin+for+Maven),groovy-eclipse-compiler是最佳選擇。

@embience:您的問題與http://jira.codehaus.org/browse/GRECLIPSE-1293相關。 這個bug現在已經用最新的groovy-eclipse-compiler 2.6.1-01-SNAPSHOT修復了。

注意:提供最新版本現在是2.9.1-01,看到http://docs.groovy-lang.org/latest/html/documentation/tools-groovyeclipse.html

您必須修改您的POM這樣的:

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

強制性的部分:

<fork>true</fork> 

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

在maven-compiler-plugi中增加了對lombok的依賴ñ

編輯:更新版本

+0

任何想法在何處獲得org.codehaus.groovy的Maven工件:groovy-eclipse-compiler:2.6.1-01-SNAPSHOT? 我無法在任何回購中找到它。即使在codehaus快照回購中! – Meeque 2012-06-15 16:57:03