Как установить свойства Ant на основе переменных в Eclipse?
У меня общая проблема, и, вероятно, есть множество способов ее решения. Я ищу элегантное, простое решение этого типичного сценария:
У меня есть проект в Eclipse с файлом сборки Ant (build.xml), в файле сборки используется файл свойств (build.properties). В этом файле свойств я хочу установить свойство, указывающее на корневой каталог проекта eclipse, например:
project.root = /path/to/eclipse/workspace/projectName
или предпочтительно:
project.root = ${path.to.eclipse.workspace}/projectName
Как это сделать так, чтобы:
- Работает на разных машинах с разными путями к корню проекта (т.е. в командной среде).
- Позволяет выполнять Ant файл build.xml внутри eclipse
- Позволяет выполнять Ant файл build.xml вне eclipse (т.е. из командной строки)
- Позволяет создавать файл build.properties в директории, отличной от корня проекта
Ответы
Ответ 1
Я думаю, что я ищу, чтобы добавить в файл 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).
Ответ 2
См. Окно → Настройки → Ant → Время выполнения → Свойства для определения пользовательских свойств Ant, которые должны быть доступны для любого Ant script, вызванного из Eclipse. Просто задайте одно и то же свойство вручную при вызове script из командной строки.
Файл build.properties может существовать везде, где вам нравится. Используйте обычные объекты Ant, чтобы импортировать их в свой script.
Ответ 3
Для архива моего проекта.
ProjectName <dir>
|_ ant <dir>
|_ ant.xml
В вашем случае можно просто изменить файл ant xml, <project default="main" basedir="../"/>
Затем я могу получить корень проекта, используя переменную
например. <echo message= "Project Root: ${basedir}" />
Ответ 4
если вам нужно больше, чем тривиальный материал на основе =
Ant4Eclipse - вам может помочь куча ant задач для доступа к конфигурациям eclipse из ant -
. Просто используйте его как есть или grep код и выберите соответствующие части.
Ответ 5
Вы можете установить относительные свойства eclipse для ANT Build from eclipse
Перейдите в свойства ANT Builder и в разделе аргументов вы можете установить свойства, используя -D, как показано ниже
-Dworkspace="${workspace_loc}" -Dproject_dir="${project_loc}"
(здесь workspace_loc и project_loc являются переменными eclipse). Доступ к этим свойствам можно получить в ANT build script как обычные свойства, например:
<echo message="${workspace}" />
<echo message="${project_dir}" />
![ссылка на скриншот]()