Подтвердить что ты не робот

Цикл сборки Eclipse, вызванный созданным протобуфом кодом (связанным с Maven Project Builder)

Среда разработки

Я работаю над проектом Maven Java клиента/сервера, который полагается на Буферы протокола ( protobuf) для отправки RPC между клиентами и сервером. Я использую Eclipse для Java EE как мою первую IDE. Поскольку я использую Maven в своем проекте, я использую плагин m2eclipse для Eclipse. Я настраиваю свой проект в Eclipse для использования "Maven Nature".

Проблема

В принципе, с описанной выше настройкой рабочего пространства, я запускаю INFINITE BUILD LOOPS, если Eclipse настроен на автоматическое создание (по умолчанию это: меню Project → Build Automatically). Всякий раз, когда Eclipse отжимает сборку, сборка войдет в бесконечный цикл, часто приводящий к тому, что все ресурсы моего компьютера, потребляемые Eclipse, и в результате всплывающее окно ошибки появится в среде IDE из-за переполнения памяти. Что происходит, так это то, что весь сгенерированный Java-код из файлов .proto постоянно создается Maven с помощью сборки Eclipse. После того, как прото файлы сгенерированы и скомпилированы в каталог (в моем случае target/generated-sources), сборка прото файлов немедленно повторяется. Даже если бы я нажал на кнопку остановки, сборка снова откручивалась. Единственный способ остановить бесконечный цикл сборки - отключить автоматическую сборку.

Просматривая ссылки в Интернете (см. этот отчет SOF, также перечисленный ниже), одним из способов было отключить Maven Project Builder в моем проекте Eclipse. Для этого мне нужно было бы открыть настройки проекта Eclipse → Builders → отменить выбор Maven Project Builder. Теперь бесконечный цикл построения не произойдет, по-видимому, потому что это был создатель m2eclipse, который был виновником. Тем не менее, теперь я теряю много полезной функциональности от этого строителя. А именно, я не могу воспользоваться автоматической обработкой ресурсов через m2eclipse, например, фильтрацию ресурсов. Обратите внимание, что проекты, использующие Maven Nature, имеют каталоги ресурсов (src/main/resources и src/test/resources), исключенные на пути сборки Java из-за ожидания того, что Maven Project Builder добавляет их в путь к классам. Таким образом, одна проблема, с которой я сталкиваюсь с отключенным Maven Project Builder, заключается в том, что я не могу читать файлы ресурсов из пути к классам в своих тестах. Мне нужно сначала запустить ручную сборку maven, чтобы получить доступ к ресурсам (но как только я обновляю проект, я больше не смогу найти эти ресурсы класса). Или я могу изменить свой проект Java Build Path, но это противоречит умолчанию Maven Nature, которые работают для меня во всех проектах Java Eclipse, кроме тех, которые полагаются на protobuf.

Итак, все сказанное...

Кто-нибудь знает, как я могу обойти эту проблему? Платформа Eclipse кажется слишком зрелой, чтобы эта проблема продолжала сидеть. Я всегда мог бы найти ошибку Eclipse, которая будет собирать пыль, но, возможно, это не ошибка Eclipse, а неправильная конфигурация на моей стороне. Большое вам спасибо за помощь.

Ссылки по теме

4b9b3361

Ответ 1

После более подробного чтения прилагаемого