Eclipse: как сохранить исходные файлы проекта и файл ant build.xml отдельно от рабочего пространства eclipse?

Я пытаюсь заново познакомиться со средой Eclipse и интеграцией муравьев.

Вопрос: как сохранить мои исходные файлы dir + build.xml отдельно от рабочей области?

У меня есть небольшой java-проект и его файл build.xml со всеми источниками, помещенными в отдельную папку проекта. Затем я запустил Eclipse и позволил ему импортировать мой проект через New Project -> «Проект Java из существующего файла сборки Ant».

Все шло нормально, пока я не захотел собрать проект из Eclipse, используя build.xml. Ant начинает жаловаться на то, что не может найти дерево исходных текстов. После того, как я изучил рабочую область, я обнаружил, что Eclipse скопировал build.xml в рабочую область, поэтому очевидно, что ant не может найти там никаких источников. Они все еще находятся в подчинении у моего директора проекта, и я хочу, чтобы они остались там, если это возможно.

Итак, как лучше всего заставить эту настройку работать? рабочее пространство с одной стороны, мой проект с другой?

Благодарить!

изменить: возможно ли то, что я хочу?


person simou    schedule 18.03.2011    source источник
comment
Почему вы хотите их разделить? Есть какая-то конкретная причина?   -  person atrain    schedule 31.07.2011
comment
Возможно, вы можете указать каталог, в котором будет выполняться сценарий сборки, чтобы вы могли запустить его, хотя он скопирован в новом месте. Посмотрите и на другие предложения.   -  person Danail Nachev    schedule 01.08.2011
comment
Потому что Netbeans может это сделать;)   -  person Leif Gruenwoldt    schedule 03.08.2011
comment
Вы можете делать именно то, что хотите (разделять папки проекта и рабочего пространства), используя eclipse IDE. Следуй этим шагам. 1. Создайте новый проект Java. 2. Импорт ›› Файловая система ›› Выберите папку проекта (файлы buid.xml) 3. Нажмите «Дополнительно» (выберите «Создать ссылки в рабочей области») ScreenShot Это создаст ссылку на настоящий проект в вашем рабочем пространстве.   -  person M Faisal Hameed    schedule 18.08.2016


Ответы (5)


Вместо использования «Java-проекта из существующего файла сборки Ant» просто создайте простой «Java-проект». В мастере снимите флажок «Использовать расположение по умолчанию» и введите путь (или перейдите) к каталогу верхнего уровня вашего существующего проекта (то есть, где находится ваш build.xml). Правда, eclipse создаст файлы .project и .classpath в каталоге вашего проекта (если они еще не существуют), но проект останется за пределами рабочей области eclipse.

В частности, эта установка действительно хорошо зарекомендовала себя в очень конкретной ситуации в автономной системе, где исходное дерево находится в общем месте, но у каждого пользователя есть рабочее пространство в защищенном месте. Используя метод, описанный выше, каждый пользователь этой системы может создать проект в своем собственном рабочем пространстве eclipse, выполнить цели ant и впоследствии удалить проект из своего рабочего пространства, не затрагивая рабочие пространства других пользователей.

person aliasmrchips    schedule 05.08.2011
comment
Когда я указываю Eclipse на расположение моего существующего проекта, он говорит, что dir уже используется, хотя это не проект Eclipse, это просто проект простого муравья. Использование Helios 3.6.2. - person Leif Gruenwoldt; 06.08.2011
comment
Я не могу воспроизвести эту конкретную ошибку с Helios 3.6.2 или Indigo 3.7 в OS X. Единственный раз, когда я когда-либо сталкивался с такой конфликтной ошибкой с eclipse, был при попытке использовать рабочее пространство, которое уже используется или, по крайней мере, кажется быть так (устаревшие метаданные рабочей области могут это сделать). Однако, пытаясь воспроизвести эту ошибку, я обнаружил, что на самом деле могу повторить предложенный выше процесс с двумя одновременно работающими экземплярами eclipse, используя два разных рабочих пространства, и оба без каких-либо проблем указывают на общий каталог проекта за пределами любого рабочего пространства. - person aliasmrchips; 06.08.2011

А как насчет использования ссылок?

