Gradle打jar包如何上传到maven本地库
前言
本篇教程偏向实战,程序猿直接copy代码加入到自己的项目中做简单的修修改改便可使用,而对于Gradle以及Maven不在此进行展开介绍,如有读者希望了解可以给我留言,并持续关注,我后续会慢慢更新。(黑色区域代码部分,安卓手机可手动向左滑动,来查看全部代码)
定义
Maven是一个项目管理和自动构建工具。
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。
需求
在实际开发过程中,我们可能把一些自己实现的公共代码打包成一个jar包提供给各个项目使用,有几种做法:
- 上传到Maven中央库中
- 上传到Maven私服(Nexus)
- 上传到Maven本地仓库
当公司没有安装私服,而这个公共的jar包只需要自己来用,不需要分享给别人的去用的话,最简单的方式就是打包上传到自己的本地Maven仓库,然后其它项目去引入依赖即可。
Maven比较简单,直接build pom文件直接将打成的jar包生成到了本地仓库,但是Grande需要进行简单的Task定义
定义资源库
默认情况下,Gradle没有定义任何资源库。您需要定义至少一个,然后才能使用外部依赖。在build.gradle中进行定义。
Maven的本地存储库的使用:
repositories {
mavenLocal()
}
Maven的中央存储库的使用:
repositories {
mavenCentral()
}
远程Maven仓库的使用:
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
远程Ivy仓库的的使用:
repositories {
ivy {
url "http://repo.mycompany.com/repo"
}
}
打包Task定义
下面是build.gradle需要的一些配置
buildscript {
ext {
springBootVersion = '1.5.6.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'maven' // 引入maven插件
apply plugin: 'org.springframework.boot'
group = 'com.user.server' // 会按照group生成.m2下的目录路径
version = '1.0.0-RELEASE' // 指定版本
sourceCompatibility = 1.8
repositories {
mavenLocal() // 使用本地仓库
mavenCentral()
}
// 指定上传的路径
def localMavenRepo = 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath
// 上传Task,Gradle会生成并上传pom.xml文件。
uploadArchives {
repositories {
mavenDeployer {
repository(url: localMavenRepo)
//构造项目的Pom文件
pom.project {
name = project.name
packaging = 'jar'
description = 'description'
}
}
}
}
此处省略 dependencies 的配置......
- apply plugin: 'maven' (引入maven插件)
- group = 'com.user.server'(会按照group生成.m2的目录路径)
- version = '1.0.0-RELEAS' (指定版本号)
- def localMavenRepo(指定上传的路径)
- uploadArchives(上传Task,Gradle会生成并上传pom.xml文件。)
6. plugin: 'maven-publish'(将源码一起打包,需要时添加)
配置已经完全搞定,下一步就是打包了
执行打包Task
./gradlew uploadArchives(执行这个Task)
执行完提示Seccess后,你就可以到对应的目录下找到相应的jar包了。
项目的引入依赖
jar包生成之后,那就是需要在其它项目里引入次依赖了,跟引入普通依赖一样
repositories {
mavenLocal() // 必须引入本地仓库,不然找不到jar包
mavenCentral()
}
dependencies {
compile('com.user.server:user-comm:1.0.0-RELEASE')
}
- union(并),setdiff(差),intersect(交)R语言含义
- JavaWeb11-jsp.cookie.session(2)
- 一个慢查询报警的简单处理 (r8笔记第12天)
- 厚土Go学习笔记 | 38. goroutine轻量级线程
- 厚土Go学习笔记 | 36. web服务指定路径下的get参数接收与处理
- Java开发Spring笔记第二天
- PHP调用Go服务的正确方式 - Unix Domain Sockets
- 一条看似平常的报警邮件所做的分析(r8笔记第9天)
- 55. 上传文件(Web版) | 厚土Go学习笔记
- R语言与机器学习学习笔记(分类算法
- 54. 心跳的实现 | 厚土Go学习笔记
- 通过错误的sql来测试推理sql的解析过程(二) (r8笔记第7天)
- 53. Socket服务三次握手的示例 | 厚土Go学习笔记
- R分词继续,"不|知道|你在|说|什么"分词添加新词
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释