• Nexus deploy时遇到RELEASE does not allow metadata的排查路程


    背景:

    由于换了一家新单位,java工程上很多工具都没有部署,于是自己准备部署了一套nexus版本较新(伏笔)尝试从部署到使用一条路探雷然后给同事做培训。

    按照正常的套路部署完以后配置maven setting文件;

    核心配置

    <servers>
    <server>
    <id>Robam_dkb_Release</id>
    <username>admin</username>
    <password>xxxx</password>
    </server>
    <server>
    <id>Robam_dkb_SnapShort</id>
    <username>admin</username>
    <password>xxxx</password>
    </server>
    </servers>

    <profiles>
    <profile>
    <id>nexusProfile</id>
    <repositories>
    <repository>
    <id>central</id>
    <url>http://xxxxx/repository/Robam_dkb_group/</url>
    <snapshots>
    <enabled>true</enabled>
    </snapshots>
    <releases>
    <enabled>true</enabled>
    </releases>
    </repository>
    </repositories>
    </profile>
    </profiles>
    <activeProfiles>
    <activeProfile>nexusProfile</activeProfile>
    </activeProfiles>

    pom文件配置

    <distributionManagement>
    <repository>
    <id>Robam_dkb_Release</id>
    <name>Robam_dkb_Release</name>
    <url>http://xxxxx/repository/Robam_dkb_Release/</url>
    </repository>
    <snapshotRepository>
    <id>Robam_dkb_SnapShort</id>
    <name>Robam_dkb_SnapShort</name>
    <url>http://xxxxx/repository/Robam_dkb_SnapShort/</url>
        </snapshotRepository>
    </distributionManagement>



    老公司的地址是http://xxxxx/nexus/content/groups/public/ 这样的地址 版本是老的

    新版本的地址是http://xxxxx/repository/Robam_dkb_SnapShort 一开始是担心地址的问题

    进入正题

    maven deploy后出现

    Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project component: Failed to retrieve remote metadata com.robam.cloud.component:component:0.0.1-SNAPSHOT/maven-metadata.xml: Could not transfer metadata com.robam.cloud.component:component:0.0.1-SNAPSHOT/maven-metadata.xml from/to Robam_dkb_SnapShort (http://xxxx/repository/Robam_dkb_SnapShort2/): Transfer failed for http://xxxxx/repository/Robam_dkb_SnapShort2/com/robam/cloud/component/component/0.0.1-SNAPSHOT/maven-metadata.xml 400 Repository version policy: RELEASE does not allow metadata in path: com/robam/cloud/component/component/0.0.1-SNAPSHOT/maven-metadata.xml

    因为新版本的index地址其实是http://xxxxx/service/rest/repository/browse/Robam_dkb_SnapShort/所以我尝试替换地址试试,然后deploy出现了405 Method Not Allowed 直接405了更不对了

    然后仔细再看报错发现0.0.1-SNAPSHOT版本这么会提示RELEASE does not allow metadata呢哪里的对应关系搞错了?

    后来百度各种属性修改依然不行,配置文件检查N遍还是没发现问题。后来发现仓库新建的时候有个的属性,坑爹,预发布仓库选成了稳定仓库。最后删除重建完成。

    总结:其实这个问题回过头冷静下来想想就该知道,deploy发布既然有预发布和稳定的区别,创建仓库的时候就应该注意,属性的编辑。归根究底还是对maven的管理掌握的不够透彻。以前是衣来伸手饭来张口使用即可,别人都已经给你把路打平,现在必须要深入一点了解才行。

    
    
  • 相关阅读:
    产品经理之PRD详解(非原创)
    编写代码的「八荣八耻」- 以开关上线为荣,以自信编码为耻
    安装社区版git仓库
    【干货分享】大话团队的GIT分支策略进化史
    Android IPC机制(一)开启多进程
    使用adb命令通过IP地址连接手机
    一篇文章了解Github和Git教程-AndroidStudio上传Github教程
    sublime实现markdown浏览器预览
    idea上maven使用心得(三)——用pom.xml添加jar包
    idea解决Maven jar依赖冲突(四)
  • 原文地址:https://www.cnblogs.com/xuetieqi/p/13723318.html
Copyright © 2020-2023  润新知