ANT를 사용할 때 특정 Java 버전이있는 경우에만 작업을 어떻게 정의 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/147850

  •  02-07-2019
  •  | 
  •  

문제

ANT의 특정 단계는 빌드 컴퓨터에 Java 1.5가 설치된 경우에만 실행할 수 있다는 문제가 있습니다. 작업 정의는 1.5를 사용하여 컴파일 된 JAR 파일을 사용하므로 1.4 가상 머신으로 실행하면 호환성이없는 예외가 발생합니다.

이 과제를 1.4가 필요한이 특정 프로젝트에서 작동하도록 솔루션을 찾아야하지만 질문이 나왔습니다. 특정 Java 버전이없는 경우이 작업을 정의 하고이 선택적 단계를 실행하지 않으려면 어떻게해야합니까?

대상 태그에 "if"또는 ""태그가 아닌 경우, 속성이 설정되었는지 여부 만 확인할 수 있습니다. 또한 추가 라이브러리가 필요하지 않은 솔루션을 원하지만 표준의 빌드 인 기능이 그러한 작업을 수행하기에 충분한 지 모르겠습니다.

도움이 되었습니까?

해결책

Java 버전은 ant.java.version 재산. a 상태 속성을 설정하고 작업이 사실 인 경우에만 작업을 실행합니다.

<?xml version="1.0" encoding="UTF-8"?>

<project name="project" default="default">

    <target name="default" depends="javaCheck" if="isJava6">
        <echo message="Hello, World!" />
    </target>

    <target name="javaCheck">
        <echo message="ant.java.version=${ant.java.version}" />
        <condition property="isJava6">
            <equals arg1="${ant.java.version}" arg2="1.6" />
        </condition>
    </target>

</project>

다른 팁

BuildFile을 확인하는 속성은 다음과 같습니다 ${ant.java.version}.

당신은 사용할 수 있습니다 <condition> 속성이 특정 값과 같을 때 작업을 조건부로 만드는 요소 :

<condition property="legal-java">
  <matches pattern="1.[56].*" string="${ant.java.version}"/>
</condition>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top