首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >gradle新建工程,多项目依赖,聚合工程

gradle新建工程,多项目依赖,聚合工程

原创
作者头像
MonroeCode
发布于 2018-01-12 11:45:55
发布于 2018-01-12 11:45:55
3.6K00
代码可运行
举报
文章被收录于专栏:Java技术分享Java技术分享
运行总次数:0
代码可运行

gradle是个非常复杂的工具,从他的完整包80M和72章官方文档就可以看出一二。

一、平级项目依赖includeFlat

我的环境是gradle3.2.1,eclipse-neon,eclipse插件是(Buildship 1.0),jdk1.8

最常见的项目就是多工程平级的项目项目构造如下:

A

B

C

三个工程完全平级A是基础工程打成jar包给C引用,B是jar工程 也是打成jar给C引用。C是web工程打成war包发布。

网上的坑爹教程都是骗人的,没一个能解决这个问题。还是官方文档靠谱,只是72章太多了。

这样的工程配置其实非常简单,新建三个gradle工程

A中的build.gradle完全不用改

B中的settings.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[plain] view plain copy print?
rootProject.name = 'B'  
includeFlat  'A'  

记得请使用includeFlat表示水平级别。最开始写成了include ‘A’结果坑了我4个多小时。

B中的build.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies {  
   compile project(':A')  
   testCompile 'junit:junit:4.12'  
}  

请注意

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
compile project(':A') 

这个是gradle的依赖工程的写法。有多个就写多个就好

到这里B工程就配置完成了,打B的jar包就可以A一起打了。

C中的settings.gradle,和B的一样加上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
includeFlat  'A','B'  

C中的build.gradle就需要改一下完整的如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apply plugin: 'war'  
apply plugin: 'java'  
apply plugin: 'eclipse'  
  
repositories {  
    mavenLocal()  
    mavenCentral()  
}  
  
dependencies {  
    compile project(':A')  
    compile project(':B')  
    compile 'org.slf4j:slf4j-api:1.7.21'  
    testCompile 'junit:junit:4.12'  
}  

修改了几个地方 

1,加上了war的引用  加上之后插件中就显示有war的选项了,build的时候也会默认安装war的方式去打包。

2,中央库被我改成默认使用maven的中央库了

3,同时依赖了A B2个工程

到这里多个平级工程就建好了!其实真的挺简单。

二、聚合工程,模块式开发include

然后开发中还会有一种需求,在maven中叫聚合工程。项目结构如下:

C

|------C1

|------C2

就是一个工程被分为多个模块,每个模块需要在eclipse中显示为单独的工程。

其实写法非常简单,只是把之前的includeFlat改成include就好了

C中settings.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rootProject.name = 'C'  
include 'C1','C2'  

C1和C2都不需要修改任何代码,只是要在根目录下新增一个名为C1和C2的文件夹,C1和C2的文件夹下需要存在一个语法正确的build.gradle

然后刷新gradle就可以看到工程已经出来了。

三、多工程,多模块依赖(bt依赖)

假设

A

|----A1

C

|----C1

现在如果C1需要依赖A1,那么问题来了,这2个子模块根本没啥关系,如何依赖呢!

A中的settings.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rootProject.name = 'A'  
include 'A1'  

A1貌似不需要修改啥

C中的settings.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rootProject.name = 'C'  
include 'C1'  
includeFlat 'A'  
include 'A:A1'  

一般来说我们是不会在子模块中放入settings.gradle。即使放了C1中的settings.gradle也是不生效的,所以只能在C中的配置中写入。 C1中就可以在build.gradle

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies {  
    compile project(':A:A1')  
    testCompile 'junit:junit:4.12'  
}  

刷新gradle,这里的依赖请注意,因为gradle是默认带有依赖传递的,所以已经在A1引入的jar包在C1中也会默认引入,请注意jar包冲突。

如果有重复的jar包,会以C1中的为准,这种工程非常容易出现重复的jar,请注意jar的依赖。

