java - Gradle 类似解决方案的项目

标签 java gradle multi-project

我需要一些毕业的真棒。

我有一个模块架构的项目。它有模块:api , platform和使用 api 制作的扩展模块模块。由于我已经开始单独实现这个项目,它有一个文件树:

root
|
|--api
|
|--platform
|
|--extensions
       |
       |--extension1
       |
       |--extension2
      etc

在每个组件(api、平台、extension1、extension2)文件build.gradle存在编译模块。我想做一个通用的build.gradle根目录下的-script,可以一次性编译项目的所有模块,并且可以运行调试(通过gradle application -plugin and run task)。

我试图通过添加项目依赖项并将它们放入 dependencies 来实现它。 -我的build.gradle的一部分-script 在根目录中,但它不起作用。

我也可以做一个简单的shell脚本来做到这一点,但它并不酷,你知道的。

简历

在根目录中需要一个 build.gradle 脚本,它可以一次编译所有模块,编译后它将从 build/libs 收集所有文件(在我的情况下是 .ini 和 .jar 文件)每个模块的目录并复制到root/build目录。

最佳答案

我所拥有的是一个脚本,它将自身配置为两部分。我们是一家 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
}

关于java - Gradle 类似解决方案的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22732560/

相关文章:

android - 升级错误后Android Studio “Gradle sync failed: …”

java - 如何使用 java 8 lambda 和流对 Map<YearMonth, List<LocalDate>> 进行排序

android - 更新android studio后出现错误 "Minimum supported Gradle version is 5.1.1. Current version is 4.4.1"

java - log4j:找不到根记录器信息。这个可以吗?

php - 使用PHP构建gradle Android项目

java - 从不同的项目调用不同的包

C# 解决方案 - 有多少个项目?

Gradle:如何在多项目构建中共享常见任务?

java - 从 SQLite 数据库中删除条目

java - 从 .txt 文件中提取所有日期