您的位置:首页 > 房产 > 建筑 > Nexus3 批量上传 jar 包、pom文件

Nexus3 批量上传 jar 包、pom文件

2024/10/7 6:50:41 来源:https://blog.csdn.net/footless_bird/article/details/140600501  浏览:    关键词:Nexus3 批量上传 jar 包、pom文件

Nexus3 Maven 私服搭建及各种使用

详见**Maven私服搭建及各种使用汇总2020**

Maven 配置 Nexus 私服

  • 在 Maven 项目中配置 Nexus 私服,需要在项目的 pom.xml 或 maven 的 settings.xml 文件中添加 Nexus 仓库的配置。

  • 示例:

    • 以下是一个项目的 pom.xml 文件的配置示例:

      <project><!-- ... 其他配置 ... --><repositories><repository><id>my-nexus-repo</id><url>http://my-nexus-server/repository/maven-public</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>my-nexus-repo</id><url>http://my-nexus-server/repository/maven-public</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories><!-- ... 其他配置 ... -->
      </project>
      

      在 Maven 的 settings.xml 文件中,还需要配置服务器和认证信息

      <settings><!-- ... 其他配置 ... --><servers><server><id>my-nexus-repo</id><username>my-username</username><password>my-password</password></server></servers><!-- ... 其他配置 ... -->
      </settings>
      
    • 以下是一个在 Maven 的 settings.xml 中配置 Nexus 服务器和认证信息(这会影响所有项目)的配置示例:

      <settings>...<servers><server><id>my-nexus</id><username>my-username</username><password>my-password</password></server></servers><mirrors><mirror><id>my-nexus</id><mirrorOf>*</mirrorOf><url>http://my-nexus-server/repository/maven-public/</url></mirror></mirrors>...
      </settings>
      
    • 注:

      • my-nexus-server 替换为实际部署的私服 Nexus 服务器地址,my-usernamemy-password替换为实际部署的私服 Nexus 账户信息。
      • 这样配置后,Maven 将会使用 Nexus 作为仓库来下载依赖。如果在 pom.xml 中配置了仓库,那么只有这个项目会使用 Nexus 仓库;如果在 settings.xml 中配置了,那么所有 Maven 项目都会使用 Nexus 作为默认仓库。

Nexus3 批量上传 jar 包、pom文件

Nexus 创建私服仓库

在这里插入图片描述


Nexus 私服仓库配置检查

  • 建立私服仓库的配置界面 Maven 2Layout policy 下的 Validate that all paths are maven artifact or metadata paths 配置项需指定为 Permissive,否则使用脚本批量上传依赖接口会失败(返回 400 Invalid path for a Maven 2 repository 无效路径)

本地仓库批量放入 jar

  • 本地新建仓库根目录 repo
  • 本地仓库批量放入所需的依赖(jar 包、pom文件等)多级文件夹

编写 shell 脚本

  • shell 脚本文件:mvnimport.sh

    #!/bin/bash
    # 批量上传nexus-maven依赖
    # 使用方法:将本脚本文件放于本地maven仓库根目录,然后使用git-bash执行命令:
    # sh mvnimport.sh -u 私服账号 -p 私服密码 -r 私服仓库地址while getopts ":r:u:p:" opt; docase $opt inr) REPO_URL="$OPTARG";;u) USERNAME="$OPTARG";;p) PASSWORD="$OPTARG";;esac
    donefind . -type f \
    -not -path './mavenimport\.sh*' \
    -not -path '*/\.*' \
    -not -path '*/\^archetype\-catalog\.xml*' \
    -not -path '*/\^maven\-metadata\-local*\.xml' \
    -not -path '*/\^maven\-metadata\-deployment*\.xml' \
    | sed "s|^\./||" \
    | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;
    

执行脚本

  • 将脚本文件放于本地 maven 仓库根目录,然后使用 git-bash 执行命令:

    sh mvnimport.sh -u 私服账号 -p 私服密码 -r 私服仓库地址
    

    示例:

    sh mvnimport.sh -u admin -p 123456 -r http://127.0.0.1:8081/repository/my_releases
    

检查

  • 执行后效果

在这里插入图片描述

  • Nexus管理端显示已上传

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com