Maven + Delombok проблема при компиляции в Eclipse - PullRequest
2 голосов
/ 04 июля 2011

У меня есть проект maven в Eclipse, который использует lombok / delombok.

Когда я собираю из Eclipse, используя скрипт maven (например, mvn clean package), все работает нормально.

Однако, когда я запускаю прямо из Eclipse (скажем, с чистой / сборкой моего проекта), у меня возникает проблема с classpath относительно класса, который должен присутствовать в tools.jar из JDK. Я попытался добавить 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]]

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

[/ Edit]

Моя конфигурация следующая:

  • Затмение 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>

Я прошу прощения, если этот вопрос кажется тривиальным, но я искал ответ в течение нескольких часов, и я начинаю застрять.

Заранее благодарим за любую подсказку, которую вы можете предоставить - и, пожалуйста, дайте мне знать, если я пропустил любую полезную информацию.

Ответы [ 5 ]

2 голосов
/ 04 июля 2011

Вы должны убедиться, что Eclipse запущен с использованием JDK (не JRE).Чтобы быть уверенным, установите путь к исполняемому файлу в eclipse.ini

в * x системах (возможно, включая MacOS):

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

в Win *:

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

(должно быть в отдельных строках, без кавычек - см. https://wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example)

Чтобы определить, в какой версии JVM Eclipse запущен, вы можете использовать Справка-> О программе, Сведения об установке, Конфигурация.Затем найдите строку -vm.Если вы видите несколько строк -vm или строка -vm указывает на JRE вместо JDK, настройте eclipse.ini, затем перезапустите Eclipse и выполните Maven-> Update для проекта.

1 голос
/ 09 июня 2017

У меня была похожая проблема с delombok при компиляции на виртуальной машине Linux, когда источник использовал смонтированный общий ресурс Windows. В моем случае проблема была решена путем перемещения хранилища в другое место исключительно на виртуальной машине Linux, а затем перекомпиляции.

1 голос
/ 13 октября 2011

Я думаю, что проблема была решена в Lombok 0.10.0 или выше

0 голосов
/ 29 ноября 2017

У меня была эта проблема вчера днем.Я использую Java 8, Eclipse oxygen, maven 3.5.2.

Решение: Проблема была решена путем удаления зависимости Lombok из pom и добавления Jar Lombok в путь сборки с помощьюскачав его отдельно.

Я также отредактировал файл eclipse.ini и добавил следующее:

-javaagent: lombok.jar

Я скачал версию Jar Lombok версии 1.16.18.

0 голосов
/ 04 июля 2011

Вы настроили свой Eclipse, выполнив lombok.jar?

Также Ломбок требует javac 1.6 или выше

...