자바 프로젝트가있는 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 파일에 포함되어야하는지 알고 싶습니다. 또한 위의 파일에서 무엇인가를 변경해야한다는 것을 알고 싶습니다. 감사합니다
"webProjEAR/build.gradle 파일을 실행하려고합니다."라는 것이 정확히 무엇을 의미합니까? * 정확하게 * 당신은 "could not resolve ..."오류를 얻고 있습니까? –
다음과 같이 구조를 변경했습니다. (이고르 포포프가 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