概述
以下内容均以Sonatype Nexus Repository Manager OSS 3.27.0-03
版本进行说明。
1.上传
手动Upload
和mvn deploy
命令两种上传方式的应用场景不同,手动上传适用于工具类的jar
包,比如项目需要引入的lib
文件,这种可以选择手动上传。复杂的、有较多依赖的jar
包则需要连同pom
文件一起上传,此时需要使用mvn deploy
。
1.1 手动Upload
首先要登录Nexus,选择Upload,选择要上传的目标仓库,选择 File 填写 Group ID 等,最重要的是要点选Generate a POM file with these coordinates
如下图:
正常上传后会有jar
和pom
文件,这用1.0版本的截图:
如果不勾选,上传成功后没有pom
相关文件:
没有pom
文件编译时会报错:
Could not find artifact com.xxxx:gpss-nonetty:pom:3.0 in nexus (http://localhost:8081/repository/maven-public/)
勾选后生成的pom
文件内容如下:
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xinan</groupId>
<artifactId>gpss-nonetty</artifactId>
<version>3.0</version>
<packaging>jar</packaging>
</project>
如果上传错误,删除的方法如下:
1.2 mvn deploy 上传
命令上传时,由于未登录Nexus,也无法使用Nexus的Generate a POM file with these coordinates
,所以命令上传要自己准备pom
文件,配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 基础信息跟 Generate a POM file with these coordinates 生成的基本一致 -->
<groupId>com.xinan</groupId>
<artifactId>gpss-nonetty</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<distributionManagement>
<!-- 这里可以配置多个比如snapshots快照仓库 这里只配置一个 -->
<repository>
<id>releases</id>
<name>maven的发布仓库id与setting.xml中在server节点id保持一致</name>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
</distributionManagement>
</project>
setting.xml 中的配置:
<servers>
<!-- releases仓库的用户认证信息 -->
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<!-- snapshots 快照认证信息 -->
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
方法1️⃣
使用idea
上传当前项目,pom
配置:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xinan</groupId>
<artifactId>gpss-nonetty</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<properties>
<!-- 项目需要的配置 -->
</properties>
<dependencyManagement>
<!-- 项目需要的依赖 -->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>6</source>
<target>6</target>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>
<distributionManagement>
<!-- 这里可以配置多个比如snapshots快照仓库 这里只配置一个 -->
<repository>
<id>releases</id>
<name>maven的发布仓库id与setting.xml中在server节点id保持一致</name>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
</distributionManagement>
</project>
执行 depoly
方法2️⃣
使用idea
的Terminal
进行上传,由于idea已经配置了maven也就已经加载了setting.xml
的配置,所以命令比较简单 此种方式可以上传任意Jar
:
# 不传递 DgroupId、DartifactId、Dversion、Dpackaging
mvn deploy:deploy-file
-Dfile=jarFilePathGPSS-1.0.jar
-DpomFile=pomFilePathpom.xml
-Durl=http://localhost:8081/repository/maven-releases/
-DrepositoryId=releases
# 传递 DgroupId、DartifactId、Dversion、Dpackaging
mvn deploy:deploy-file
-DgroupId=com.xxxx
-DartifactId=gpss-nonetty
-Dversion=1.0
-Dpackaging=jar
-Dfile=jarFilePathGPSS-1.0.jar
-DpomFile=pomFilePathpom.xml
-Durl=http://localhost:8081/repository/maven-releases/
-DrepositoryId=releases
- DgroupId、DartifactId、Dversion、Dpackaging:jar的基本信息,传递的话会覆盖pom内的配置;
- Dfile:jar包的绝对路径;
- DpomFile:jar包对应的Pom文件的绝对路径;
- Durl:Nexus的地址;
- DrepositoryId:对应的是setting.xml文件中配置的serverId,用来关联私服的用户名和密码。
方法3️⃣
使用cmd
执行,此时要传递settings.xml
文件,这样才能够获取用户名和密码信息:
mvn deploy:deploy-file
--settings settingsFilePathsettings.xml
-DgroupId=com.xxxx
-DartifactId=gpss-nonetty
-Dversion=1.0
-Dpackaging=jar
-Dfile=jarFilePathgpss-1.0.jar
-DpomFile=pomFilePathJavaGPSS-jarpom.xml
-Durl=http://localhost:8081/repository/maven-releases/
-DrepositoryId=releases
2.总结
不管是手动上传还是命令上传,需要的基本信息都是一样的:
- 仓库地址、账号;
- 上传的jar、pom信息。
最后
以上就是玩命小笼包为你收集整理的Nexus【应用 01】上传jar包到私有Maven仓库的两种方法:手动 Upload 和 mvn deploy 命令(配置+操作流程)的全部内容,希望文章能够帮你解决Nexus【应用 01】上传jar包到私有Maven仓库的两种方法:手动 Upload 和 mvn deploy 命令(配置+操作流程)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复