2010-05-26 9 views
0

war 파일을 생성하기 위해 ant 스크립트를 사용하고 있는데, war 파일이 생성됩니다. 이 새로운 전쟁 파일을 생성하는 경우, 내가 "newupdates는"그렇지 않으면 내가 아는 "noupdates"원하는대로 값을 설정하는 속성을 갖고 싶어, 아래의 스크립트를Ant 빌드 스크립트

+1

여기 Gomathi에서 누락 된 코드가있는 것 같습니다. –

+0

내 대답을 완성했습니다. Btw,'jar' 대신''war'' (http://ant.apache.org/manual/CoreTasks/war.html) 태스크를 사용해야합니다 :'war'는'jar'의 확장입니다. 'WEB_INF' 디렉토리 – tonio

+1

@Banang의 처리를 쉽게하십시오. 코드가 제대로 빠져 나가지 않았습니다. 나는 편집 권한이없는 사람들이 질문 출처를 볼 수있는 쉬운 수단을 가져야한다는 메타언에 대해 오래 전에 불평했다. –

답변

1

전략에를

<target name="war" depends="build"> 
    <mkdir dir="${dist}" /> 
    <jar destfile="${dist}/${proj_name}.war" basedir="${build}" /> 
</target> 

를 참조하십시오 UpToDate 태스크를 사용하여 등록 정보를 설정할 수 있습니다. 다음 실행을 준비하기 위해 uptodate 검사를 수행 한 직후 war 파일을 war.bak에 복사하면됩니다.

또 다른 전략은 전쟁을 생성해야 하는지를 결정하기 위해 UpToDate 작업을 사용하여 속성을 설정하는 것입니다 (예 : myuptodateproperty). 그런 다음 전쟁 생성 대상을 호출하고 필요하지 않은 경우 전쟁을 재생성하지 않으려면 if=${myuptodateproperty} 제약 조건이 있는지 확인하십시오.

당신은 (몇 가지 작업을해야 할 수도 있습니다, 테스트되지 않은 코드)의 라인에 뭔가를 사용할 수 있습니다 전쟁이 재 구축 할 필요가없는 경우에만이와

<target name="war" depends="clean,fillbuildanddist,build"> 
    <mkdir dir="${dist}" /> 
    <uptodate targetfile="${dist}/${proj_name}.war" property="uptodatewar"> 
    <fileset dir="${build}" /> 
    </uptodate> 
    <antcall target="makewar" /> 
</target> 

<target name="makewar" unless="uptodatewar"> 
    <jar destfile="${dist}/${proj_name}.war" basedir="${build}" /> 
</target> 

, uptodatewartrue로 설정해야합니다 속성을 따라서 jar 작업은이 경우에만 호출됩니다. war 타겟에 의존하는 타겟에서, 전쟁이 새로운 경우에만 uptodatewar을 사용하여 작업을 수행 할 수 있습니다.

+0

이, gomathi, tonio 당신은 코드 <대상 이름 = "전쟁"따라 = "구축, 깨끗하고, fillbuildanddist"> \t \t \t \t <항아리이 destfile = "$ {DIST}/$ {PROJ_NAME} .WAR"BASEDIR = "$ {빌드}"/> \t 때로는 더 war 파일이 생성되지 않은 경우 {DIST 전쟁 파일 } 폴더, uptodate 하나입니다. 그 경우에는 "noupdates가 발생했습니다"속성이 있어야합니다. 내 이해를 돕기 위해 코드 스 니펫을 줄 수 있습니까? – gomathi

+0

샘플 코드로 답변을 업데이트했습니다. – tonio

관련 문제