我在Eclipse中有一个使用lombok / delombok的maven项目。
当我使用maven脚本(例如mvn clean package
)从Eclipse构建时,一切正常。
但是,当我直接从Eclipse运行时(比如我的项目的清理/构建),我有一个类路径问题,关于应该出现在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]]
-----------------------------------------------------
[/编辑]
我的配置如下:
包含delombok插件声明的pom.xml部分如下:
<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 :(得分:2)
您需要确保使用JDK(而不是JRE)启动Eclipse。当然,在eclipse.ini中设置可执行文件的路径
在* x系统上(可能包括MacOS):
-vm /path/to/jdk/bin/javaw
on Win *:
-vm
C:\path to jdk\bin\javaw.exe
(需要在单独的行上,没有引号 - 请参阅https://wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example)
要确定在哪个JVM Eclipse下启动,您可以使用Help-&gt; About,Installation Details,Configuration。然后查找-vm行。如果您看到多个-vm行,或者-Jm行指向JRE而不是JDK,请调整eclipse.ini然后重新启动Eclipse并对项目执行Maven-&gt;更新。
答案 1 :(得分:1)
我认为这个问题已在Lombok 0.10.0或更高版本中得到解决
答案 2 :(得分:1)
I had a similar issue with delombok when compiling on a Linux VM, when the source was using a mounted Windows share. In my case the problem was solved by moving the repository to another location exclusively on the Linux VM, then recompiling.
答案 3 :(得分:0)
您是否通过执行lombok.jar配置了Eclipse?
龙目岛也需要javac 1.6或更高版本
答案 4 :(得分:0)
昨天下午我有这个问题。我使用的是Java 8,Eclipse氧气,maven 3.5.2。
<强>解决方案:强> 通过从pom中删除Lombok依赖项并通过单独下载在构建路径中添加Lombok jar来解决该问题。
我还编辑了eclipse.ini并添加了以下内容:
-javaagent:lombok.jar
我下载了1.16.18版本的Lombok jar。