Buildr: добавление пути к сгенерированным файлам eclipse / idea

#eclipse #intellij-idea #buildr #buildpath

#eclipse #intellij-idea #buildr #buildpath

Вопрос:

У меня есть устаревший java-проект, который мы перенесли в buildr / artifactory из ant / jars в svn.

Основной код находится в папке по умолчанию (src / main / java), но у нас есть несколько внешних исходных путей для различных тестов, которые мы не можем переместить в папку по умолчанию, но мы хотим иметь к ней доступ.

В настоящее время при добавлении новой библиотеки / регенерации полей IDE эти исходные пути не отображаются, и я не могу найти краткое обсуждение в руководстве buildr о том, как на самом деле их добавить, вместо того, чтобы повторно добавлять все вручную в eclipse (которое просто стирается при следующем восстановлении).

Есть идеи, как сделать так, чтобы buildr явно отображал несколько исходных путей, чтобы цели idea / eclipse генерировались правильно?

Ответ №1:

Есть два способа, которые, как я знаю, будут работать с IDEA. Второй может также работать с Eclipse, в то время как первый зависит от конкретной idea задачи.

Решение, специфичное для IDEA:

 define 'proj' do
   # ...
   iml.main_source_directories << _('src/other')
end
  

iml также имеет test_source_directories и excluded_directories массивы, к которым вы можете добавлять.

Возможно, решение, совместимое с eclipse, с большим фоном, чем вы, вероятно, хотите:

iml Объект получает значения по умолчанию для массивов каталогов основного и тестового источников из project.compile.sources и project.test.compile.sources (небольшое упрощение; ресурсы также учитываются). Buildr определяет эти .sources атрибуты проекта из макета, поэтому вместо явного добавления к iml атрибутам вы можете использовать пользовательский макет для своего проекта, который включает ваши специальные исходные пути. Это может сработать с eclipse задачей, но я не пробовал.

Комментарии:

1. Да, добавление project.compile.sources должно работать с генератором проекта / пути к классам Eclipse.

2. Спасибо за ответ. Я собираюсь попробовать это сегодня.