Есть ли способ автоматически сгенерировать файл ant build.xml из Eclipse?

В Eclipse я обнаружил, что я могу легко экспортировать файл сборки Ant для своего проекта. Он предоставляет ссылки на сторонние библиотеки и некоторые базовые цели. Я использую его из своего глобального файла сборки. Единственное, что меня беспокоит в этом, это то, что если что-то изменяется в структуре проекта (например, добавляется новая сторонняя библиотека), мы должны подумать (да, иногда это может быть сложно!) О регенерации этого файла build.xml. Мне интересно, знает ли кто-нибудь здесь способ его автоматического обновления. Под "автоматически" я подразумеваю, что нет необходимости явно просить Eclipse регенерировать его каждый раз, когда это необходимо. Я не знаю, что может быть спусковым крючком ...

Есть мысли или знания по этому поводу?

Спасибо!

MJ


person Joanis    schedule 15.11.2010    source источник
comment
Вы пробовали добавить собственный шаг построителя?   -  person Kelly S. French    schedule 15.11.2010
comment
Я не совсем уверен, как я мог это сделать. Я посмотрел на разработчиков проектов. Я думаю, что там может быть что-то ... Я мог бы, вероятно, добавить конструктор, который генерировал бы файл build.xml после завершения основного Java Builder. Это то, что вы называете строительным шагом? Я мог бы попробовать это, если бы имел представление о программном вызове действия export ant buildfile в проекте. Я сомневаюсь, что это вообще возможно.   -  person Joanis    schedule 15.11.2010
comment
Здравствуйте, М. Джоанис, какое решение вы наконец нашли? Я пытаюсь достичь того же самого, поэтому было бы неплохо, если бы вы могли поделиться своими выводами.   -  person theDmi    schedule 08.07.2011
comment
Здравствуйте, DMM, у меня еще не было, чтобы обновить этот файл. Так что я больше не заморачивался с поиском способа его автоматического обновления. Учитывая простоту файловой структуры, я бы, вероятно, написал сценарий, генерирующий ее (с одновременным разделением IDE и процесса сборки). У меня есть много автоматически сгенерированных целей, но большинство из них не имеют значения вне среды IDE, поэтому я ограничился 3-4 основными приложениями. Зависит от ваших конкретных потребностей ...   -  person Joanis    schedule 11.07.2011


Ответы (7)


Щелкните правой кнопкой мыши проект Eclipse, затем «Экспорт», затем «Общие», затем «Файлы сборки Ant». Однако я не думаю, что можно настроить выходной формат.

person Guillaume    schedule 15.11.2010
comment
Извините, я добавил примечание автоматически. Как я уже сказал, я знаю, что могу легко сгенерировать и экспортировать такой файл. Что меня беспокоит, так это необходимость указывать Eclipse его регенерацию каждый раз, когда это необходимо. Я был бы заинтересован в способе автоматического запуска этого действия экспорта файла сборки ant в моих проектах. Я не вижу (пока) проблем с выходным форматом. - person Joanis; 15.11.2010
comment
Тогда я не думаю, что это возможно в стандартном Eclipse. Может, какой-нибудь плагин это разрешает ... - person Guillaume; 15.11.2010
comment
Кажется, создается build.xml для веб-проектов, но не для уха. Могу ли я автоматически сгенерировать build.xml для файла уха? - person Mark W; 26.01.2012
comment
На данный момент эта функция присутствует в плагине Eclipse Java. Вам понадобится плагин Web Tools Platform и его перспектива J2EE. - person Guillaume; 14.11.2014

Я сам пытался сделать то же самое. Я обнаружил, что «Экспорт файла сборки Ant» запускается в файле org.eclipse.ant.internal.ui.datatransfer.AntBuildfileExportPage.java. Он находится в плагине org.eclipse.ant.ui.

Чтобы просмотреть исходный код, используйте перспективу «Разработка подключаемых модулей» и откройте представление «Надстройки». Затем щелкните правой кнопкой мыши плагин org.eclipse.ant.ui и выберите «Импортировать как> исходный проект».

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

person Tristan Ratchford    schedule 22.09.2011
comment
Похоже, очень многообещающий путь. Похоже, вы хорошо разбираетесь в архитектуре плагина Eclipse. Было бы хорошо, если бы вы сообщали нам обо всех ваших успехах. Спасибо! - person Joanis; 26.09.2011
comment
Обновление: к сожалению, моя работа не дала мне достаточно времени для ее реализации. Вместо этого это стало командным ритуалом: каждый раз, когда мы добавляли новую зависимость, команда повторно экспортирует файлы сборки. Это не идеальный вариант, но он самодостаточен, потому что, если кто-то пытался выполнить сборку на сервере без экспорта файлов сборки, он обычно ломался. - person Tristan Ratchford; 20.11.2013

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

