内容简介:本篇主要讲述:gradle多模块打jar包,上传本地仓库,并交由本地其他项目使用注:gradle版本不同,引入依赖方式可能不同,如果你发现本地导包是OK的,但是打包就报错,可以看看是不是gradle版本所引起的问题【
1、前言
本篇主要讲述:gradle多模块打jar包,上传本地仓库,并交由本地其他项目使用
2、环境准备
- 操作系统: mac os
- gradle版本:4.1.0
- 开发软件:idea
注:gradle版本不同,引入依赖方式可能不同,如果你发现本地导包是OK的,但是打包就报错,可以看看是不是gradle版本所引起的问题
3、多模块gradle文档
【 gradle多环境讲解,官方文档 】,官方文档描述了多模块配置中的几个必闭包的常规使用
allprojects{}, subprojects{}。前者包括root模块之内的所有模块,后者只应用子模块,详细的使用规则进入官方文档详细了解
4、项目实战
项目1结构
|──root-project-one 项目1名称
├── common-project 基础子项目
│ └── build.gradle 基础子项目配置文件
├── example-project 依赖common项目的示例项目
│ └── build.gradle 依赖common项目的示例项目的配置文件
├── build.gradle 项目1的配置文件
项目2结构
|──root-project-two 项目2名称
├── build.gradle 项目2的配置文件(需要引用项目1中的example-project)
各个项目的配置文件(此处只列举主要配置)
root-project-one/build.gradle
//所有子项目共享配置
subprojects {
apply plugin: 'maven'
// 获取本地仓库路径
def localRepositoryPath = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath
//打包至本地仓库配置
uploadArchives {
repositories {
//mavenDeployer 需要依赖 apply plugin: 'maven'
mavenDeployer {
repository(url: localRepositoryPath)
pom.project {
name = project.name // 当前项目名称
version = project.version //当前项目版本 0.0.1
groupId = project.group // 当前项目组 com.xxx
}
}
}
}
}
common-project/build.gradle
//jar SKIPPED 问题,添加如下配置 jar.enabled=true //(不设置可能会无法打jar)
example-project/build.gradle
dependencies {
//依赖 common-project
compile project(':common-project')
}
//jar SKIPPED 问题,添加如下配置
jar.enabled=true
上述配置完毕后刷新gradle配置,进入每个子模块中打开命令行执行如下命令进行打包
gradle -q uploadArchives
或者打开右侧的gradle面板,到模块下的task>upload>uploadArchives,点击执行即可生成相关jar
本地项目引用jar
root-project-two /build.gradle
repositories {
//优先查找本地maven库,性能最好
mavenLocal() //注:引用本地jar包时,必须加上本地maven库
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
dependencies {
//依赖本地jar
compile('com.xxx:example-project:0.0.1')
}
5、总结
- gradle版本可以通过修改项目下gradle>wrapper>gradle-wrapper.properties文件的distributionUrl对应地址的版本来修改,修改版本后需要刷新gradle
- 当多模块相互依赖,打包给本地其他项目使用的时候,相互依赖的模块建议都打jar包上传本地仓库
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Fedora 28 Beta 发布,引入全新特性模块化仓库
- Go Web 小技巧(四):在单个仓库中支持多个 go mod 模块
- 数据仓库(一):认识数据仓库
- 将 svn 仓库迁移到 git 仓库
- 仓库ERP软件集成RFID打造智能仓库物流系统
- 实战maven私有仓库三部曲之二:上传到私有仓库
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
我知道他想看什么
沙建军 / 中信出版社 / 2018-1 / 48.00
社交媒体迅速发展、信息快速迭代、时间碎片化;大数据、智能终端、物联网横空出世;移动支付、网红经济和传统营销失效,这些都让这个时代的媒体、内容、渠道、产品之间的边界越来越模糊,也从根本上改变了营销的逻辑,内容营销从热词变成趋势,变成营销的底层思维。未来一切都是媒体,形式也是内容。 本书作者通过对国内外36个内容营销的新近案例的故事化描述和透彻分析,提出“组织媒介化”“营销内容化”“内容情趣化”......一起来看看 《我知道他想看什么》 这本书的介绍吧!