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

96
互扯程序
2017.12.19 11:38* 字数 1086

前言

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

定义

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

Gradle是一个基于Apache Ant和Apache 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')

}

推荐阅读:

技术:2018,如何从小白升级到大牛程序员呢?

技术:http2.0的时代真的来了...

技术:如何站在巨人的肩膀上,将自己的产品赋予AI的能力?

工具:如何通过技术手段 “干掉” 视频APP里讨厌的广告?

工具:通过技术手段 “干掉” 视频APP里讨厌的广告之(腾讯视频)

工具:抓包神器之Charles,常用功能都在这里了

干货分享:

分享:深度机器学习56G视频资源分享

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

一码不扫,何以扫天下?长按关注我们
日记本
Web note ad 1