Мы развернули собственный инструмент Eclipse Java to Ant, который теперь доступен на GitHub:

ant-build-for-java

Чтобы воспользоваться им, позвоните:

java -jar ant-build-for-java.jar <folder with repositories> [<.userlibraries file>]

Первый аргумент - это папка с репозиториями. Он будет рекурсивно искать в папке любой .project файл. Инструмент создаст build.xml в указанной папке.

Необязательно, вторым аргументом может быть экспортированный файл .userlibraries из Eclipse, необходимый, когда какой-либо из проектов использует пользовательские библиотеки Eclipse. Инструмент тестировался только с пользовательскими библиотеками с использованием относительных путей, именно так мы используем их в нашем репо. Это означает, что JAR-файлы и другие архивы, необходимые для проектов, находятся внутри проекта Eclipse и на них есть ссылки.

Инструмент поддерживает только зависимости от других проектов Eclipse и от пользовательских библиотек Eclipse.

person JBishop    schedule 29.04.2015

Взгляните на файл .classpath в своем проекте, который, вероятно, содержит большую часть нужной вам информации. Самый простой вариант - свернуть ваш собственный "build.xml export", то есть преобразовать .classpath в новый build.xml во время самой сборки, а затем вызвать его с помощью подзадачи ant.

Мне кажется, что синтаксический анализ XML намного проще, чем подключение к Eclipse JDT.

person Jan Schiefer    schedule 19.11.2010
comment
Я абсолютно согласен с тем, что разбор XML-файла намного привлекательнее, чем написание плагина Eclipse или чего-то подобного. Ваше предложение интересно, но разве файл .classpath не является немного кратким? У меня есть 5 путей и все. Что хорошо в экспортированном файле сборки Ant, так это то, что он не только предоставляет цель для сборки всего этого, но также предоставляет правильные цели, позволяющие запускать тесты JUnit. Я буду иметь это в виду. - person Joanis; 20.11.2010
comment
Хорошая точка зрения. Я ожидал, что Eclipse также принимает во внимание характер проекта при определении целей, которые нужно создать в файлах сборки. Вы можете проверить, как Eclipse создает build.xml, поскольку он использует сам ant для внутренних целей. Но это возвращает вас к необходимости выполнять научный проект, чтобы понять внутреннее устройство Eclipse. Возможно, шаги Builder - действительно правильный вариант. - person Jan Schiefer; 22.11.2010

Если все, что вам нужно, это записи пути к классам, я делаю что-то вроде следующего, чтобы использовать путь сборки eclipse.

<xmlproperty file=".classpath" collapseAttributes="true" delimiter=";" />

Затем установите это значение в пути

<path id="eclipse.classpath">
    <pathelement path="${classpath.classpathentry.path}"/>
</path>


<target name="compile" depends="init">

    <javac srcdir="${src}" destdir="${build}" updatedProperty="compiled">
        <classpath refid="eclipse.classpath"/>
    </javac>
</target>
person scott    schedule 09.04.2014

Это я подарил Eclipse фильтр экспорта Ant. Я добавил функцию автоматического экспорта, но только в свой личный плагин eclipse2ant, который я все еще поддерживаю координировать исправления ошибок.

К сожалению, у меня нет времени объединять его с официальными сборками Eclipse.

person J2G    schedule 20.02.2014

  • Выберите Файл> Экспорт в главном меню (или щелкните правой кнопкой мыши имя проекта и выберите Экспорт> Экспорт…).
  • В диалоговом окне «Экспорт» выберите Общие> Файлы сборки Ant следующим образом: введите описание изображения здесь

  • Нажмите Далее. На экране создания файлов сборки Ant:

    • Check the project in list.
    • Снимите флажок с опции «Создать цель для компиляции проекта с использованием компилятора Eclipse», потому что мы хотим создать файл сборки, независимый от Eclipse.
    • Оставьте имя для файла сборки Ant по умолчанию: build.xml

введите описание изображения здесь

  • Нажмите Готово, Eclipse сгенерирует файл build.xml в каталоге проекта следующим образом:
     введите описание изображения здесь
  • Дважды щелкните файл build.xml, чтобы открыть его содержимое в редакторе Ant:  введите описание изображения здесь

источник

person Premraj    schedule 19.12.2017