Nexus3 批量上传 jar 包、pom文件

Nexus3 Maven 私服搭建及各种使用

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

Maven 配置 Nexus 私服

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

  • 示例:

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

      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 文件中,还需要配置服务器和认证信息

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

      xml 复制代码
      <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 2 -- Layout 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

    sh 复制代码
    #!/bin/bash
    # 批量上传nexus-maven依赖
    # 使用方法:将本脚本文件放于本地maven仓库根目录,然后使用git-bash执行命令:
    # sh mvnimport.sh -u 私服账号 -p 私服密码 -r 私服仓库地址
    
    while getopts ":r:u:p:" opt; do
    	case $opt in
    		r) REPO_URL="$OPTARG"
    		;;
    		u) USERNAME="$OPTARG"
    		;;
    		p) PASSWORD="$OPTARG"
    		;;
    	esac
    done
     
    find . -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 复制代码
    sh mvnimport.sh -u 私服账号 -p 私服密码 -r 私服仓库地址

    示例:

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

检查

  • 执行后效果
  • Nexus管理端显示已上传
相关推荐
青云交4 分钟前
飞算 JavaAI 深度实战:从老项目重构到全栈开发的降本增效密码
java·代码生成·全栈开发·效率提升·智能编程·老项目重构·飞算 javaai
TinpeaV7 分钟前
(JAVA)自建应用调用企业微信API接口,实现消息推送
java·redis·企业微信·springboot·springflux
摘星编程9 分钟前
飞算JavaAI 2.0.0测评:自然语言编程如何颠覆传统开发?
java·ai编程·ai代码生成·飞算javaai炫技赛·javaai开发
码农阿豪12 分钟前
飞算JavaAI:专为Java开发者打造的智能编程革命
java·开发语言·microsoft
山中月侣19 分钟前
java集合 之 多列集合
java·开发语言·经验分享·学习方法
是小崔啊25 分钟前
【Maven】03 - 私服搭建
java·maven
小乌龟不会飞27 分钟前
【SpringBoot】统一功能处理
java·spring boot·后端
lyx331369675928 分钟前
IDEA、Pycharm、DataGrip等激活破解冲突问题解决方案之一
java·pycharm·intellij-idea
华科云商xiao徐1 小时前
分布式爬虫双核引擎:Java大脑+Python触手的完美协同
java·爬虫·python
程序员鱼皮1 小时前
爆肝2月,我的 AI 代码生成平台上线了!
java·前端·编程·软件开发·项目