专栏首页互扯程序Gradle打jar包如何上传到maven本地库

Gradle打jar包如何上传到maven本地库

前言

本篇教程偏向实战,程序猿直接copy代码加入到自己的项目中做简单的修修改改便可使用,而对于Gradle以及Maven不在此进行展开介绍,如有读者希望了解可以给我留言,并持续关注,我后续会慢慢更新。(黑色区域代码部分,安卓手机可手动向左滑动,来查看全部代码)

定义

Maven是一个项目管理和自动构建工具。

Gradle是一个基于Apache AntApache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。

需求

在实际开发过程中,我们可能把一些自己实现的公共代码打包成一个jar包提供给各个项目使用,有几种做法:

  1. 上传到Maven中央库中
  2. 上传到Maven私服(Nexus)
  3. 上传到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 的配置......
  1. apply plugin: 'maven' (引入maven插件)
  2. group = 'com.user.server'(会按照group生成.m2的目录路径)
  3. version = '1.0.0-RELEAS' (指定版本号)
  4. def localMavenRepo(指定上传的路径)
  5. 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')
}

本文分享自微信公众号 - 互扯程序(chat_routine)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 谷歌AI版“你画我猜”背后是什么样的原理?

    我们先看看这个小程序是什么,打开微信小程序搜索页面,搜索“猜画小歌”,打开这个小程序,点击开始作画。小程序会先出题,告诉你画什么,20秒倒计时,你画完内容,然后...

    互扯程序
  • 手把手教你调用百度人脸识别API

    现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享。

    互扯程序
  • Java 还有第三种创建多线程的方式?

    我们在多线程编程中最常用的两种方式:一种是直接继承Thread,另外一种就是实现Runnable接口。这两种方式都有一个缺陷就是:在执行完任务之后无法获取执行结...

    互扯程序
  • Maven入门教程

    概念 Maven是什么 Maven 是一个项目管理工具。它负责管理项目开发过程中的几乎所有的东西。 版本 maven有自己的版本定义和规则 构建 maven支持...

    静默虚空
  • Web基础配置篇(二): Maven配置及使用

    然后后面又来了个gradle,貌似比maven更好用,我这里不会,也不讲,就目前来说,maven的用户量还是比较大的。

    品茗IT
  • IDEA自带Maven Projects窗口打包项目报错

    試毅-思伟
  • Web基础配置篇(二): Maven配置及使用

    然后后面又来了个gradle,貌似比maven更好用,我这里不会,也不讲,就目前来说,maven的用户量还是比较大的。

    品茗IT
  • Maven快速学习教程

    在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还里要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要。

    张果
  • 只需五分钟-用Maven快速搭建Spring Cloud微服务

    如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135...

    java架构师
  • 运维小事件-持续更新

    笨兔儿

扫码关注云+社区

领取腾讯云代金券