【发布时间】:2011-10-30 00:12:48
【问题描述】:
我正在为此撕毁我的头发。我已经将我的脚本直接剥离回 Gradle 教程页面中提供的代码,因为我认为我要么在做一些根本错误的事情,要么误解了应该如何使用 gradle 构建多项目应用程序。
我在 eclipse 中有三个 java 项目,三个都包含 build.gradle 脚本,只有一个包含 settings.gradle 脚本。结构如下:
Scripts
-- build.gradle
-- settings.gradle
Database
-- build.gradle
Services
-- build.gradle
我正在尝试使用“脚本”项目中的构建脚本构建“数据库”和“服务”项目。要创建项目树,我在 settings.gradle 中有以下代码:
include 'Services', 'Database'
project (':Services').projectDir = new File(settingsDir, "../Services")
project (':Database').projectDir = new File(settingsDir, "../Database")
复制多项目教程(gradle docs)中的代码,我试图让每个构建脚本打印出一些文本,以确保一切设置正确。我的最终目标是在执行“eclipseClasspath”时正确构建依赖项,以便所有项目在 eclipse 中正确编译。但是,文本并没有像我预期的那样打印出来!
以下是三个构建脚本中包含的内容:
脚本 build.gradle
allprojects {
task hello << { task -> println "I'm $task.project.name" }
}
subprojects {
hello << {println "- I depend on Scripts"}
}
数据库构建.gradle
hello.doLast {
println "- I'm inside database"
}
服务构建.gradle
hello.doLast {
println "- I'm inside services"
}
在“脚本”项目中,当我运行“gradle -q hello”时,我得到以下结果:
I'm Scripts
I'm AnprDatabase
- I depend on Scripts
I'm Database
- I depend on Scripts
为什么没有出现文本“-我在数据库中”和“-我在服务中”?我对此有点困惑。我只能推测这与我的项目结构有关。有人可以确认是这种情况吗?如果不是,问题是什么?如前所述,我已经将我的脚本剥离回这个简单的示例,因为我无法让依赖项在每个项目构建脚本中使用相同的结构运行。
非常感谢提供的任何帮助。
【问题讨论】:
-
对我来说很好,
gradle-1.0-milestone-3 -
我正在使用相同版本的 gradle。您的应用程序是否包含与我的结构相同的 java 项目?
-
对您来说还有一个问题,您的构建脚本是从等效的“脚本”项目中运行的,还是位于三个项目的根目录中?我想尝试从“脚本”项目中运行我的项目
-
就目前而言,这个问题与 Eclipse 没有任何关系。应该改进问题的标题。
-
道歉彼得,我已经添加了改进的标题以提及 eclipse