Вот то, на что часть моего ivy.xml похожа прямо сейчас:
<dependency org="org.springframework" name="org.springframework.core" rev="3.0.2.RELEASE" />
<dependency org="org.springframework" name="org.springframework.context" rev="3.0.2.RELEASE" />
<dependency org="org.springframework" name="org.springframework.jdbc" rev="3.0.2.RELEASE" />
<dependency org="org.springframework" name="org.springframework.beans" rev="3.0.2.RELEASE" />
<dependency org="org.springframework" name="org.springframework.jms" rev="3.0.2.RELEASE" />
Вот то, на что я хотел бы, чтобы это было похоже:
<dependency org="org.springframework" name="org.springframework.core" rev="${spring.version}" />
<dependency org="org.springframework" name="org.springframework.context" rev="${spring.version}" />
<dependency org="org.springframework" name="org.springframework.jdbc" rev="${spring.version}" />
<dependency org="org.springframework" name="org.springframework.beans" rev="${spring.version}" />
<dependency org="org.springframework" name="org.springframework.jms" rev="${spring.version}" />
Действительно ли это возможно? Каков синтаксис?
В итоге я использовал XML-объекты для подстановки. Это сохраняет все в одном файле, что важно для моего варианта использования.
<?xml version="1.0"?>
<!DOCTYPE ivy-module [
<!ENTITY spring.version "3.0.2.RELEASE">
]>
<ivy-module version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd">
<info organisation="org" module="mod"/>
<dependencies>
<dependency org="org.springframework" name="org.springframework.core" rev="&spring.version;" />
<dependency org="org.springframework" name="org.springframework.context" rev="&spring.version;" />
<dependency org="org.springframework" name="org.springframework.jdbc" rev="&spring.version;" />
<dependency org="org.springframework" name="org.springframework.beans" rev="&spring.version;" />
<dependency org="org.springframework" name="org.springframework.jms" rev="&spring.version;" />
</dependencies>
</ivy-module>
Синтаксис правильный. Все, что вам нужно сделать, это установить где-нибудь свойство ANT.
Например
ant -Dspring.version=3.0.2.RELEASE
Другой альтернативой является добавление объявления свойства в файл ivysettings.xml
<ivysettings>
<property name="spring.version" value="3.0.2.RELEASE"/>
<settings defaultResolver="maven2"/>
<resolvers>
<ibiblio name="maven2" m2compatible="true"/>
</resolvers>
</ivysettings>