maven命令上传jar包到nexus

简介: maven命令上传jar包到nexus

系列文章目录

一、Linux 安装Nexus3.42.0-01图文教程

二、nexus创建Maven私服图文教程

三、使用nexus上传jar包图文教程

四、IDEA Maven项目上传jar包到nexus仓库图文教程

五、IDEA 中使用maven从nexus中下载jar包 图文教程

maven命令上传jar包到nexus

前言

对于集成了maven的项目如idea中的maven项目可以通过deploy:deploy命令将项目部署到远程存储库中。那么对于没有集成maven的项目来说,如何将项目部署到远程存储库呢?本文主要介绍的是通过直接使用maven命令上传资源到远程存储库(nexus)中。

参考官网地址:

Apache Maven 部署插件 – 用法

Maven – 可用的插件 (apache.org)

一、maven是什么?

Maven一款专门为 Java 项目提供构建和依赖管理支持的工具


Maven作为依赖管理工具,能够管理规模庞大的jar包,能够将依赖的jar进行下载。


Maven作为构建管理工具,当我们使用IDEA进行开发是,构建的工作是IDEA替我们做的,离开IDEA环境之后,需要专门的工具。Maven能够帮助我们进行构建为jar包


二、使用

1. 首先在在maven的settings.xml文件中添加

settings.xml文件(示例):

!--nexus服务器-->
  <servers>
<!--id为对应资源库id-->  
    <server>  
        <id>tfjy-snapshot-hosted</id>  
        <username>admin</username>  
        <password>nexusb-test</password>  
    </server>
    <server>  
        <id>tfjy-hosted</id>  
        <username>admin</username>  
        <password>nexusb-test</password>  
    </server>      
  </servers>  

2.对应的maven命令

maven命令语法:


mvn deploy:deploy-file

-DgroupId=xxx.xxx.xxx (对应pom文件标签)

-DartifactId=xxx-xxx (对应pom文件标签)

-Dversion=xxx (对应pom文件标签)

-Dpackaging=xxx (上传的类型)

-Dfile=xxx:\xxx\xxx. (文件路径)

-DpomFile=xxxx表示需要上传的jar包对应的Pom文件的绝对路径。

-Durl=http://xxx.xxx.x.x:xxxx/xxx(上传的服务器)

-DrepositoryId=xxxxx(服务器的表示id,setting.xml文件中配置的serverId,用来关联私服的用户名和密码)


注意事项:如果当前上传的Jar还依赖了其他的Jar,需要同时上传当前Jar的pom文件。


2.1上传资源为pom或jar包到远程资源库

代码示例:打开Windows 命令提示符(Windows+R 输入cmd并回车);输入mvn命令,此处上传的是仅有pom文件的资源。

mvn deploy:deploy-file -DgroupId=com.tfjybj -DartifactId=metaversePro-backend -Dversion=1.0-SNAPSHOT -Dpackaging=pom -Dfile=F:\maven\metaversePro-backend\1.0-SNAPSHOT\metaversePro-backend-1.0-SNAPSHOT.pom  -Durl=http://xxxxx/repository/tfjy-snapshot-hosted/ -DrepositoryId=tfjy-snapshot-hosted

结果截图:


c9f624f1dcec4a8f9b6a45d4042dabd9.png

在远程资源库中进行查看,可以看到上传的资源已经上传上来了。

9d1d5df86d7a4d3b8a21a2e9f991b737.png


2.2上传jar包并且此jar还依赖了其他的Jar,同时上传当前Jar的pom文件

代码示例:不同的是需要添加-DpomFile=

mvn deploy:deploy-file "-DgroupId=com.tfjybj" "-DartifactId=metaversePro-backend" "-Dversion=1.0-SNAPSHOT" "-Dpackaging=jar" "-Dfile=E:\Dynamic Time Programma\metaversePro-backend\metaversePro-gateway\target\metaversePro-gateway-1.0-SNAPSHOT.jar" "-DpomFile=E:\Dynamic Time Programma\metaversePro-backend\metaversePro-gateway\pom.xml"  "-Durl=http://xxxx/repository/tfjy-snapshot-hosted/" "-DrepositoryId=tfjy-snapshot-hosted"

结果截图:

5f21b86a75fb4cd2bad1cd46606d05ec.png


在远程资源库中进行查看,可以看到上传的资源已经上传上来了。


54c5b250ad6e42ecbb451d0b9029ec52.png

问题记录

1.Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) on project Failed to deploy artifacts: Could not transfer artifact with status code 401

1156b73146fe42759b641f4e5b681e36.png

解决方法:一般为身份验证凭证没有通过,校验settings.xml配置中nexus的账号密码是否正确,和使用的settings.xml文件是否正确,是否使用了其他的settings.xml文件。


2.Cannot deploy artifact from the local repository

b8e7252e4e3240edbfbd4a7445c7b07d.png

解决方法:maven的 deploy:deploy-file 命令,这种方法时要注意的是如果你要安装的jar和pom是位于本地repository的目录下,这个命令就会出错 (Cannot deploy artifact from the local repository…), 解决方法:将要安装的jar和pom copy到其它目录再安装,只要不在本地仓库目录都应该可以.


3.Maven报错-The goal you specified requires a project to execute but there is no POM in this directory…

f2b1733111944d1d91cf3583c1471bb3.png

解决方法:给命令打上双引号(“”)


示例:

mvn deploy:deploy-file "-DgroupId=com.tfjybj" "-DartifactId=metaversePro-backend" "-Dversion=1.0-SNAPSHOT" "-Dpackaging=jar" "-Dfile=E:\Dynamic Time Programma\metaversePro-backend\metaversePro-gateway\target\metaversePro-gateway-1.0-SNAPSHOT.jar" "-DpomFile=E:\Dynamic Time Programma\metaversePro-backend\metaversePro-gateway\pom.xml"  "-Durl=http://xxxx/repository/tfjy-snapshot-hosted/" "-DrepositoryId=tfjy-snapshot-hosted"

参考链接
71111f9cea0c4a0faef12274980f05c8.png


总结

通过maven官网了解到通过maven插件部署到远程存储库主要有两种方式,一种是项目集成了maven可以通过maven的deploy:deploy实现;另一种是项目没有集成maven我们可以在命令提示符中使用deploy:deploy-file命令实现。

目录
相关文章
|
4月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
4月前
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
4月前
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
73 3
|
2月前
|
Java 测试技术 Maven
maven 打包命令
maven 打包命令
36 6
|
2月前
|
Java Linux Maven
IDEA如何用maven打包(界面和命令两种方式)
【10月更文挑战第14天】本文介绍了两种Maven项目打包方法:命令行与IDEA界面。首先确保已安装Maven并配置环境变量,通过`mvn -v`检查安装。命令行打包需进入项目目录,执行`mvn package`,之后在`target`目录查看结果。IDEA打包则需配置Maven路径,打开Maven Projects窗口,双击Lifecycle下的`package`阶段,同样在`target`目录查找生成文件,并在Build窗口查看日志以排查问题。
1062 1
|
1月前
|
Java 测试技术 项目管理
maven编译本地代码的命令是什么?
【10月更文挑战第26天】maven编译本地代码的命令是什么?
63 0
|
4月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
4月前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
4月前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus