Eclipse에 빌드된 Ant 지원을 사용하면 플러그인에서 Ant 빌드 파일을 프로그래밍 방식으로 실행할 수 있습니다. 이것은 org.eclipse.ant.core 플러그인에 포함된 AntRunner 클래스를 통해 수행됩니다.
다음 코드 스니펫에서는 다른 플러그인의 코드 내에서 AntRunner를 사용하는 방법에 대한 예제를 보여 줍니다.
import org.eclipse.ant.core.AntRunner; import org.eclipse.core.runtime.IProgressMonitor; ... public void runBuild() { IProgressMonitor monitor = ... AntRunner runner = new AntRunner(); runner.setBuildFileLocation("c:/buildfiles/build.xml"); runner.setArguments("-Dmessage=Building -verbose"); runner.run(monitor); }
진행 모니터를 사용할 경우 실행 중인 타스크에 진행 모니터를 사용할 수 있습니다. 자세한 내용은 진행 모니터를 참조하십시오.
빌드가 별도의 VM에서 발생하지 않을 경우 지정된 시간에 하나의 Ant 빌드만 발생할 수 있습니다. AntRunner.isBuildRunning()를 참조하십시오.
Eclipse에서 Ant 빌드 파일을 실행할 때마다 새 클래스 로더가 작성됩니다. Java의 한 클래스 로더에서만 라이브러리를 로드할 수 있기 때문에 기본 라이브러리를 사용하는 타스크에는 여러 빌드 파일을 실행할 때 문제가 발생할 수 있습니다. 새 클래스 로더가 기본 라이브러리를 로드하려고 시도할 때 이전 클래스 로더에서 가비지 콜렉션을 수행하지 않은 경우 문제점을 표시하는 예외가 발생하고 빌드가 실패합니다. 이 문제를 피할 수 있는 한 가지 방법은 플러그인 라이브러리에 있는 클래스에서 라이브러리 로드를 처리하게 하는 것입니다. 타스크에서는 기본 메소드를 액세스하기 위해 해당 클래스를 이용할 수 있습니다. 이런 식으로 플러그인 클래스 로더에서 라이브러리를 로드하면 라이브러리 로드 충돌이 생기지 않습니다.