写点什么

Gradle 项目的 jar 发布到私有仓库,java 并发编程实战王宝令

作者:Java高工P7
  • 2021 年 11 月 09 日
  • 本文字数:1640 字

    阅读完需:约 5 分钟

  1. 以管理员身份登录 Nexus3,按照下图操作新增一个帐号,用来执行上传下载操作:



  1. 帐号基本信息如下,注意两个红框中的配置,状态是激活,角色您可以视情况而定,我这里为了简单就用了管理员角色:



  1. 最后点击底部的 Create local user 按钮完成创建;

Nexus3 上创建两个仓库(release 和 snapshot)

  1. 一般咱们会用到两种类型的仓库:release 和 snapshot,先创建 release 的,操作如下:



  1. 类型选择 maven2(hosted):



  1. 需要设置的参数如下图,这里我起的名字是 my-release,注意 Version policy 一定要选择 Release



  1. 点击底部的 Create respository 即可创建仓库;

  2. 接着创建 snapshot 类型的仓库,名字是 my-snapshot,详情如下所示,注意 Version policy 一定要选择 Snapshot,并且允许重复部署:



  • 好了,设置完成,接下来进入开发环节,先把二方库部署到刚刚新建的仓库中,再在另一个应用中使用这个二方库;

将二方库部署到 Nexus3

  1. 接下来的操作在您的二方库工程上进行,我这里用的是一个典型父子结构的 gradle 工程,该工程详情请参考《Gradle构建多模块SpringBoot应用》,下图红框中的 democlient 就是二方库模块,这里面只有一个 Student 类,咱们要做的就是将 democlient 模块构建成 jar 并部署到 Nexus3 的仓库中:



  1. democlient 模块的 build.gradle 如下,与上传操作有关的是 maven 插件,以及 uploadArchives 任务的参数,其中仓库的 url 参数的来源稍后会讲到:


plugins {


id 'java-library'


// 使用 maven 插件执行上传 jar 到 Nexus3 的操作


id 'maven'


}


// 如果要上传库到私服,就在此添加


def uploadGroup = group


def uploadArtifactId = this.name


def uploadVersion = version


// uploadArchives 任务的配置


uploadArchives {


// 仓库配置


repositories {


mavenDeployer {


// release 仓库的配置


repository(url: 'http://192.168.50.43:8081/repository/my-release/') {


authentication(


// Nexus3 上有权限上传 jar 的帐号及其密码


userName: 'bolingcavalry',


password: '123456'


)


}


// snapshot 仓库的配置


snapshotRepository(url: 'http://192.168.50.43:8081/repository/my-snapshot/') {


authentication(


// Nexus3 上有权限上传 jar 的帐号及其密码


userName: 'bolingcavalry',


password: '123456'


)


}


// 二方库的身份参数:group、artifact、version


pom.groupId = uploadGroup


pom.artifactId = uploadArtifactId


pom.version = uploadVersion


}


}


}


// 子模块自己的依赖


dependencies {


// 使用 api,将依赖传递给使用 democlient 的模块


api 'org.projectlombok:lombok'


// annotationProcessor 不会传递,使用了 lombok 生成代码的模块,需要自己声明 annotationProcessor


annotationProcessor 'org.projectlombok:lombok'


}


  1. uploadArchives 任务中的仓库 url 参数,请直接从仓库的详情页复制,如下图红框 4 就是 my-release 仓库的 url:



  1. 确认您项目的 version,我这里是 1.0.0-SNAPSHOT,如下图红框,所以构建出的 jar 会上传的 my-snapshot 仓库:



  1. 设置完毕后双击下图红框中的按钮,即可开始编译和构建:



  1. 构建完成后控制台输出如下,可见会先做编译打包再上传:



  1. 去 Nexus3 看看,点击下图位置查看仓库内容:



  1. 如下图,jar 已经上传成功,这里有多个是因为我这边执行了多次 uploadArchives 任务:


上传到 my-release 仓库

  • 篇幅所限,就不展示上传到 my-release 仓库的过程了,因为和前面上传到 my-snapshot 的操作是一样的,唯一的不同就是项目 version 中不要有 snapshot,如下图,这样就能上传到 my-release 仓库:



  • 需要注意的是


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


,之前创建 my-release 仓库时,其 Deployment policy 选项为 Disable redeploy,即不允许同一个 version 重复提交,因此同一个 version 只能成功上传一次,如果再次上传会报错,如下图:


使用仓库的内容

使用仓库的方法很简单,首先确保使用者的电脑能够访问到仓库,再在项目中配置仓库地址和 jar 坐标就行了,如下图红框:



  • 以上就是 Gradle 项目的 jar 发布到私有仓库和使用该 jar 的完整过程,如果您正在发布二方库,希望本文可以给您一些参考;

用户头像

Java高工P7

关注

还未添加个人签名 2021.11.08 加入

还未添加个人简介

评论

发布
暂无评论
Gradle项目的jar发布到私有仓库,java并发编程实战王宝令