Maven 部署私服依赖

Hello,各位小伙伴大家好,我是老郑头。好久不见,最近因为工作的缘故,导致了更新变慢,但是老郑头也在积极的做素材的规划,毕竟学习知识点的归纳和提炼需要一定的时间。

所以还请大家多多见谅,下一期的分享主题我们依旧会围绕着go语言系列进行。不过老郑头会尽量加快节奏。因为接下来的挑战是对于最近关乎国家战略有关的区块链。

因为之前有幸参加了相关的一部分项目实战,所以也想对于这一部分做一个简单的教程系列。还请大家敬请期待哦。

闲话不多说,我们今天分享的主题就是最近在项目开发上遇到的一个简单问题总结,就是关于maven私服的上传jar包。因为大家都知道关于java的项目开发经历了换代,老郑头最开始做开发的时候,使用的是最原始的jar包导入。

就是你需要在网上将你项目中所要的jar进行下载,然后放在项目的lib目录下,最后使用eclipse进行build。

这样的坏处就是由于项目过大,或是项目所使用的jar包太多,导致了管理混乱,严重的时候,甚至会影响项目的开发。因为会导致jar冲突,或是项目版本和jar包不符。后面我们就开始使用了maven对项目jar包进行管理。

Maven的介绍

在这里插入图片描述

百度百科上对于maven的描述是:maven是可以通过一小段描述信息来管理项目的构建、报告和文档的项目管理工具软件。

它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。

遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

Maven的好处

使用maven的好处当然是有很多的,第一个可以更加方便的管理项目的依赖。

在这里插入图片描述

所有的jar包管理上图所示,一目了然,而且版本和注释都可以写清楚,让开发者更加直观、明了的了解到项目所用到的jar包和版本。

其次就是使用maven后可以结合jenkins可以实现一键部署,省去了中间烦恼,想比与之前的本地打包,然后上传服务器,接着备份和停服务,最后重启的繁琐步骤,maven的使用可以算的上真正的为我们开发者节约了不少的时间,提升我们的开发效率。

最后就是在大型项目的开发过程中,特别是现在很火的微服务构建中,利用maven可以最大程度的帮助我们进行模块的划分和复用。有过手动导包开发的小伙伴们更加能够体会到这其中的变化巨大吧。

Maven的安装

Maven的安装可以算的上是非常简单的了,简单来讲的话可以分为三步走 。

第一步进行下载maven,大家可以通过官网进行下载最新的maven包。

最新的记录是3.6.2,在需要jdk 环境的说明中有写到,需要1.7以上的版本,而且官网也提供了编译好的包和源码包供大家下载使用。

第二步就是配置环境变量

其实maven的环境变量非常简单,首先我们看到下载好的maven项目内部是这个样子的。

然后建立一个maven_home

最后在我们的path里添加相应的bin文件路径位置即可。

第三步就是验证 ,使用命令mvn -v 即可

最后提醒大家一点的就是maven的默认仓库是在C盘,如果需要改变的话,只需要修改settings文件的位置即可。

Maven上传到私服

Maven的仓库主要分为三种,第一种就是本地仓库,

第二种就是公司私服,

第三种就是远程仓库。一般来讲,如果是自己开发,我们只需要使用远程镜像,就可以将远程仓库中的jar包下载到自己的本地仓库。

然后进行使用,但是我们公司有专门的私服。所以我们有时候就需要将某一部分共用代码打成jar放到私服,以便于大家使用。所以老郑头在这里使用三种方式来给大家进行分享。

第一种方式当然是我们最简单的可视化界面 。这个时候我们只需要问一下运维或是管理服务器的人员,给我们私服的一个账号密码和地址即可。

img

img

img

如图所示,我们只需要将我们打好的jar包上传,添加延展性、groupID 、artifactID、版本号然后上传即可。

第二种-通过命令上传

通过使用maven的deploy命令将本地jar上传到指定的私服中,步骤如下:

使用命令mvn deploy部署jar包:

其实网络中有太多的人描述如何上传jar包到私服,但是老郑头试过了,结果显而易见的不得行,当然也不是全部都不行,只是绝大部分不可以。本着负责任的态度。所以老郑头挑选了一个正反例子给大家进行示范,当然有可能只是我不行,也可能是哪一步做错了导致不行。

mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=E:\jar\alipay-sdk-java.jar -DgroupId=com.alipay -DartifactId=sdk-java -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -DrepositoryId=snapshots -Durl=http://10.0.1.xx:8080/nexus/content/repositories/snapshots/


各参数代表含义为:

-Dmaven.test.skip=true //跳过编译、测试
-Dfile=E:\jar\alipay-sdk-java.jar //jar包文件地址,绝对路径
-DgroupId=com.alipay //gruopId,可自定义
-DartifactId=sdk-java //artifactId,可自定义
-Dversion //版本号
-Dpackaging //打包方式
-DrepositoryId //远程库服务器ID
-Durl //远程库服务器地址

注:可能出现的问题

1.Return code is: 401, ReasonPhrase:Unauthorized

说明没有配置权限:打开maven conf 下的setting.xml 中加入如下代码:

 <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin</password>
</server>

因为我将jar上传至http://10.0.1.xx:8080/nexus/content/repositories/snapshots/ 所以-DrepositoryId=snapshots,而且授权id也是snapshots,如果你要上传到其它仓库下记得更改DrepositoryId和授权id

2.Return code is: 400, ReasonPhrase: Bad Request

(1)出现该问题有可能是已经上传过了这个jar,但是policy没有选择Allow Redeploy;

(2)有可能版本不符,快照版不能选择Release

前提:已经搭建好nexus maven私服,地址192.168.110.240:9091

在maven的setting.xml中找到标签,在中间加上:

<mirror>
<id>nexus</id>
<mirrorOf>central</mirrorOf>
<url>http://192.168.110.240:9091/repository/maven-public/</url>
</mirror>

服务器上有几个主要库,release,snapshots ,3rdParty,分表代表:发行版,快照版,第三方,发布到哪个库可自行根据需要选择,点击列表右边的copy按钮可看到对应库的发布地址,将该地址拷贝到-Durl参数中即可

如:img

最后一个参数:

-DrepositoryId 配置的私服ID,即刚刚在setting.xml中的下的标签中配置的内容

第三种也是命令的形式

这种方式经过老郑头的实测比较可靠(举例说明),命令如下:

mvn install:install-file -Dfile=D:\\asciidoctorj-pdf-1.5.0-alpha-zh.16.jar -DgroupId=org.asciidoctor -DartifactId=asciidoctorj-pdf -Dversion=1.5.0-alpha-zh.16 -Dpackaging=jar

注意一下:这样做的前提条件是屏蔽掉你所有的镜像

然后执行命令 maven install命令

image-20220111140411287

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值