我有两个具有以下目录结构的Gradle项目:
/baseDir
/first
/first/build.gradle
/second
/second/build.gradle
/second/settings.gradle
settings.gradle如下所示:
includeFlat "first"
当我gradle build
时,第二个项目是在第一个(主要)项目之后编译的。我尝试了第一个项目的build.gradle:
dependencies {
compile project(':first')
}
在执行gradle build
时,我收到错误,在第二个项目中找不到第一个项目中声明的依赖项。
我需要的是以下内容。当我在第二个项目上gradle build
时,我希望首先构建第一个项目,并在第二个项目中使用first.jar
作为依赖项。
我该怎么做?
编辑:当我在第二个项目的settings.gradle中设置以下内容时:
includeFlat "first", "second"
然后在执行graddle clean
时出现以下错误:
FAILURE: Build failed with an exception.
* What went wrong:
Could not select the default project for this build. Multiple projects in this build have project directory '/Users/mg/Documents/Grails/GGTS3.6.3-SR1/second': [:, :second]
> Multiple projects in this build have project directory '/Users/mg/Documents/Grails/GGTS3.6.3-SR1/second': [:, :second]
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
编辑:我创建了一个示例项目表单演示:https://github.com/confile/Gradle-MultiProject-Test
答案 0 :(得分:0)
您可以让构建任务依赖于另一个项目的构建任务:
build{
dependsOn ':first:build'
}
尝试此项目设置:
root
settings.gradle
gradle.build
first
gradle.build
second
gradle.build
并将其放在root的settings.gradle中:
include 'first'
include 'second'
答案 1 :(得分:0)
你应该移动块
dependencies {
compile project(':first')
}
到第二个项目的build.gradle。 这将构建第一个项目,在第二个项目和第二个项目之前可以使用第一个项目的类。