首页 > 编程知识 正文

自己的jar包发到阿里maven,向maven仓库上传jar包

时间:2023-05-04 05:36:51 阅读:265821 作者:721

阿里云maven私有库上传jar包之两三事儿

最近做项目遇到个问题,其实也不是个大问题,主要是花的时间有点长,稍微的记录一下

问题:
在进行帆软报表的数字签名认证时,需要引入两个jar包,core、third这两个jar包,好死不死的这两个jar包,帆软并没有上传至公共的maven库,这就需要自己上传

方案一:
1:首先,上传至自己本地的maven库,保证开发没有问题

mvn install:install-file -DgroupId=com.sinoflag.fr -DartifactId=fine-third -Dversion=10.0 -Dpackaging=jar -Dfile=fine-third-10.0.jar

这里只配置一个,另外一个一样的命令
-Dfile 如果是在jar包所在文件夹则直接写名称即可,如果不是写jar包全路径
其他参数无需多说

2:由于我们用的是阿里云效的制品库作为maven的私库,因此需要再将两个jar包,传到私库上
问题来了,阿里的制品库,在浏览器页面上,上传时,third 这个jar包,上传失败 ,这个jar包足足有130多MB,我怀疑是它太胖了导致的(看来减肥还是有必要的)
等待后续:给阿里下发了工单,他们正在处理
其实用命令行是可以上传的,但是当时已懵逼,并不知道啊,后来用了命令行上传成功,而阿里正在解决页面上的上传问题

mvn deploy:deploy-file -DgroupId=com.sinoflag.fr -DartifactId=fine-third -Dversion=10.0 -Durl=私库地址 -Dpackaging=jar -DrepositoryId=私库ID -Dfile=fine-third-10.0.jar

这个命令的背后,当然还需要在maven配置文件里,配置阿里云的身份认证信息

这个方案有问题,那不能等啊,尝试着用另外一种方式,有次出现了方案二

方案二:将jar包放到项目工程中,再以引入本地系统jar包的方式引入
在项目根目录下,创建lib目录,并将上述两个jar包,放进去
然后pom文件为

<dependency> <groupId>com.fr</groupId> <artifactId>fine-core</artifactId> <version>10.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/fine-core-10.0.jar</systemPath></dependency><dependency> <groupId>com.fr</groupId> <artifactId>fine-third</artifactId> <version>10.0</version> <scope>system</scope> <systemPath>${project.basedir}/lib/fine-third-10.0.jar</systemPath></dependency>

ok,代码已经可以编译了,也没有问题了

但是你认为完美了吗??? 并没有

130多MB的jar包放在代码里,多占地方,服务器难道不嫌弃它吗,其他的文件,不嫌弃挤得慌吗

并且,目前编译部署,用的是阿里云的云效,用流水线去构建和部署,每次编译需要将代码copy到编译服务器去执行,多增加了130MB,copy过去的时候就问问你,急不急

不过制品库的依赖,在阿里云编译的时候是增量的,有缓存的

因此,最终还是选择了,搞阿里云的制品库,也就有了用命令行上传成功的操作了,花费了大半天的时间,让我想怼死我眼前的所有生物

以上!!!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。