2010-06-08 3 views
19

은 여기 내 ivy.xml의 일부가 지금의 모습입니다 :ivy.xml 파일에서 속성을 사용하여 종속성의 버전 번호를 반복하지 않아도됩니까?

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

이게 가능 :

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

여기 내가 모양을하고 싶은거야? 구문은 무엇입니까?

답변

26

ivysettings.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> 
+8

+1 좋은 측면 생각 – skaffman

+1

XML 엔티티를 잘 사용합니다. 정말로 도움이된다. – Vikas

13

구문이 정확합니다. ANT 속성을 어딘가에 설정하면됩니다. 예를 들어

ant -Dspring.version=3.0.2.RELEASE 

또 다른 대안은 내가 대체 할 XML 엔티티를 사용하여 종료

<ivysettings> 

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

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

쿨! 'ivy.xml' 내부에서 속성을 설정할 수 있습니까? 그렇게하면 모든 종속성 정보가 함께 나타납니다. –

+0

아이비 설정 파일에 속성 선언을두면 종속성 정보를 함께 유지하는 것과 동일한 목표를 달성 할 수 있습니다. –

+2

답변 주셔서 감사합니다.하지만 솔루션과 함께갔습니다 (http://stackoverflow.com/questions/2996048/can-i-use). -properties-in-an-ivy-xml-file-to-avoid-repeater-version-of-dep/3091114 # 3091114) 같은 파일에 버전 선언을 보관하고 싶었 기 때문에. –

관련 문제