2011-07-03 56 views
1

我在Eclipse中有一個使用lombok/delombok的maven項目。在Eclipse中編譯時出現Maven + Delombok問題

當我使用maven腳本(例如mvn clean package)從Eclipse構建時,一切正常。但是,當我直接從Eclipse運行(例如,使用我的項目的清理/構建)時,我有一個classpath問題,它涉及應該存在於JDK的tools.jar中的類。我曾嘗試直接在我的項目構建路徑中添加tools.jar,但沒有取得任何成功。

[編輯]
堆棧跟蹤爲:

03/07/11 23:39:44 CEST: Maven Builder: FULL_BUILD 
03/07/11 23:39:44 CEST: [WARN] The POM for com.google.code.gwt-log:gwt-log:jar:3.1.2 is missing, no dependency information available 
03/07/11 23:39:44 CEST: Build errors for fiveorbs; org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.projectlombok:maven-lombok-plugin:0.9.3.1:delombok (default) on project fiveorbs: Execution default of goal org.projectlombok:maven-lombok-plugin:0.9.3.1:delombok failed: A required class was missing while executing org.projectlombok:maven-lombok-plugin:0.9.3.1:delombok: com/sun/tools/javac/util/Context 
----------------------------------------------------- 
realm = plugin>org.projectlombok:maven-lombok-plugin:0.9.3.1 
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy 
urls[0] = file:/C:/Users/Daedin/.m2/repository/org/projectlombok/maven-lombok-  plugin/0.9.3.1/maven-lombok-plugin-0.9.3.1.jar 
urls[1] = file:/C:/Program%20Files/Java/jdk1.6.0_26/jre/../lib/tools.jar 
urls[2] = file:/C:/Users/Daedin/.m2/repository/org/projectlombok/lombok/0.9.3/lombok-0.9.3.jar 
urls[3] = file:/C:/Users/Daedin/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar 
Number of foreign imports: 1 
import: Entry[import from realm ClassRealm[maven.api, parent: null]] 

----------------------------------------------------- 

[/編輯]

我的配置如下:

  • 的Eclipse 3.6太陽神
  • Maven的2.3
  • JDK 1.6
  • 龍目0.9.3
  • Delombok Maven插件0.9.3.1

pom.xml中的包含delombok插件的聲明中的部分如下:

<plugin> 
    <groupId>org.projectlombok</groupId> 
    <artifactId>maven-lombok-plugin</artifactId> 
    <version>0.9.3.1</version> 
    <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>delombok</goal> 
      </goals> 
     </execution> 
    </executions> 
    <dependencies> 
     <dependency> 
      <groupId>sun.jdk</groupId> 
      <artifactId>tools</artifactId> 
      <version>1.6</version> 
      <scope>system</scope> 
      <systemPath>${java.home}/../lib/tools.jar</systemPath> 
     </dependency> 
    </dependencies> 
</plugin> 

我道歉如果這個問題看起來微不足道,但我一直在尋找一個答案几個小時,我開始陷入困境。

在此先感謝您提供的任何提示 - 如果我遺漏了任何有用的信息,請讓我知道。

+0

這是在Linux,Windows還是OS X? (不幸的是,它有所不同) –

+0

我在Windows上。只是要清楚:如果我使用命令提示符從根運行mvn clean包,一切正常。所以我會認爲這個問題存在於某處Eclipse的設置中,但我真的無法理解它在哪裏。 –

+0

我現在已經切換到lombok 0.10.0-RC1來解決另一個問題,但問題仍然存在。 –

回答

0

您是否通過執行lombok.jar配置了您的Eclipse?

龍目島還需要javac的1.6或更高

+0

是的,在開發過程中一切都很好。這個問題顯然是在調用Maven Builder時發生的。我將編輯原始帖子以添加痕跡。 –

2

您需要確保Eclipse是使用JDK(不是JRE)推出。可以肯定,路徑設置爲on * X系統中的eclipse.ini

可執行文件(可能includind的MacOS):

-vm /path/to/jdk/bin/javaw 

在Win *:

-vm C:/path/to/jdk/bin/javaw.exe 
or -vm C:\\path\\to\\jdk\\bin\\javaw.exe 
+0

我的eclipse.ini看起來是這樣的: -vm C:/ Program Files文件/的Java/jdk1.6.0_26/bin'的 -vmargs -Dosgi.requiredJavaVersion = 1.6 -Xms40m -Xmx2048m -javaagent:龍目島。 jar -Xbootclasspath/a:lombok.jar' –

+0

@Sébastien-vm需要指向可執行文件,而不是目錄。將javaw.exe添加到路徑 –

+0

我做了更改,但不幸的是問題仍然存在 –

1

我覺得問題已經在Lombok 0.10.0或更高版本中解決了

+0

我已經停止使用Lombok和maven作爲我的項目(或者是其中的一個),但是我會再次嘗試一次正確的配置。 –

1

當在Linux VM上編譯時,當源使用裝入的Windows共享時,我遇到了與delombok類似的問題。在我的情況下,通過將資源庫專門移到Linux VM上的另一個位置,然後重新編譯來解決問題。

0

昨天下午我有這個問題。我使用的是Java 8,Eclipse的氧氣,maven 3.5.2。

解決方案: 問題得到了通過從POM龍目依賴,並通過單獨下載它添加在構建路徑龍目罐子解決。

我還編輯了的eclipse.ini並添加以下內容:

-javaagent:lombok.jar

我下載了18年1月16日版的龍目島罐子。

相關問題