Как установить свойства Ant на основе переменных в Eclipse? - PullRequest
12 голосов
/ 11 января 2011

У меня общая проблема, и, вероятно, существует множество способов ее решения. Я ищу элегантное, простое решение для этого типичного сценария:

У меня есть проект в Eclipse с файлом сборки Ant (build.xml), в файле сборки используется файл свойств (build.properties). В этом файле свойств я хочу установить свойство, которое указывает на корневой каталог проекта eclipse, например:

project.root = /path/to/eclipse/workspace/projectName

или предпочтительно:

project.root = ${path.to.eclipse.workspace}/projectName

Как мне сделать это так, чтобы:

  1. Работает на разных машинах с разными путями к корню проекта (то есть в командной среде)
  2. Позволяет файлу ant build.xml выполняться внутри eclipse
  3. Позволяет файлу ant build.xml выполняться вне eclipse (т.е. из командной строки)
  4. Позволяет файлу build.properties существовать в каталоге, отличном от корня проекта

Ответы [ 5 ]

8 голосов
/ 11 января 2011

См. Window -> Preferences -> Ant -> Runtime -> Properties, чтобы определить пользовательские свойства ant, которые должны быть доступны любому скрипту ant, вызываемому из Eclipse. Просто установите это же свойство вручную при вызове скрипта из командной строки.

Ваш файл build.properties может существовать где угодно. Используйте обычные средства Ant, чтобы импортировать его в ваш скрипт.

7 голосов
/ 11 января 2011

Я думаю, что мне нужно добавить следующее в файл build.properties:

project.root = ${basedir}

в качестве альтернативы, я могу просто использовать basedir свойство всякий раз, когда project.root необходимо.

Мне довелось взглянуть на исходный код для ivy.properties , и я увидел, что используется свойство basedir . Я только что проверил и проверил, что это свойство работает на разных машинах как из затмения, так и из командной строки, а также при вызове ant из другого каталога, такого как:

ant -f /path/to/eclipse/workspace/projectName/build.xml

Когда я получу минуту, я проверю, что это также работает при импорте файла свойств в разные места (например, внутри src / main / resources / config / ivy / ivysettings.xml).

3 голосов
/ 11 июня 2011

если вам нужно больше, чем тривиальный материал basedir =
Ant4Eclipse - куча задач ant для доступа к конфигурациям затмения из ant -
может помочь вам.Просто используйте его как есть или используйте код и выберите нужные части.

3 голосов
/ 14 февраля 2011

Для моего архива проекта.

ProjectName <dir>
 |_ ant <dir>
     |_ ant.xml

В вашем случае можно просто изменить файл ant xml, <project default="main" basedir="../"/>

Тогда я могу получить корень проекта, используя переменную

например. <echo message= "Project Root: ${basedir}" />

1 голос
/ 21 марта 2017

Вы можете установить относительные свойства затмения для вашей сборки ANT из eclipse

Перейдите в свойства вашего ANT Builder, а в разделе аргументов вы можете установить свойства, используя -D, как показано ниже

-Dworkspace="${workspace_loc}" -Dproject_dir="${project_loc}"

(здесь workspace_loc и project_loc являются переменными затмения).Эти свойства могут быть доступны в вашем скрипте сборки ANT, как обычные свойства, например:

<echo message="${workspace}" />
<echo message="${project_dir}" />

reference screenshot

...