我有一个要使用 Gradle 构建的多项目,该项目有一个 java 项目,它将依赖于 web 项目。当我使用 eclipse 构建时,我已经将 javaProj 和 webProj 的依赖项赋予了 webprojectEAR 并且它可以工作(部署后)。
.ear 文件需要使用单一构建运行创建,其中包含以下内容。
- lib
javaProj.jar
- META-INF
- webProj.war
我的项目结构如下
- javaProj
build.gradle
- webProj
build.gradle
- webProjEAR
build.gradle
- settings.gradle
我正在尝试运行 webProjEAR/build.gradle 文件并在其中作为依赖项提供,如下所示。
project(':webProjEAR') {
dependencies {
compile project(':javaProj')
compile project(':webProj')
}
}
它失败并出现错误“无法解决配置'webProjEAR:testRuntime'的所有依赖项。当我单独运行构建文件时,我能够创建jar和war文件。
请任何人都可以帮助我如何在构建文件中提及依赖项。而且,有一个 build.gradle 文件的强制性位置在哪里。
=== 更多信息从这里添加到原始问题 ===
我的构建文件如下。我已经做出了 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 文件中应该包含什么。还想知道上述文件中需要更改的内容。谢谢