gradle构建多模块项目
尽管我们可以仅使用一个模块来创建一个运行中的应用程序,但有时将我们的应用程序划分为多个较小的模块是比较明智的。
因为这是一个相当普遍的用例,所以每个自重的构建工具都必须支持它,Gradle也不例外。 如果Gradle项目具有多个模块,则称为多项目构建。
这篇博客文章描述了如何使用Gradle创建多项目构建。
让我们开始看看Gradle构建的需求。
补充阅读:
如果您不熟悉Gradle, 则应先阅读以下博客文章,然后再继续阅读此博客文章:
- Gradle入门:简介可帮助您安装Gradle,描述Gradle构建的基本概念,并描述如何使用Gradle插件向构建中添加功能。
- Gradle入门:我们的第一个Java项目描述了如何使用Gradle创建Java项目并将应用程序打包到可执行jar文件中。
- Gradle入门:依赖性管理介绍了如何管理Gradle项目的依赖性。
我们的Gradle构建要求
我们的示例应用程序具有两个模块:
- 核心模块包含我们应用程序的其他模块所使用的通用组件。 在我们的例子中,它仅包含一个类: MessageService类返回字符串“ Hello World!”。 该模块只有一个依赖性:它具有一个使用Junit 4.11的单元测试。
- app模块包含HelloWorld类,该类启动我们的应用程序,从MessageService对象获取消息,并将接收到的消息写入日志文件。 该模块具有两个依赖性:它需要核心模块,并使用Log4j 1.2.17作为日志记录库。
我们的Gradle版本还具有其他两个要求:
- 我们必须能够使用Gradle运行我们的应用程序。
- 我们必须能够创建不使用所谓的“胖罐”方法的可运行二进制分发。
如果您不知道如何使用Gradle运行应用程序并创建可运行的二进制发行版,
您应先阅读以下博客文章,然后再继续阅读此博客文章:
让我们继续前进,了解如何创建满足我们要求的多项目构建。
创建多项目构建
我们的下一步是创建一个包含两个子项目的多项目Gradle构建: app和core 。 让我们从创建Gradle构建的目录结构开始。
创建目录结构
因为核心和应用程序模块使用Java,所以它们都使用Java项目的默认项目布局 。 我们可以按照以下步骤创建正确的目录结构:
- 创建核心模块( core )的根目录,并创建以下子目录:
- src / main / java目录包含核心模块的源代码。
- src / test / java目录包含核心模块的单元测试。
- 创建应用程序模块( app )的根目录,并创建以下子目录: