2013-05-10 5 views
1

자바 프로젝트가있는 Gradle을 사용하여 멀티 프로젝트를 만들면 웹 프로젝트에 의존하게됩니다. 내가 일식과 함께 빌드 할 때 나는 webProjectEAR에 javaProj와 webProj의 종속물을 주 었으며 (전개 된 후에) 작동한다.Gradle의 다중 프로젝트에 종속성을 부여하는 방법과 구조는 무엇입니까?

.ear 파일은 다음 내용이 포함 된 단일 빌드 실행을 사용하여 만들어야합니다.

- lib 
    javaProj.jar 
- META-INF 
- webProj.war 

내 프로젝트 구조 내가 webProjEAR/build.gradle 파일을 실행하려고하고 다음과 같이 종속성으로 제공하고있어

- javaProj 
    build.gradle 
- webProj 
    build.gradle 
- webProjEAR 
    build.gradle 
- settings.gradle 

을 다음과 같이. 'webProjEAR : testRuntime'

project(':webProjEAR') { 
    dependencies { 
     compile project(':javaProj') 
     compile project(':webProj') 
    } 
} 

그것이 오류로 인해 실패 "구성에 대한 모든 종속성을 확인할 수 없습니다. 내가 separatly 내가 항아리와 전쟁 파일을 만들 수 있어요 빌드 파일을 실행 .when을

이 사람이 나를 도울 수 바랍니다 어떻게 종속성 빌드 파일에 언급했다. 그리고하는 build.gradle 파일을 가지고있는 madatory 위치이다.

=== 정보는 여기에서 원래의 질문에 추가 더 ===

내 빌드해야 파일은 다음과 같다. w. Igor Popov가 언급 한 변경 사항을 작성했습니다.

// javaProj/build.gradle 

apply plugin: 'java' 

repositories { 
flatDir { dirs "../local-repo" }       
} 

sourceSets { 
    main { 
     java.srcDir "$projectDir/src"   
     resources.srcDir "$projectDir/XML"  
    } 
} 

jar { 
    from ('classes/com/nyl/xsl') { 
     into 'com/nyl/xsl'  
    } 
} 

dependencies { 
    compile group: 'slf4j-api' , name: 'slf4j-api' , version: '1.5.6' 
    compile group: 'slf4j-jdk14' , name: 'slf4j-jdk14' , version: '1.5.6' 
    compile group: 'com.ibm.xml.thinclient_1.0.0' , name: 'com.ibm.xml.thinclient_1.0.0' , version: '1.0.0' 
    compile group: 'junit', name: 'junit', version: '4.11' 
    compile group: 'saxon9' , name: 'saxon9' 
    compile group: 'saxon9-dom' , name: 'saxon9-dom' 
    compile group: 'xmlunit' , name: 'xmlunit' , version: '1.4' 
} 

============================================== 

// webProj/build.gradle 

apply plugin: 'war' 

repositories { 
    flatDir { dirs "../local-repo" }      
} 

webAppDirName = 'WebContent'     

dependencies { 
    providedCompile group: 'com.ibm.xml' , name: 'com.ibm.xml' 
    providedCompile group: 'com.ibm.ws.prereq.xdi2' , name: 'com.ibm.ws.prereq.xdi2' 
    providedCompile group: 'com.ibm.ws.xml.admin.metadata' , name: 'com.ibm.ws.xml.admin.metadata' 
    providedCompile group: 'guava' , name: 'guava' , version: '11.0.2' 
    providedCompile group: 'j2ee' , name: 'j2ee'  
    providedCompile group: 'slf4j-api' , name: 'slf4j-api' , version: '1.5.6' 
    providedCompile group: 'slf4j-log4j12' , name: 'slf4j-log4j12' , version: '1.5.6' 
} 

==================================================== 

// webProjEAR/build.gradle 

apply plugin: 'java' 
apply plugin: 'ear' 

repositories { 
    flatDir { dirs "../local-repo" } 
} 

dependencies { 
    compile project(':javaProj') 
compile project(':webProj') 
} 

ear { 
    appDirName 'src/main/app' 
    libDirName 'APP-INF/lib' 

    from ('../javaProj/build/libs') { 
     into 'lib' 
    }  
    from ('../webProj/build/libs') { 
     into '/' 
    } 
} 

무엇이 roojProj/build.gradle 파일에 포함되어야하는지 알고 싶습니다. 또한 위의 파일에서 무엇인가를 변경해야한다는 것을 알고 싶습니다. 감사합니다

+0

"webProjEAR/build.gradle 파일을 실행하려고합니다."라는 것이 정확히 무엇을 의미합니까? * 정확하게 * 당신은 "could not resolve ..."오류를 얻고 있습니까? –

+0

다음과 같이 구조를 변경했습니다. (이고르 포포프가 sugessted 한대로) rootProj - javaProj build.gradle - webProj build.gradle - webProjEAR build.gradle - settings.gradle - build.gradle 그리고 된 .ear를 작성해야 파일을 하나의 gradle 실행 명령을 사용합니다. javaProj는 .jar을 만들어야하고 webProj는 .war을 만들어야하며 둘 다 webProjEAR에 종속됩니다. 이 작업을 수행하는 방법과 각 build.gradle 파일에서 mandory 명령이 무엇인지 알려주십시오. – DLP

답변

2

전체 구조는해야 뭔가 같은 :

rootProj 
    javaProj 
    build.gradle 
    webProj 
    build.gradle 
    webProjEAR 
    build.gradle 

    settings.gradle 
    build.gradle 

settings.gradle 파일이 포함되어 있어야합니다 다음 webProjEAR/build.gradle 당신이 project(':webProjEAR')을 제거 할 수 있습니다 들어

include 'javaProj', 'webProj', 'webProjEAR' 

. (당신은 당신이 포함되지 않은 다른 사람이있는 경우)

dependencies { 
    compile project(':javaProj') 
    compile project(':webProj') 
} 

는 당신이 얻을 오류를 해결하려면, 당신은 또한 webProjEAR에 대한 모든 종속성을 게시해야합니다 그래서 같이한다.

+0

그래서 문제가 해결 되었습니까? –

+0

답변과 빠른 응답을 위해 매우 Igor Popov 감사합니다.원래 파일에 빌드 파일을 추가했습니다. 또한 rootProj/build.gradle 파일에 무엇이 포함되어야하는지 알고 싶습니다. 다시 한번 감사드립니다. – DLP

+0

안녕하세요 이고르 포포 브 (Igor Popov), 해결하는데이 문제를 도와 주시겠습니까? 고맙습니다! – DLP