나는 gradle에 처음으로 실패했으며 프로젝트 중 하나에 WSDL2Java 관련 태스크를 추가하려는 다중 프로젝트 그래클 빌드가 있습니다. 생성 된 스텁을 jar 파일로 생성, 컴파일, 패키지화하고 클래스 패스에 추가하는 데 필요한 작업을 코딩했습니다. 자바 컴파일이 시작되기 전에이 작업을 수행하고 싶습니다. 다음은Gradle : WSDL 및 XSD에서 소스 생성 및 컴파일을 위해 기본 클래스 경로에 추가
, 난 빌드 예외와 함께 실패 새로운 작업
task genClasses(type: JavaExec) {
//Run WSDL2Java and generate java source files.
}
task compileClasses(dependsOn:'genClasses'){
//Use ant.javac or add type:JavaCompile in task defination as shown below
// task compileClasses(dependsOn:'genClasses',type:JavaCompile)
}
task packageClasses(dependsOn:'compileClasses',type:Jar){
//package my jar
}
task createStubs(dependsOn: 'packageClasses'){
//add created jar to the classpath
}
compileJava.dependsOn createStubs
을 코딩하는 방법이며, 나는 compileClasses 작업은 어떻게 든이 순환 종속성을 일으키는 것을 알아 낸
Circular dependency between tasks. Cycle includes [task ':projectx:genWsdlClasses', task ':projectx:classes'].
메시지 아래에 표시되지만 그것을 제거하는 방법을 모르십니까?
이 소스 생성을 수행하고, 생성 된 소스를 컴파일하고, 패키징하고, 메인 소스가 빌드되기 전에 메인 소스 세트 클래스 경로에 추가하는 다른 방법이 있습니까?
gradle 파일을 일치시키기 위해 "genClasses"라는 오류 메시지가 표시됩니까? 아니면 첫 번째 작업의 이름을 genWsdlClasses로 지정해야합니까? 나는 질질 끌려 고 노력하지 않고있다. 내가 뭔가를 놓치지 않았는지 확인하고 싶다. –
코드를 그라디언트 파일에 복사하여 붙여 넣고 Java 플러그인을 추가하고 JavaExec 유형을 제거하면 정상적으로 실행되었습니다. 허락하면, 그것은 기본적으로 아무것도하지 못했지만 효과가있었습니다. –
여기에서 동일합니다. 나를 위해 잘 작동합니다. 전체 빌드 스크립트를 게시 할 수 있습니까? –