• nexus部署私库及上传和拉包处理


    部署不在此赘述,部署好后地址为:http://ip:8081/nexus

    默认账号和密码:用户名:admin 密码:admin123

    nexus里可以配置3种类型的仓库,分别是proxy、hosted、group

    proxy是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用


    hosted是宿主仓库,用户可以把自己的一些jar,deploy到hosted中,也可以手动上传jar到hosted里。比如说自己项目封装的包给其它项目使用


    group是仓库组,将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址即可

    创建代理库

    如下以创建华为云代理为例,

    填入地址,其它不用管,点击创建即可

    创建私有库

    选择hosted有2种模式,Snapshot快照仓库和 Release发行仓库

    Snapshot快照仓库用于保存开发过程中的不稳定版本,Release发行仓库则用来保存稳定的版本。

    我们只需要处理上面2个重点位置即可

    将Version policy选择为Snapshot;(如果你想创建的是发布版本则使用Release)

    将Deployment policy选择Allow redeploy,允许部署和更新私服上的组件

    然后保存即可

    创建仓库组

    对于创建组的策略模式选择mixed混合组

    该组的成员选择我们需要放进来的仓库即可

    推送项目模块包到私

    在apache-maven-3.6.1\conf的settings.xml中的servers添加server

    账号密码为nexus的账号密码,可以自己创建一个账号专门用来上传下载

    这里的id对应下方pom文件提交私库的id

    1. <server>
    2. <id>nexus</id>
    3. <username>admin</username>
    4. <password>admin123</password>
    5. </server>

    根项目的pom文件:

    1. <!--提交私库-->
    2. <distributionManagement>
    3. <repository>
    4. <id>nexus</id>
    5. <url>http://192.168.0.90:8081/repository/maven-releases/</url>
    6. </repository>
    7. <snapshotRepository>
    8. <id>nexus</id>
    9. <url>http://192.168.0.90:8081/repository/maven-snapshots/</url>
    10. </snapshotRepository>
    11. </distributionManagement>

    这里有2个库,具体采用哪个库就看我们的版本号后缀

    版本号为1.0.0-SNAPSHOT,则会采用SNAPSHOT

    版本号为1.0.0-RELEASES,则会采用RELEASES

    然后点击maven deploy即可上传

    如果报401失败可能是pom的问题,需要再次写入上面关于pom中nexus的内容,也有可能没按照上面创建库/组时未将Deployment policy选择Allow redeploy

    从私库下包

    tip:下包一般用的url为仓库组的url,因为仓库组一般组合了代理库和私有库,非常方便

    1、项目范围控制

    根目录pom中引入下列代码,但是注意id与下面setting中配置的server的id一致

    tip:配置之后只会走这里的配置,如果私库只有某些定制的包,还需要在这里加aliyun或者huaweicloud的库,也可以创建仓库组,引入代理库和私有库即可。

    1. <!-- 强制读取私有库-->
    2. <repositories>
    3. <repository>
    4. <id>nexus</id>
    5. <name>nexus-repository</name>
    6. <url>http://192.168.0.90:8081/repository/maven-public/</url>
    7. <releases>
    8. <enabled>true</enabled>
    9. </releases>
    10. <snapshots>
    11. <enabled>true</enabled>
    12. </snapshots>
    13. </repository>
    14. </repositories>
    15. <pluginRepositories>
    16. <pluginRepository>
    17. <id>nexus</id>
    18. <name>nexus-pluginRepository</name>
    19. <url>http://192.168.0.90:8081/repository/maven-public/</url>
    20. <releases>
    21. <enabled>true</enabled>
    22. </releases>
    23. <snapshots>
    24. <enabled>true</enabled>
    25. </snapshots>
    26. </pluginRepository>
    27. </pluginRepositories>

    在apache-maven-3.6.1\conf的settings.xml中的servers添加server

    这里的id还是对应上面的pom文件的id

    1. <server>
    2. <id>nexus</id>
    3. <username>admin</username>
    4. <password>admin123</password>
    5. </server>

    2、全局范围控制

    这种所有依赖包直接找该库,要求该库存在代理库和私有库,这样依赖才能正常拉下来

    1. <servers>
    2. <server>
    3. <id>nexus</id>
    4. <username>admin</username>
    5. <password>admin123</password>
    6. </server>
    7. </servers>
    8. <mirrors>
    9. <mirror>
    10. <id>nexus</id>
    11. <mirrorOf>*</mirrorOf>
    12. <url>http://192.168.0.90:8081/repository/maven-public/</url>
    13. </mirror>
    14. </mirrors>
    15. <profiles>
    16. <profile>
    17. <id>nexus</id>
    18. <repositories>
    19. <repository>
    20. <id>nexus</id>
    21. <name>nexus-repository</name>
    22. <url>http://192.168.0.90:8081/repository/maven-public/</url>
    23. <releases>
    24. <enabled>true</enabled>
    25. </releases>
    26. <snapshots>
    27. <enabled>true</enabled>
    28. </snapshots>
    29. </repository>
    30. </repositories>
    31. <pluginRepositories>
    32. <pluginRepository>
    33. <id>nexus</id>
    34. <name>nexus-pluginRepository</name>
    35. <url>http://192.168.0.90:8081/repository/maven-public/</url>
    36. <releases>
    37. <enabled>true</enabled>
    38. </releases>
    39. <snapshots>
    40. <enabled>true</enabled>
    41. </snapshots>
    42. </pluginRepository>
    43. </pluginRepositories>
    44. </profile>
    45. </profiles>
    46. <activeProfiles>
    47. <activeProfile>nexus</activeProfile>
    48. </activeProfiles>

    3、匿名下包

    默认情况下,如果在maven setting文件下不设置nexus的账号密码,拉取包会出现报错Not authorized,nexus中配置允许匿名访问服务器,只要勾上即可

  • 相关阅读:
    达摩院ECCV基于Transformer探索帧间时空3D转2D的快速动作识别论文解读
    GDB调试简单介绍
    会声会影2022智能、快速、简单的视频剪辑软件
    【分布式微服务】feign 异步调用获取不到ServletRequestAttributes
    Object中的方法
    Markdown基础教程
    前端如何写进度条(上传或者下载文件的时候)
    JS事件循环
    人工智能算法工程师(高级)课程11-自然语言处理之NLP的语言模型-seq2seq模型,seq+注意力与代码详解
    Arouter源码系列之拦截器原理详解
  • 原文地址:https://blog.csdn.net/boywcx/article/details/133764131