2

我在 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]]

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

[/编辑]

我的配置如下:

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

如果这个问题看起来微不足道,我深表歉意,但我已经寻找了几个小时的答案,但我开始陷入困境。

提前感谢您提供的任何提示 - 如果我遗漏了任何有用的信息,请告诉我。

4

5 回答 5

2

您需要确保使用 JDK(而不是 JRE)启动 Eclipse。可以肯定的是,在 eclipse.ini 中设置可执行文件的路径

在 *x 系统上(可能包括 MacOS):

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

赢*:

-vm
C:\path to jdk\bin\javaw.exe

(需要在单独的行上,没有引号 - 请参阅https://wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example

要确定在哪个JVM Eclipse 下启动,可以使用Help->About、Installation Details、Configuration。然后寻找 -vm 行。如果您看到多条 -vm 行,或者 -vm 行指向 JRE 而不是 JDK,请调整 eclipse.ini,然后重新启动 Eclipse 并在项目上执行 Maven->Update。

于 2011-07-04T07:22:42.397 回答
1

我认为问题已在 Lombok 0.10.0 或更高版本中解决

于 2011-10-13T09:41:53.563 回答
1

在 Linux VM 上编译时,当源使用已安装的 Windows 共享时,我遇到了与 delombok 类似的问题。在我的情况下,问题是通过将存储库移动到 Linux VM 上的另一个位置,然后重新编译来解决的。

于 2017-06-09T12:52:33.450 回答
0

您是否通过执行 lombok.jar 配置了 Eclipse?

Lombok 还需要 javac 1.6 或更高版本

于 2011-07-03T23:19:53.277 回答
0

我昨天下午遇到了这个问题。我正在使用 Java 8、Eclipse 氧气、maven 3.5.2。

解决方案: 通过从 pom 中删除 Lombok 依赖项并通过单独下载将 Lombok jar 添加到构建路径中来解决该问题。

我还编辑了 eclipse.ini 并添加了以下内容:

-javaagent:lombok.jar

我下载了 1.16.18 版本的 Lombok jar。

于 2017-11-29T07:49:29.397 回答