2011-01-03 2 views
0

여러 패키지로 구성된 대규모 Java 라이브러리를 다운로드했습니다. 이 라이브러리는 아파치 앤트 쉽게 컴파일에 모든 build.xml 파일을 함께 제공하고 build.xml 파일은 다음과 같은 조건을 포함한다 : 위의대형 Java 라이브러리의 여러 build.xml 파일을 최신 버전의 Javac과 호환되도록 업데이트

<condition property="version1.5"> 
    <equals arg1="1.5" arg2="${ant.java.version}"/> 
    </condition> 

라이브러리가 자바 6와 호환되는지 라이브러리 주장의 저자,하지만를 조건은 Javac1.6.0_22을 가지고 있기 때문에 Ant가 내 컴퓨터에서 Java 라이브러리를 컴파일하지 못하도록합니다. 사람이 개미가 내 컴퓨터에서 라이브러리를 컴파일 할 수 있도록 (대형 패키지 계층 포함) 자바 라이브러리 내의 모든 build.xml 파일이 조건를 업데이트 쉽게 방법을

생각 할 수 있습니까?

감사합니다.

+0

상태를 제거 할 수 있어야합니다. 버전 1.6을 허용하도록 조건을 변경하십시오. Java 5.0을 설치하고 라이브러리를 컴파일하는 데 사용할 수도 있습니다. –

답변

1

이 시도 :

for f in $(find root -type f -name build.xml) ; do 
    sed -e 's/arg1="1.5"/arg1="1.6"/' $f > /tmp/$$ 
    mv /tmp/$$ $f 
done 
0

1.6으로 변경하려고 했습니까?

<condition property="version1.5"> 
    <equals arg1="1.6" arg2="${ant.java.version}"/> 
</condition> 

아마도 검증 제 인수를 상기 두번째 대해 그것을 비교한다.

1

ant.java.version.property를 재정의 할 수 있습니다. 뭔가 같은

개미 대상 -Dant.java.version = 1.5

+0

그게 효과가 있어요. 감사! 이 솔루션은 모든 build.xml 파일의 조건을 실제로 업데이트하지는 않지만 내 컴퓨터에서 라이브러리를 컴파일 할 수있게 해줍니다. –

2

을 나는 조건보다 더 큰 거기에 생각하지 않지만, 당신이 할 수있는 또는 조건 등 이 :

<condition property="version1.5"> 
    <or> 
     <equals arg1="1.5" arg2="${ant.java.version}"/> 
     <equals arg1="1.6" arg2="${ant.java.version}"/> 
     <!-- Get ready for the future --> 
     <equals arg1="1.7" arg2="${ant.java.version}"/> 
    </or> 
</condition> 

나는 약 <matches>

잊었다
<condition property="version1.5"> 
    <matches pattern="1.[567]" string="${ant.java.version}"/> 
</condition> 

정말 깨끗합니다.

관련 문제