因为目前云效制品仓库氛围release snapshot 然后生产环境发布和拉release的jar 本地拉不了release。导致有时候上线审批完了,发布的时候应用编译报错。回滚体验不好,有好的处理方法 没?除了增加预发环境
针对您描述的问题,我可以提供以下几种处理方法:
将制品仓库中的release和snapshot分别存放到不同的目录下,然后在项目的pom.xml
文件中使用不同的仓库地址。例如,您可以在<repositories>
标签中添加两个不同的仓库地址,分别指向release和snapshot目录。这样可以避免在生产环境中意外地使用到snapshot版本的依赖包。
在项目中使用Maven的版本管理功能,将依赖包的版本号统一管理,并使用Maven的maven-release-plugin
插件进行版本发布。这样可以确保在生产环境中只使用已经经过测试和审批的release版本。
在流水线中使用Maven的dependency:purge-local-repository
命令,清除本地Maven仓库中的所有依赖包和插件。然后在流水线中重新执行Maven构建任务,以从制品仓库中下载最新的release版本的依赖包和插件。这样可以确保在生产环境中使用的依赖包都是最新的release版本。
对于制品库中的 Release 和 Snapshot 版本,可以考虑在本地使用不同的 Maven 仓库进行管理,这样可以避免因为 Release 和 Snapshot 版本混淆导致的问题。具体步骤如下:
在本地创建一个新的 Maven 仓库,用于管理 Release 版本。可以使用以下命令创建: mvn install:install-file -DgroupId= -DartifactId=
-Dversion= -Dfile= -Dpackaging=
-DgeneratePom=true -DlocalRepositoryPath= 其中,、、、、 需要替换成对应的值, 是本地 Maven 仓库的路径。
在本地的 Maven 配置文件 settings.xml 中添加新的仓库。可以在 标签中添加以下内容: release-repo release-repo file:// release-repo 其中, 是本地 Maven 仓库的路径。
在使用 Maven 打包或者编译时,使用 -Dmaven.repo.local= 参数指定本地 Maven 仓库的路径。 这样,就可以在本地使用不同的 Maven 仓库来管理 Release 和 Snapshot 版本,避免混淆导致的问题。同时,也可以在云效中配置使用不同的 Maven 仓库,以便在生产环境发布时使用正确的版本。
您的那个情况,虽然不清楚您本地为什么拉不了release的依赖,但是要测试使用release的依赖进行构建,这边只能建议您弄个测试环境,此回答整理自钉群“云效开发者交流群6群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。