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

Интегрируйте конструктор Ant в Eclipse: Относительные пути для рабочего диапазона области обновления

Этот вопрос похож на Интегрировать конструктор Ant в Eclipse: Error "Variable refer empty empty" , но запрашивает что-то другое.

В моем проекте Eclipse JDT у меня есть несколько задач Ant, которые я хочу выполнить перед компиляцией, поэтому я добавил конструктор Ant в конфигурацию компоновщика Eclipse. Теперь я хочу настроить два варианта "обновить ресурсы после завершения" и "рабочий набор релевантных ресурсов" для этого строителя, чтобы они содержали конкретный каталог в моем проекте.

Оба позволяют мне указать "рабочий набор" с этим . Проблема заключается в том, что это поместит пути в конфигурационный файл Builder Eclipse, имеющие отношение к рабочей области, и, таким образом, пути будут включать в себя имена проектов.

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

Вот почему я ищу способ как указать рабочий набор в Eclipse относительно каталога проекта (а не каталог рабочей области) или каким-либо другим способом определить область обновления такого конструктора, что он включает в себя один каталог в моем проекте.

Я использую Eclipse 3.7 (Indigo).

Если я настрою рабочий набор в диалоговом окне и посмотрю в файле конфигурации впоследствии, следующая строка будет значением параметра ATTR_REFRESH_SCOPE:

${working_set:
<?xml version="1.0" encoding="UTF-8"?>

<resources>

<item path="/MyProject" type="4"/>

</resources>}

Санированное это выглядит так:

${working_set:
  <?xml version="1.0" encoding="UTF-8"?>
  <resources><item path="/MyProject/lib" type="2"/></resources>
}

Итак, я хочу получить часть "MyProject". Я попробовал решение упомянутого выше вопроса и заменил путь на ${build_project:/lib}. Это не дает сообщения об ошибке, но, похоже, не имеет никакого эффекта (Eclipse не обновит указанный каталог).

Я также попытался заменить определение всего рабочего набора на ${build_project:/lib}, но это дает сообщение об ошибке Unable to restore resource memento.

Я знаю, что могу просто сказать Eclipse обновить весь проект после запуска застройщика, но это не то, что я хочу (его довольно медленно). Кроме того, для опции конфигурации "соответствующие ресурсы" это означает, что строитель безошибочно запускается после каждого изменения в проекте.

4b9b3361

Ответ 1

К сожалению, Eclipse не очень хорош с относительными каталогами.

Относительные пути в Eclipse

Однако вы можете сделать следующее:

  • Создайте новое рабочее пространство.
  • Импортировать файлы из известного местоположения, которые будут одинаковыми на всех машинах.
  • Настроить все внутри этого известного каталога.
  • Предоставьте рабочие места и инструкции по настройке другим разработчикам, чтобы они использовали этот же "известный каталог".

У вас может быть что-то вроде

C:\YourKnownDir\
    \workspace\
    \src\
    \build\

и запустите eclipse с помощью командного файла:

start %ECLIPSE_DIR%\eclipse.exe -data .\workspace

Если вы собираетесь включить файлы .project в SVN, действительно должен быть предопределенный полный путь. EG:

C:\svn

Надеюсь, что это поможет, но я не знаю другого способа решить эту проблему.

Ответ 2

Как добавить один уровень папок в репозиторий? Позволяет добавить проект в одну папку в репозитории. так что всякий раз, когда проект проверяется, создается папка с именем проекта.
В настоящее время, если вы проверяете проект в рабочей области папки1. Это должно выглядеть так:

workspace_1\lib

Если вы добавите один уровень папки в репо, то есть имя проекта (например, MyProject здесь), все, кто проверяет проект, получат такое же название проекта. и несколько копий проекта будут выглядеть как

workspace_1\MyProject\lib
workspace_2\MyProject\lib

Таким образом, вы можете создавать несколько копий проекта с тем же именем проекта, и ваш script может использовать эту уникальность имени проекта всегда.

Ответ 3

Совершенно другой подход:

Я думаю, что ограничения общих файлов конфигурации Eclipse (т.е. файлов конфигурации, привязанных к SVN) довольно велики; некоторые люди предпочитают иметь свои зависимые библиотеки как источник на диске, другие предпочитают ссылки JAR; имена каждого пользователя проекта и относительные местоположения рабочего пространства различны и т.д. И, как вы видели, множество опций относится либо к местоположению проекта (то есть не относится к другим проектам), либо к расположению рабочей области.

Так как у меня обычно есть файлы сборки Maven, я использую maven-eclipse-plugin для создания файлов конфигурации Eclipse. Есть несколько вариантов выбора во время выполнения, и почти все может быть настроено в файле сборки (а если нет, просто подключите плагин к этому плагину, который делает то, что вы хотите, и отправьте его с помощью своей сборки. Maven автоматически построит это плагин, если это необходимо для пользователей, которые его используют). Кроме того, некоторые дополнительные абстрактные настройки распределяются между плагинами, поэтому, если кто-либо настаивает на использовании Netbeans вместо Eclipse, он, по крайней мере, получит проект с рудиментарной настройкой (зависимости, версии JRE, наборы символов и т.д.), Без меня когда-либо использовавших или даже настроенных Netbeans.

Положительный побочный эффект: при добавлении или обновлении зависимости от библиотеки необходимо обновить только одно место (Maven POM), остальное можно легко восстановить.

Я уверен, что это не каждый подход (особенно если вы используете Eclipse не только для разработки, но и для создания ваших конечных артефактов, использование другой системы сборки может выглядеть как излишний).

Ответ 4

В подобной ситуации я решил обновить "Проект, содержащий выбранный ресурс" (как вы уже сказали, он не зависит от имени проекта) и помечен как "Производный ресурс" как можно больше папок (Свойства папки → Ресурс → флажок "Производный" ). Eclipse обновит производные ресурсы, но не попытается проверить/перестроить/etc.