Я могу использовать свойства в файле ivy.xml, чтобы не повторять номера версий зависимостей?

Вот то, на что часть моего 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}" />

Действительно ли это возможно? Каков синтаксис?

21
задан Edward Dale 8 June 2010 в 09:16
поделиться

2 ответа

В итоге я использовал 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>
29
ответ дан 29 November 2019 в 20:28
поделиться

Синтаксис правильный. Все, что вам нужно сделать, это установить где-нибудь свойство 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>
14
ответ дан 29 November 2019 в 20:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: