2010-06-08 7 views
19

Ecco cosa parte del mio ivy.xml assomiglia a questo momento:Posso usare le proprietà in un file ivy.xml per evitare di ripetere i numeri di versione delle dipendenze?

<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" /> 

Ecco cosa mi piacerebbe farlo sembrare come:

<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}" /> 

è possibile? Qual è la sintassi?

risposta

26

ho finito per usare entità XML per fare la sostituzione. Ciò mantiene tutto nello stesso file, che è importante per il mio caso d'uso.

<?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> 
+8

+1 Bel pensiero laterale – skaffman

+1

Grande uso di entità XML. Davvero molto utile. – Vikas

13

La sintassi è corretta. Tutto quello che devi fare è impostare la proprietà ANT da qualche parte.

Per esempio

ant -Dspring.version=3.0.2.RELEASE 

Un'altra alternativa è quella di aggiungere il dichiarazione di proprietà nel file diivysettings.xml

<ivysettings> 

    <property name="spring.version" value="3.0.2.RELEASE"/> 

    <settings defaultResolver="maven2"/> 
    <resolvers> 
     <ibiblio name="maven2" m2compatible="true"/> 
    </resolvers> 
</ivysettings> 
+2

Cool! È possibile impostare la proprietà all'interno di 'ivy.xml'? In questo modo tutte le informazioni sulla dipendenza sarebbero insieme. –

+0

Inserire la dichiarazione di proprietà nel file delle impostazioni dell'edera ottiene lo stesso obiettivo di mantenere insieme le informazioni sulle dipendenze –

+2

Grazie per la risposta, ma sono andato con la mia soluzione (http://stackoverflow.com/questions/2996048/can-i-use -properties-in-un-ivy-xml-file-to-avoid-repeating-version-of-dep/3091114 # 3091114) perché volevo mantenere le dichiarazioni di versione nello stesso file. –

Problemi correlati