Свойства задач тесно связывают файл сборки со средами. Если ваши коллеги-разработчики утверждают, что им «нужно изменить свой сценарий ant» с вашими предложениями, почему они не спорят об изменении его каждый раз, когда им приходится развертываться в новой среде? :)
Возможно, вы сможете убедить их разрешить как файл свойств, так и конфигурацию командной строки. Я настроил свои сборки Ant так, чтобы, если build.properties существовал в том же каталоге, что и build.xml, он считывал его. В противном случае он использует набор свойств по умолчанию, жестко запрограммированных в сборке. Это очень гибкий.
<project name="example">
<property file="build.properties"/>
<property name="foo.property" value="foo"/>
<property name="bar.property" value="bar"/>
...
</project>
Я не предоставляю build.properties вместе с проектом (т.е. build.properties не поддерживается в SCM). Таким образом, разработчики не обязаны использовать файл свойств. Я предоставляю файл build.properties.example, на который могут ссылаться разработчики.
Поскольку свойства Ant, после их установки являются неизменяемыми , файл сборки будет использовать свойства, определенные в следующем порядке:
- Свойства, предоставляемые
-D
или -propertyfile
через командную строку
- Свойства, загруженные из build.properties
- Свойства по умолчанию в build.xml
Преимущества этого подхода:
- Файл сборки меньше и поэтому более удобен в обслуживании, менее подвержен ошибкам
- Разработчики, которые просто не могут отойти от установки свойств в командной строке, могут по-прежнему использовать их.
- Файлы свойств могут использоваться, но не обязательны