2009-10-26 3 views
2

ANT를 잘 사용하는 방법을 배우고 있는데, Rake와 Make와 비슷한 파일 작업을 수행하는 합리적인 방법이 있는지 알고 싶었습니다.ANT에서 진정한 "파일 작업"을 가장 쉽게 수행하는 방법

오히려 작업 이름이 아닌 실제 파일을 참조하고 파일로

http://martinfowler.com/articles/rake.html#FileTasks

". 그래서 '빌드는/dev가 rake.html /'와 'dev에/rake.xml가'실제 파일입니다. HTML 파일이 있습니다 이 작업의 출력과 xml 파일은 입력입니다. 파일 작업은 출력 파일을 만드는 방법을 빌드 시스템에 알리는 것으로 생각할 수 있습니다. 실제로 이것은 make의 개념입니다. 원하는 출력 파일을 나열하고 make 그들을 만드는 방법

파일 작업의 중요한 부분은 실행해야 할 때까지 실행되지 않는다는 것입니다. 빌드 시스템은 파일을보고 출력 파일이 없거나 수정 날짜가 입력 파일보다 이전 일 경우에만 작업을 실행합니다. 따라서 파일 작업은 파일 단위로 생각할 때 매우 잘 작동합니다. "

즉, 사용자 정의 바이너리를 실행하고 싶습니다. 파일이 변경되었습니다. 이것은 this 질문과 관련이 있습니다. 그러나 바이너리를 전혀 실행하지 않으려면 파일 세트의 일부만 전달하면 안됩니다 (즉, 파일 세트에 파일이 하나 뿐이므로 도구가 필요하지 않습니다). . 또한 loooong 일이되지 않을 것) 전혀

이상적인 솔루션을 실행하는 것이 아니라 쉽게 모든 대상에 적용 할 수있다? - 아마 일부 ANT 자바 스크립트 또는 사용자 지정 작업

답변

1

사용 ant-contrib outofdate task를 사용하여. 그것은 당신이 요구하는 것과 정확히 같은 속성을 가지고 있습니다. 여기에 ant-contrib website입니다.

<taskdef 
    resource="net/sf/antcontrib/antlib.xml" 
> 
    <classpath> 
    <pathelement location="${ant-contrib.jar}"/> 
</taskdef> 

<outofdate> 
<sourcefiles path="dev/rake.xml"/> 
<targetfiles path="build/dev/rake.html"/> 
<sequential> 
    ... do your work here ... 
    ... will only run if rake.html is older than rake.xml ... 
</sequential> 
</outofdate> 
: 여기

은 빌드에 통합하는 방법에 대한 템플릿입니다
관련 문제