person FerranB    schedule 19.03.2011
comment
Хорошая идея. Спасибо. Я предполагаю, что мои опасения по поводу того, что проект и рабочее пространство будут как можно более раздельными, на самом деле не являются проблемой, потому что я не смог найти много по этой теме. Кажется, что все с радостью смешивают их обоих в одном каталоге. Но с концептуальной точки зрения я бы подумал, что между рабочим пространством IDE и самим проектом должно быть различие. Где проект не должен иметь тесных связей с IDE. Ну может я просто болтаю ... - person simou; 19.03.2011

Я делаю это все время в проектах C ++ (извините, без Java, но я думаю, что эта концепция переносима).

Мои рабочие области находятся в ~ / workspaces / {workspace_name}. У меня есть один общий файл проекта в ~ / {my_projects, а затем исходные деревья (несколько версий) находятся в ~ / proj1, ~ / proj2 и т. Д.

В каждом каталоге ~ / proj * я помещаю символическую ссылку на ~ / my_projects / .project и .cproject (требуется для C ++, не используется в Java). Таким образом, каждое исходное дерево использует один файл проекта. Затем в каждой рабочей области (по одной для каждого исходного дерева) я настраиваю рабочую область, импортируя ссылку на проект. Например, ~ / workspaces / proj1 импортирует ~ / proj1 / .project, но ~ / proj1 / .project на самом деле является символической ссылкой на ~ / my_projects / .project.

Таким образом, источник отделен от рабочих пространств. При сборке нет никакой реальной конфигурации - у меня просто Eclipse запускает make в соответствующем узле дерева - у нас уже есть собственная командно-ориентированная система сборки (мы не используем ant, но должен применяться тот же принцип ).

Я управляю исходным кодом папки ~ / my_projects в частной области SCM, поэтому другие члены команды не видят ее и не возятся с ней - многие из них вообще не используют Eclipse.

person Stabledog    schedule 04.08.2011

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

Имейте в виду, что вы на самом деле ничего не смешиваете. Есть только один набор исходных файлов, и есть два разных способа его создания; Муравей и затмение. Эти компоновщики независимы друг от друга, поэтому нет проблем с подключением к Eclipse. Вы даже можете с радостью передать все файлы eclipse (.classpath, .project, .settings) в систему управления версиями, не затрагивая разработчиков, использующих другую IDE.

person KevinS    schedule 19.03.2011
comment
Когда я все еще работал с EI, я довольно часто сталкивался с поврежденной рабочей областью, и b / c исходных файлов находились в другом месте, отличном от рабочего пространства, я мог легко удалить сломанное рабочее пространство и заменить его новым, не влияя на сам проект. Возможно, я ошибаюсь, но файл build.xml, который я использовал тогда, всегда находился в самом проекте, а не в рабочей области. Думаю, я использовал Eclipse для инкрементных сборок, но для развертываний, настройки БД и модульного тестирования я регулярно использовал свои цели build.xml из представления ant внутри Eclipse. К сожалению, я забыл, как это сделать 2 - person simou; 19.03.2011
comment
Сохранение файлов проекта IDE - плохая идея. По моему опыту, они включают в себя пути к домашнему каталогу, зависящие от пользователя, поэтому их нельзя повторно использовать между разработчиками. - person Leif Gruenwoldt; 03.08.2011
comment
@ leif81 Плохая идея - помещать информацию о пользователе в конфигурацию вашего проекта, и в этом также нет необходимости. Я не могу говорить о других IDE, но Eclipse предоставляет функции, которые позволяют вашим файлам конфигурации содержать заполнители, которые затем могут быть указаны каждым разработчиком в своей рабочей области. например переменные пути к классам, подстановка строки запуска / отладки. - person KevinS; 05.08.2011
comment
@Kevin, я говорил об опыте работы с Netbeans, возможно, Eclipse справляется с этим лучше. - person Leif Gruenwoldt; 08.08.2011

Я делаю это все время (правда, использую maven, а не ant), но действует тот же принцип.

Если у вас есть существующий проект в Eclipse (с .project в исходном дереве), вы можете Импортировать проект-> Импортировать существующий проект. Когда появится диалоговое окно, вы можете выбрать «Копировать проекты в рабочую область». Убедитесь, что этот флажок не установлен, и они импортируются.

Вы по-прежнему сохраняете .project в исходном дереве исходного кода, но это все.

Итак, теперь у меня есть

  1. code / xxx (содержащий файлы .java, находящиеся в SVN)
  2. code / xxx-workspace (который содержит рабочую область eclipse)
person Matthew Farwell    schedule 05.08.2011