Nexus【应用 01】上传jar包到私有Maven仓库的两种方法:手动 Upload 和 mvn deploy 命令(配置+操作流程)

简介: Nexus【应用 01】上传jar包到私有Maven仓库的两种方法:手动 Upload 和 mvn deploy 命令(配置+操作流程)

以下内容均以Sonatype Nexus Repository Manager OSS 3.27.0-03版本进行说明。

1.上传

手动Uploadmvn deploy命令两种上传方式的应用场景不同,手动上传适用于工具类的jar包,比如项目需要引入的lib文件,这种可以选择手动上传。复杂的、有较多依赖的jar包则需要连同pom文件一起上传,此时需要使用mvn deploy

1.1 手动Upload

首先要登录Nexus,选择Upload,选择要上传的目标仓库,选择 File 填写 Group ID 等,最重要的是要点选Generate a POM file with these coordinates如下图:

正常上传后会有jarpom文件,这用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️⃣

使用ideaTerminal进行上传,由于idea已经配置了maven也就已经加载了setting.xml的配置,所以命令比较简单 此种方式可以上传任意Jar

# 不传递 DgroupId、DartifactId、Dversion、Dpackaging
mvn deploy:deploy-file 
-Dfile=jarFilePath\GPSS-1.0.jar 
-DpomFile=pomFilePath\pom.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=jarFilePath\GPSS-1.0.jar 
-DpomFile=pomFilePath\pom.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 settingsFilePath\settings.xml 
-DgroupId=com.xxxx
-DartifactId=gpss-nonetty 
-Dversion=1.0 
-Dpackaging=jar 
-Dfile=jarFilePath\gpss-1.0.jar 
-DpomFile=pomFilePath\JavaGPSS-jar\pom.xml
-Durl=http://localhost:8081/repository/maven-releases/ 
-DrepositoryId=releases

2.总结

不管是手动上传还是命令上传,需要的基本信息都是一样的:

  • 仓库地址、账号;
  • 上传的jar、pom信息。
目录
相关文章
|
3月前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
2月前
|
Java 应用服务中间件 测试技术
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。 本文主要了解Maven基础知识及基础应用,旨在为之后的进一步学习奠定基础。 内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。 仅供参考。
240 80
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
|
1月前
|
Java 测试技术 Maven
maven 打包命令
maven 打包命令
25 6
|
1月前
|
Java Linux Maven
IDEA如何用maven打包(界面和命令两种方式)
【10月更文挑战第14天】本文介绍了两种Maven项目打包方法:命令行与IDEA界面。首先确保已安装Maven并配置环境变量,通过`mvn -v`检查安装。命令行打包需进入项目目录,执行`mvn package`,之后在`target`目录查看结果。IDEA打包则需配置Maven路径,打开Maven Projects窗口,双击Lifecycle下的`package`阶段,同样在`target`目录查找生成文件,并在Build窗口查看日志以排查问题。
648 1
|
16天前
|
Java 测试技术 项目管理
maven编译本地代码的命令是什么?
【10月更文挑战第26天】maven编译本地代码的命令是什么?
35 0
|
3月前
|
Java Linux Shell
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
|
3月前
|
Java
pandora boot热点应用探索问题之maven-compiler-plugin耗时较长的问题如何解决
pandora boot热点应用探索问题之maven-compiler-plugin耗时较长的问题如何解决
|
4月前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
457 2
[JarEditor]可直接修改jar包的IDEA插件
|
4月前
|
弹性计算 Java Serverless
Serverless 应用引擎操作报错合集之上传自定义JAR包,启动时报错,是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
4月前
|
关系型数据库 Java 分布式数据库
PolarDB产品使用问题之部署到服务器上的Java应用(以jar包形式运行)无法连接,如何解决
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。

推荐镜像

更多