Узнайте, какие измененные ресурсы вызвали обновление/перестроение рабочей области в Eclipse с помощью Buildship.

Есть ли способ получить более подробные выходные данные журнала с платформы Eclipse или плагина Buildship (или даже через сам Gradle API) в отношении того, что вызвало пересборку проекта?

Контекст:

В настоящее время мы переходим с Eclipse Mars (с подключаемым модулем Spring Gradle) на Eclipse Photon (с подключаемым модулем Gradle Buildship). Одна из проблем, с которой мы сталкиваемся в новой версии, заключается в том, что каждый раз, когда мы открываем Eclipse, она перестраивает большие части рабочего пространства, что в больших проектах может занять несколько минут. Refresh workspace on startup отключен в настройках Eclipse. Установка Max simultaneous project builds на более высокое значение и Max iterations when building with cycles на более низкое значение, чем значения по умолчанию, помогает немного смягчить проблему, ускоряя первоначальную перестройку, но, в конце концов, это решает только реальную проблему.

У нас не было этих проблем в старой версии и мне такое поведение кажется странным. После полного построения рабочей области, закрытия Eclipse и его повторного открытия я ожидаю, что никакие ресурсы не изменились, и нет необходимости в перестроении.

Хотя у нас есть довольно много настраиваемых плагинов и задач Gradle, нет очевидных нарушителей, таких как задачи, которые генерируют источники. Однако я не хочу полностью исключать возможность того, что что-то, что мы настроили, влияет на файл при оценке проектов Gradle.

Поэтому было бы очень полезно получить дополнительную информацию о том, почему IDE/плагин считает, что проект требует пересборки, чтобы получить стартовое преимущество.

Единственная настройка, которую я пока нашел, это eclipse.log.level, но по умолчанию она уже равна ALL.


person Crusha K. Rool    schedule 05.09.2018    source источник
comment
Существует множество трассировок, которые вы можете включить (см. «Общие › Трассировка» в настройках), но какая трассировка для включения, вероятно, потребует изучения исходного кода.   -  person greg-449    schedule 05.09.2018
comment
У меня нет никаких параметров трассировки в моих настройках. Возможно, это требует установки определенного плагина?   -  person Crusha K. Rool    schedule 05.09.2018
comment
Целая страница отсутствует.   -  person Crusha K. Rool    schedule 05.09.2018
comment
Страница предоставляется плагином org.eclipse.ui.trace, но я думал, что он включен во все установки Eclipse.   -  person greg-449    schedule 05.09.2018
comment
Тогда вина, вероятно, на мне, так как я удалил некоторые предустановленные плагины, которые нам не нужны, чтобы сделать наш внутренний дистрибутив как можно более легким.   -  person Crusha K. Rool    schedule 05.09.2018
comment
Вы также можете включить трассировку с помощью параметра командной строки -debug, см. этот ответ   -  person greg-449    schedule 05.09.2018
comment
Хм, только что проверил новый дистрибутив Eclipse Photon for Java Developers, и он, похоже, тоже не включает страницу трассировки по умолчанию. Эта страница, кажется, исходит от подкомпонента Equinox.   -  person Crusha K. Rool    schedule 05.09.2018
comment
Похоже, что плагин включен только в функцию Eclipse PDE, которая будет только в пакетах, ориентированных на разработку плагинов.   -  person greg-449    schedule 05.09.2018


Ответы (2)


В итоге я добавил файл .options с

org.eclipse.jdt.core/debug=true
org.eclipse.jdt.core/debug/javadelta=true

org.eclipse.core.resources/build/delta=true
org.eclipse.core.resources/refresh=true

в каталог установки Eclipse. Затем я запустил Eclipse с аргументами -debug -consoleLog. В основном, как указано в этом ответе.

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


Полученного вывода трассировки в консоли было достаточно, чтобы указать на проблему, из-за которой выходной каталог Gradle для файлов .class не совпадал с ожидаемым выходным каталогом Eclipse, поэтому он, вероятно, рассматривал папку как просто еще один набор ресурсов.

Это также показало, что разрешенный путь к классам каждого проекта был помечен как измененный в каждом проекте сразу после открытия Eclipse. Пока не уверен, что первая проблема является причиной второй.

person Crusha K. Rool    schedule 05.09.2018

Что касается темы ненужных сборок при запуске Eclipse: вы можете обновиться до Eclipse 2018-09 (см. https://www.eclipse.org/downloads/), который содержит два исправления, связанных с этим:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=536990, относящийся к Eclipse Photon.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=525597 — старая проблема, которая появлялась только в больших рабочих пространствах (где она на самом деле причиняла больше всего вреда).

person Till Brychcy    schedule 27.09.2018
comment
Да, мы действительно узнали об этой ошибке и обновились до новой версии. И это действительно решило наши проблемы. (В контексте исходного вопроса принятый ответ правильный. Но все равно спасибо за подсказку) - person Crusha K. Rool; 28.09.2018