总结:其实gradle是个很好用的工具,只是现在资料不好找。而且网上误导不全的一大把! 所以学gradle还是老老实实去看官方文档吧。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Gradle安装使用
简单介绍 Gradle是一个好用的构建工具 使用它的原因是 1、配置相关依赖代码量少,不会像maven一样xml过多 2、打包编译测试发布都有,而且使用起来方便
似水的流年
2019/12/13
2.1K0
Gradle 使用实例
总项目结构如下,其中有三个文件: gradle.properties 用来配置属性 group=com.yawn version=1.0-SNAPSHOT settings.gradle 用来说
yawn
2018/03/14
7750
Gradle 使用实例
Gradle安装使用
简单介绍 Gradle是一个好用的构建工具 使用它的原因是 1、配置相关依赖代码量少,不会像maven一样xml过多 2、打包编译测试发布都有,而且使用起来方便 3、利用自定义的任务可以完成自己想要的功能 安装 下载地址http://services.gradle.org/distributions/ 下载你所需要对应的版本 下载后解压到你想要的目录 设置环境变量,找到Path,在原始内容基础上加入目录到\bin;,必须以分号结束 如果需要可以设置本地仓库目录GRADLE_USER_HOME
似水的流年
2018/04/16
1.8K0
Gradle安装使用
Android Gradle配置分析
Android 开发目前大家使用的IDE是Android Studio,所以和Gradle打交道就是必不可少的了。 大部分时间可能我们关注的都是业务代码的开发,然而了解gradle可以帮助我们更好的构建我们的项目
艳龙
2021/12/16
1.1K0
Android Gradle配置分析
一篇文章掌握Gradle多项目构建
在使用 Android Studio 作为 IDE 之后,Android 项目就开始使用 Gradle 作为构建脚本,Gradle 的优点就不用我多说了,使用 Groovy 作为开发语言,配合各种 Gradle 插件和 DSL 可以实现多样化的构建过程。
蜻蜓队长
2018/08/03
1.4K0
Gradle多项目构建与jar包发布
通常在使用Maven构建项目的时候,我们会将一个项目划分为多个模块,然后通过父工程去管理子模块。而 Gradle 也拥有类似的功能,我们将其称之为多项目构建(multi-project build)。所以本小节我们来看看,如何使用 Gradle 进行多项目构建,首先创建一个Gradle工程,过程如下:
端碗吹水
2020/09/23
2.9K0
Gradle多项目构建与jar包发布
Gradle使用速记 原
Gradle在安装之前可以选择很多安装方式,这里选择SDKMAN。其他方式见安装说明。
随风溜达的向日葵
2018/08/15
9200
[Gradle] Gradle 聚合模块配置
此处主要为了过滤容器模块中的插件配置,容器模块的主要用来管理下属部分的模块,无需添加依赖和插件 spring-security-sso、common-dependencies都是容器模块
架构探险之道
2019/07/25
2K0
7--Gradle进阶 - settings.gradle的文件说明
介绍 settings.gradle 文件之前,先来说明一下,settings.gradle 主要是用来多模块工程使用的。
Devops海洋的渔夫
2023/09/01
1.7K0
7--Gradle进阶 - settings.gradle的文件说明
Gradle入门基础一
最近项目中使用到了Gradle所以就抓紧学习了一下。以下资料来自互联网,属于个人整理。图片如有侵权会删除
@派大星
2023/06/28
4170
Gradle入门基础一
gradle中的build script详解
build.gradle是gradle中非常重要的一个文件,因为它描述了gradle中可以运行的任务,今天本文将会带大家体验一下如何创建一个build.gradle文件和如何编写其中的内容。
程序那些事
2021/02/13
1.3K0
Gradle初体验
1.Gradle是基于JVM的,所以首先需要确保已经安装好了JDK,而我这里是已经安装好的了,官方文档中表示目前最新版本的Gradle需要的JDK环境是1.7以上。我这里用的是jdk10:
端碗吹水
2020/09/23
8480
Gradle初体验
关于Gradle配置的小结
使用 Android Studio 来开发 Android 工程的过程中,接触 Gradle 是不可避免的,比如配置签名、引入依赖等。那么 Gradle 到底是什么东西呢? Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具。它使用一种基于 Groovy 的特定领域语言 (DSL) 来声明项目设置,抛弃了基于 XML 的各种繁琐配置 (此定义来自于百度百科-_- !) 。啰里啰唆一堆,幸运的是,一般来说 Android 开发者只要会配置 Gradle 就可以了,并不需要深入了解。那么下面我们就来揭开 Gradle 的面纱吧。
俞其荣
2022/07/28
6950
关于Gradle配置的小结
build.gradle文件介绍,gradle版本对应
Could not find com.android.tools.build:gradle:3.0.1.
zhangjiqun
2024/12/16
6920
build.gradle文件介绍,gradle版本对应
Gradle 笔记
Task 是 Gradle 构建的最小执行单元。 clean 就是一种最常见的 Task。
tonglei0429
2019/07/24
7140
springBoot+gradle构建多模块项目
提示:若先配置settings文件无法触发自动构建,请先执行下一步“修改根目录 build.gradle”,之后保存就会自动执行。
WindCoder
2018/09/19
6.6K0
springBoot+gradle构建多模块项目
Android Gradle 初识
最近在研究一些技术,需要一些Android相关的知识,但发现要想了解 Android,必须要了解 gradle。因为gradle是Android Studio指定的自动编译脚本,它有点像 Linux C开发中的 Makefile。下面我来看下 Android Studio 是如何使用 Gradle 的。
音视频_李超
2020/04/01
5790
Android  Gradle 初识
Android 项目Gradle文件讲解(Groovy和Kotlin)
  在Android应用开发中,Gradle是很重要的,它关系到你的项目能否正常编译运行,构建APK等等,而随着Android Studio编辑器的更新,Gradle也发生了一些变化。
晨曦_LLW
2024/11/28
2.7K0
Android 项目Gradle文件讲解(Groovy和Kotlin)
【Android Gradle 插件】Android Studio 工程 Gradle 构建流程 ② ( settings.gradle 构建脚本分析 | 根目录下 build.gradle 分析 )
在 dependencyResolutionManagement 脚本块 中 定义的 repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 代码的含义是 解析依赖时 , 只能使用本脚本块中的 Maven 仓库 , 不能使用 Module 子项目中的依赖 ;
韩曙亮
2023/03/28
2.3K0
【Android Gradle 插件】Android Studio 工程 Gradle 构建流程 ② ( settings.gradle 构建脚本分析 | 根目录下 build.gradle 分析 )
快速构建第一个Flink工程
在安装好Flink以后,只要快速构建Flink工程,并完成相关代码开发,就可以轻松入手Flink。
大数据流动
2019/09/11
2K0
快速构建第一个Flink工程
相关推荐
Gradle安装使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档