Ant 빌드 파일을 프로그래밍 방식으로 실행

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()를 참조하십시오.

빌드가 작업공간과 동일한 JRE에서 발생할 경우 기본 라이브러리에 대한 특수 고려 사항

Eclipse에서 Ant 빌드 파일을 실행할 때마다 새 클래스 로더가 작성됩니다. Java의 한 클래스 로더에서만 라이브러리를 로드할 수 있기 때문에 기본 라이브러리를 사용하는 타스크에는 여러 빌드 파일을 실행할 때 문제가 발생할 수 있습니다. 새 클래스 로더가 기본 라이브러리를 로드하려고 시도할 때 이전 클래스 로더에서 가비지 콜렉션을 수행하지 않은 경우 문제점을 표시하는 예외가 발생하고 빌드가 실패합니다. 이 문제를 피할 수 있는 한 가지 방법은 플러그인 라이브러리에 있는 클래스에서 라이브러리 로드를 처리하게 하는 것입니다. 타스크에서는 기본 메소드를 액세스하기 위해 해당 클래스를 이용할 수 있습니다. 이런 식으로 플러그인 클래스 로더에서 라이브러리를 로드하면 라이브러리 로드 충돌이 생기지 않습니다.