linux怎么查看本机内存大小
238
2022-11-27
Nexus 制品库 04 上传制品第一种方式 mvn deploy
CI流水线中制品库集成
在开始引入制品的时候,就应该根据公司的规模和团队特点制定制品库的管理和使用规范。 设置了标准化的规范之后就可以轻松的实现自动化了。
制品规范定义
版本号
主版本号:表示项目的重大架构变更。次版本号:表示较大范围的功能增加和变化。修订版本号:表示重大Bug的修复。里程碑版本:表示某一个版本的里程碑。
仓库命名
类型 | 格式 | 示例 |
仓库组 | <技术>-group | maven-group |
仓库 | <业务简称>-<技术>-<类型> | devops-maven-RELEASE |
制品 | <应用名称 artifactId>-<版本号 version> | demo-devops-service-1.1.0.jar |
可以为每个部门创建一个仓库, 或者每个业务创建仓库。
目录结构: 按照 业务--------》服务-----------》版本 层级。
maven类型仓库
现在有个项目的制品,怎么上传到仓库中?先创建私有的仓库,存放内部的包
是否允许重传,比如这次包是1.1.1,那么下次传包还是否允许1.1.1,所以这里不让允许上传相同的版本号。
上面就创建好了maven类型仓库,maven类型的仓库是需要配置认证信息的,
这个是maven的配置文件,指定从哪里下载包,源有哪些以及源的认证信息。
[root@jenkins-agent ~]# vim /usr/local/apache-maven-3.8.1/conf/settings.xml
配置文件里面定义了本地缓存,也就是构建节点上有个缓存仓库,这个仓库就可以从私服里面下载下来
所有的包,如果要修改路径可以在maven里面去修改,在容器里面进行编译构建的时候,如果想要缓存下来,那么就需要在容器里面挂载持久化的存储,那么就可以在这指定好挂载的存储的路径,指定挂载点。
在k8s里面也一样,创建一个pvc绑定到pod里面,后面maven打包的时候就可以指定它。
容器销毁之后再去创建还会复用pvc,那么还会使用到这些缓存
[root@jenkins-agent ~]# cd .m2/[root@jenkins-agent .m2]# lsrepository[root@jenkins-agent .m2]# cd repository/[root@jenkins-agent repository]# lsaopalliance asm backport-util-concurrent ch classworlds com commons-codec commons-io commons-logging io jakarta javax junit net org
server里面是去配置nexus认证信息 (仓库已经有了, 此时我们需要配置maven的配置文件,在settings.xml中添加仓库的认证信息。如下:)
手动上传包
上传制品之前, 肯定得保证这仓库是存在的。上面就将仓库创建好了,接下来就是上传包了
可以看到上传想要这么多的参数,在maven类型的仓库里面组件信息有三个部分,这些和pom.xml对应起来,所以上面的信息就是pom.xml里面的信息。
Group ID + Artifact ID + Packaging
使用maven deploy 指令上传制品 自定义pom信息(灵活,用的最多)
这个就不需要去读取pom文件,因为有些项目的pom本来就不规范,一下子要规范化pom很难,所以还是这种方式灵活,用的最多。
制品对pom文件其实是没有要求的! 制品打完包之后一般在target目录下面。
参考:deploy:deploy-file-DgroupId=xxxxxx pom中的groupId-DartifactId=xxxxxx pom中的artifactId-Dversion=xxxxxx pom中的版本号version-Dpackaging=xxxxxx pom中打包方式-Dfile=xxxxxx 本地文件-Durl=xxxxxx 仓库url-DrepositoryId=xxxxxx 对应的是setting.xml(认证)
不加认证会报错
mvn deploy:deploy-file \-DgroupId=com.devops \-DartifactId=lulei \-Dversion=1.1.1 \-Dpackaging=jar \-Dfile=target/demo-0.0.1-SNAPSHOT.jar \-Durl=deploy 发布时,-DrepositoryId参数的值要与maven的配置文件中的
[root@jenkins-agent devops-maven-service-master]# vim /usr/local/apache-maven-3.8.1/conf/settings.xml
[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 44.558 s[INFO] Finished at: 2021-09-09T16:17:54+08:00[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project demo: Failed to deploy artifacts: Could not transfer artifact com.devops:lulei:jar:1.1.1 from/to remote-repository (authentication failed for status: 401 Unauthorized -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] deploy:deploy-file \-DgroupId=com.devops \-DartifactId=lulei \-Dversion=1.1.1 \-Dpackaging=jar \-Dfile=target/demo-0.0.1-SNAPSHOT.jar \-Durl=\-DrepositoryId=maven-hosted[INFO] --- maven-deploy-plugin:2.8.2:deploy-file (default-cli) @ demo ---Uploading to maven-hosted: to maven-hosted: (17 MB at 440 kB/s)Uploading to maven-hosted: to maven-hosted: (389 B at 5.5 kB/s)Downloading from maven-hosted: to maven-hosted: to maven-hosted: (295 B at 4.3 kB/s)[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 40.570 s[INFO] Finished at: 2021-09-09T16:21:46+08:00[INFO] ------------------------------------------------------------------------
包上传成功之后,可以看到如下信息
使用maven指令上传制品 直接读取pom文件(方便)
如果在源码文件pom.xml定义好了这些信息,那么就可以读取pom.xml里面的这些信息了,那么就不需要和上面一样去自己定义信息了。
mvn deploy:deploy-file \-DgeneratePom=false \-DrepositoryId=maven-hosted \-Durl=\-DpomFile=pom.xml \-Dfile=target/demo-0.0.1-SNAPSHOT.jar[INFO] --- maven-deploy-plugin:2.8.2:deploy-file (default-cli) @ demo ---Uploading to maven-hosted: to maven-hosted: (17 MB at 460 kB/s)Uploading to maven-hosted: to maven-hosted: (1.2 kB at 24 kB/s)Downloading from maven-hosted: from maven-hosted: (343 B at 7.6 kB/s)Uploading to maven-hosted: to maven-hosted: (357 B at 5.9 kB/s)[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------[INFO] Total time: 38.910 s[INFO] Finished at: 2021-09-09T16:31:58+08:00[INFO] ------------------------------------------------------------------------
版本问题
FAQ: release类型的仓库只能上传release版本的包。如果你尝试用snapshot包上传到release类型的仓库时会遇到这些错误的。
包是snapshot版本就不能上传到release仓库里面,需要开发人员去修改pom文件
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project demo: Failed to deploy artifacts: Could not transfer artifact com.example:demo:jar:0.0.1 from/to maven-hosted (transfer failed for status: 400 Repository version policy: SNAPSHOT does not allow version: 0.0.1 -> [Help 1]
解决方法: 1. 更新pom中的版本号
2. 对号入座,上传到对应类型的仓库。 将包上传到snapshot类型的仓库:
mvn deploy:deploy-file \-DgeneratePom=false \-DrepositoryId=maven-hosted \-Durl=\-DpomFile=pom.xml \-Dfile=target/demo-0.0.1-SNAPSHOT.jar
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~