2016-07-22 2 views
0

이클립스 특정 작업이 필요한 headless 빌드를 만들려고합니다.ANT eclipse headless 빌드 - java.lang.NoClassDefFoundError

ant 빌드 파일을 시작하기 위해 다음 명령을 사용합니다. 이전에 불만을 토로 한 일식 작업을 실행할 수 있다고 믿었 기 때문에이 방법을 사용합니다. 올바르지 않거나 더 좋은 방법이 있으면 알려주십시오.

<myTask/> 

을 실행할 때 나는

java.lang.NoClassDefFoundError: path/to/class/that/I/tried/to/import 
를 얻을

<taskdef name="myTask" classname="path.to.class.with.execute"><classpath><pathelement location="path\to\dependency.jar"/></classpath></taskdef> 

:

내 배치 스크립트 : 내 개미 빌드 파일 내부

java -jar %EQUINOX_LAUNCHER_JAR% -application org.eclipse.ant.core.antRunner -buildfile %ANT_SCRIPT_JAR% -data %WORKSPACE_PATH% 

, 내가 작업을 정의 할 필요가 0

+0

유일한 가능성은이 중 하나의 경로가 .jar 파일이 잘못되었거나 클래스 이름이 잘못되었습니다. .jar에 대한 경로가 상대 경로입니까? 그렇다면 빌드 파일과 관련이 있습니까? 프로젝트에 대한 대체 기반을 지정하고 있습니까? .jar에 클래스가 들어 있는지 다시 확인 했습니까? – VGR

+0

모든 경로는 절대 경로입니다. 내가 틀렸다면 나를 바로 잡아라.하지만 태스크가 실행되었지만 오류가 발생했기 때문에 내 클래스 이름이 올바르게 설정되었다는 것을 알았다. 나는 대체 기반을 설정한다고 생각하지 않는다. – David

+0

NoClassDefFoundError가 작업 클래스 자체를 참조하지 않는다? – VGR

답변

1

작업 코드에서 사용하는 클래스가 클래스 경로에 있어야합니다.

<taskdef name="myTask" classname="path.to.class.with.execute"> 
    <classpath> 
     <fileset dir="path/to/dir" includes="**/*.jar"/> 
    </classpath> 
</taskdef> 

다른 한에게 : 모든 jar 파일이 같은 디렉토리 트리에있는 경우

<taskdef name="myTask" classname="path.to.class.with.execute"> 
    <classpath> 
     <pathelement location="path/to/dependency.jar"/> 
     <pathelement location="path/to/transitive-dependency.jar"/> 
     <pathelement location="path/to/other-transitive-dependency.jar"/> 
    </classpath> 
</taskdef> 

, 당신은 그것을 단축 할 수 있습니다 하나의 옵션은 작업을 정의 할 때 클래스 패스에 명시 적으로 추가하는 것입니다 작업 클래스가 들어있는 .jar의 매니 페스트에 Class-Path 속성을 추가 할 수 있습니다. 속성의 값은 상대 URL의 공백으로 구분 된 목록이며, 묵시적 기반은 매니페스트가 상주하는 .jar 파일입니다. 예를 들어 :

당신이 개미 자체 .JAR 작업을 구축하는 경우
Class-Path: transitive-dependency.jar utils/other-transitive-dependency.jar 

, 당신은 개미의 jar 작업의 클래스 경로 속성을 지정할 수 있습니다

<jar destfile="task.jar"> 
    <fileset dir="classes"/> 
    <manifest> 
     <attribute name="Class-Path" 
      value="transitive-dependency.jar utils/other-transitive-dependency.jar"/> 
    </manifest> 
</jar> 
관련 문제