2012-07-03 9 views
2

간단한 Ant 스크립트가 있으며 환경 변수 JUNIT_HOME을 사용하여 태그에 전달하고 싶습니다.Ant 스크립트에서 환경 변수를 인식하지 못합니다.

<echo message = "JUNIT_HOME: ${env.JUNIT_HOME}" /> 

올바른 출력을 생성합니다 :이 반향 때 환경 변수는 유효한 것으로 나타납니다

JUNIT_HOME : "C : \ Program 파일 (x 86) \ 일식 \ 플러그인 \ org.junit_4.8.2 .v4_8_2_v20110321-1705 "

그러나 다음과 같은 방법으로 사용하면 빌드가 junit을 찾을 수 없다는 주장이 실패합니다.

<target name="compile" depends="checkJUnitHome, init" description="compile the source "> 
    <javac srcdir="${src}" destdir="${build}" classpath="${env.JUNIT_HOME}\junit.jar"> 
     <classpath refid="project.classpath" /> 
    </javac> 
</target> 

환경 변수를 전체 경로로 바꿀 경우. 그것은 올바르게 작동합니다.

무엇이 누락 되었습니까?

종류와 관련,

마크 콜먼

+1

JUNIT_HOME 변수에 실제로 따옴표가 포함 된 경로가 포함되어 있습니까? 그것은 문제 일 수 있습니다. – Robert

+1

안녕하세요 로버트, 그게 문제였습니다. 감사! – mrmrcoleman

답변

0

당신은 당신이 환경에 액세스 할 수 있습니다 <property environment="env"/>을 설정해야합니다.

편집

당신은 내부 클래스 경로 요소에 속성으로 클래스 경로 변수를 이동을 시도 할 수 있습니다. 이 중 하나를 참조하십시오 : 로버트 지적

어쩌면 그 오버라이드 (override)
<target name="compile" depends="checkJUnitHome, init" description="compile the source "> 
    <javac srcdir="${src}" destdir="${build}"> 
     <classpath> 
      <path refid="project.classpath" /> 
      <path location="${env.JUNIT_HOME}\junit.jar" /> 
     </classpath> 
    </javac> 
</target> 

...

+0

감사합니다. matcauthon하지만 이미 그렇게했습니다. 게시물의 시작 부분에서 볼 수 있듯이 변수를 올바르게 에코 할 수 있습니다. – mrmrcoleman

+0

다시 시도해 주셔서 감사합니다.하지만 작동하지 않는 것이 두렵습니다. (또한 나는 닫는 태그를 놓치고 있다고 생각합니다. – mrmrcoleman

0

, 환경 변수는 큰 따옴표로 저장했다. 이 문제를 해결하면 문제가 해결됩니다.

감사합니다.

관련 문제