代码之家  ›  专栏  ›  技术社区  ›  Edward Dale

我可以在ivy.xml文件中使用属性来避免重复依赖项的版本号吗?

  •  20
  • Edward Dale  · 技术社区  · 15 年前

    下面是我的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}" />
    

    这有可能吗?语法是什么?

    3 回复  |  直到 7 年前
        1
  •  28
  •   Edward Dale    15 年前

    我最终使用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>
    
        2
  •  13
  •   Mark O'Connor    15 年前

    语法正确。你所要做的就是在某个地方设置Ant属性。

    例如

    ant -Dspring.version=3.0.2.RELEASE
    

    另一种选择是将属性声明添加到 IVYSETIONCESS.XML 文件

    <ivysettings>
    
        <property name="spring.version" value="3.0.2.RELEASE"/>
    
        <settings defaultResolver="maven2"/>
        <resolvers>
            <ibiblio name="maven2" m2compatible="true"/>
        </resolvers>
    </ivysettings>
    
        3
  •  0
  •   tkruse    7 年前

    您可以使用属性文件,如下所述: http://apache-ivy.996301.n3.nabble.com/ivyde-properties-on-ivy-xml-td7484.html

    <properties file="${ivy.project.dir}/build.properties" />
    

    insite ivysettings.xml文件