플러그인에서 Ant 타스크와 유형을 제공할 경우 타스크와 유형에서는 제공하는 플러그인 내의 모든 클래스에 대한 액세스를 갖고 있습니다. 예를 들어, org.eclipse.core.resources 플러그인에서 제공한 eclipse.refreshLocal 타스크는 IResource.refreshLocal() 메소드의 랩퍼입니다.
플러그인에서 제공한 타스크와 유형은 플러그인 라이브러리에 있을 수 없으며, 별도의 JAR에 있어야 합니다. 이것은 플러그인 클래스는 플러그인에서 제공한 타스크와 유형에 대한 액세스를 갖고 있지 않음을 의미합니다. 자세한 내용은 타스크와 유형에 대한 별도의 JAR이 필요한 이유를 참조하십시오.
org.eclipse.ant.core.antTasks 확장점에서는 plugin.xml 파일에 새 타스크를 지정하는 방법 예제를 제공합니다.
Eclipse Ant 지원에서는 AntRunner를 호출할 때 전달된 경우 IProgressMonitor에 대한 액세스를 제공합니다. 진행 모니터에 대한 액세스의 장점 중 하나는 오래 실행되는 타스크에서 사용자가 실행 취소를 요청했는지 확인할 수 있다는 점입니다. 진행 모니터 오브젝트는 Ant 프로젝트의 참조에서 가져옵니다. 올바른 진행 모니터를 사용하여 AntRunner.run(IProgressMonitor) 메소드를 호출한 경우에만 모니터를 사용할 수 있습니다. 다음 코드 스니펫에서는 타스크의 프로젝트에서 진행 모니터를 가져오는 방법을 보여줍니다.
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Task; import org.eclipse.ant.core.AntCorePlugin; import org.eclipse.core.runtime.IProgressMonitor; public class CoolTask extends Task { public void execute() throws BuildException { IProgressMonitor monitor = (IProgressMonitor) getProject().getReferences().get(AntCorePlugin.ECLIPSE_PROGRESS_MONITOR); if (monitor == null) { ... } else { ... } } }
다음을 플러그인 개발자의 검사 목록으로 사용해야 합니다.
플러그인 모델에 잘 맞지 않는 Eclipse에서 Ant를 실행하기 위한 기본적인 두 가지 요구사항이 있습니다.
런타임 중에 플러그인 클래스 로더는 자신의 클래스 경로를 펼칠 수 없고 플러그인에서 해당 종속성을 변경할 수 없습니다. 동시에 타스크와 유형에 대한 별도의 JAR을 갖고 있으면 플러그인 클래스 로딩 메커니즘에서 제대로 분리될 수 있고, 플러그인에서 선언한 별도의 JAR을 갖고 있으면 제공하는 플러그인을 Ant 클래스 경로에도 추가할 수 있습니다.