我需要一些好极了。
我有一个带有模块架构的项目。它有模块:
api
,platform
和使用api
模块制作的扩展模块。由于我已经开始单独实现这个项目,它有一个文件树:
root
|
|--api
|
|--platform
|
|--extensions
|
|--extension1
|
|--extension2
etc
在每个组件(api,platform,extension1,extension2)中都存在文件build.gradle
来编译模块。我想在根目录中创建一个通用build.gradle
- 脚本,以便能够一次编译项目的所有模块,并能够运行和调试(通过gradle application
- 插件并运行任务)。
我试图通过添加项目依赖项并将它们放入dependencies
- 根目录中的build.gradle
- 脚本的一部分来实现它,但它不起作用。
我也可以制作一个简单的shell
脚本,但它并不酷,你知道。
恢复
在根目录中需要一个build.gradle脚本,它可以编译所有模块一次,编译完成后会从build/libs
目录收集所有文件(在我的例子中是.ini和.jar文件)将每个模块复制到root/build
目录中。
答案 0 :(得分:0)
我所拥有的是一个脚本,它将自身配置为两部分。我们是一个Eclipse开发公司,我希望有一个gradle脚本可以构建开发人员创建的任何Eclipse项目。设置文件必须包含所有子项目。然后在构建项目中有一个构建脚本build.gradle
,它从Eclipse项目和类路径配置每个子项目。
构建目录彼此都是对等的,具有构建脚本的虚拟项目和支持配置文件(对于我们的产品)。所以我们有类似的东西:
/ (root of build tree)
| - build (build project with gradle.build script)
| - proj1
| - proj2
| ...
settings.gradle
脚本如下所示:
include "..:proj1",
"..:proj2",
...
因此,在开始之前,我必须将所有子项目添加为我的虚拟构建项目的依赖项。这意味着所有其他项目都必须为构建项目构建。
beforeEvaluate
{
subprojects.each
{ p->
dependencies.compile p
}
}
然后在配置阶段我创建适当的依赖项,添加源目录等
allprojects
{ proj ->
// this is most important. This makes the root task depend on the subprojects getting built
rootTask.dependsOn.add proj.tasks.getByPath("build")
// some code to read the dependencies
proj.dependencies.compile project(otherProjectName)
// some code to read the source directories
proj.sourceSets.main.resources.srcDir srcDir
}