Maven发布项目 (jar包) 到Nexus私服中的操作

1 需求说明

开发完项目后, 将项目版本发布到Nexus私服中.

2 实现步骤

2.1 Maven服务的setting.xml文件

(1) 如果本机安装了Maven服务, 可在${MAVEN_HOME}/conf/setting.xml中指定私服相关的配置:

  <!-- 在servers标签下配置server, 包括: 私服的用户名和密码, 在deploy项目时需要用到 -->
  <server>
    <id>releases</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
  <server>
    <id>snapshots</id>
    <username>admin</username>
    <password>admin123</password>
  </server>

  <!-- 在profiles标签下配置profile, 包括: 私服所配的仓库、各个插件的仓库地址 -->
  <profile>
   <!-- profile的id -->
   <id>dev</id>
   <repositories>
    <repository>
     <!-- 仓库id, Repositories可以配置多个仓库, 要确保id不重复 -->
     <id>nexus</id>
     <!-- 仓库地址, 即nexus仓库组的地址 -->
     <url>http://ip:port/nexus/content/groups/public/</url>
     <!-- 是否下载Releases构件 -->
     <releases>
      <enabled>true</enabled>
     </releases>
     <!-- 是否下载Snapshots构件 -->
     <snapshots>
      <enabled>true</enabled>
     </snapshots>
    </repository>
   </repositories>

   <pluginRepositories>
    <!-- 插件仓库, Maven的运行依赖插件, 也需要从私服下载插件 -->
    <pluginRepository>
     <!-- 插件仓库的id不允许重复, 如果重复, 后配置的优先 -->
     <id>public</id>
     <name>Public Repositories</name>
     <url>http://ip:port/nexus/content/groups/public/</url>
    </pluginRepository>
   </pluginRepositories>
  </profile>

  <!-- 还需指定联网仓库, 保证本私服中没有相关jar包或插件时可联网获取 -->
  <profile>
   <id>internet</id>
   <repositories>
    <repository>
     <id>nexus-aliyun</id>
     <name>Nexus aliyun</name>
     <layout>default</layout>
     <!-- 这里配置阿里云的仓库 -->
     <url>http://maven.aliyun.com/nexus/content/groups/public</url>
     <snapshots>
      <enabled>false</enabled>
     </snapshots>
     <releases>
      <enabled>true</enabled>
     </releases>
    </repository>
   </repositories>
  </profile>

(2) 如果本机没有安装Maven服务, 可在IDEA或Eclipse等开发环境默认使用的Maven配置中修改, 修改内容同上.

2.2 项目的pom.xml文件

在项目的pom.xml中的一级标签project下添加如下内容:

  <!-- 发布选项: id必须与setting.xml文件中server的id相同 -->
  <distributionManagement>
    <repository>
      <id>releases</id>
      <name>display</name>
      <url>http://ip:port/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
      <id>snapshots</id>
      <name>display</name>
      <url>http://ip:port/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

2.3 发布项目

以IDEA为例, 选中项目, 右键 -> Run Maven -> deploy,

或者在右边栏选中Maven栏目, 点击项目 -> Lifecycle -> deploy, 执行即可将项目发布到仓库中去.

注意:仓库中不能存在与当前项目名称+版本号相同的项目, 否则将导致出错: Bad Request: 400.

补充知识:maven上传jar包到nexus私服后的存放路径 以及 使用IDEA上传jar包的步骤

maven上传jar包到nexus私服的方法,网上大神详解很多,那么上传后的jar包存放到哪里了呢?

在下使用nexus3.2.1版本,在本地搭建了私服,使用maven上传jar包。最后结果如下:

点进去后展示的是:

这让我一度以为是以jar包的形式保存在本地,但事实证明,保存在本地的最终是一个 .bytes 类型的文件,它的默认路径在\nexus-3.2.1-01-win64\sonatype-work\nexus3\blobs\default\content下面

即使jar包是同样的,但是deploy了两次,那么就会展示两次

nexus设置自定义路径时,要设置Blob Stores,默认只有default一个,新建一个路径的话就可以自己指定了

简单说下在搭建好nexus私服以后,将jar包上传到私服的步骤

场景:使用IDEA,maven项目打jar包后上传

在pom.xml文件中配置

<distributionManagement>
  <repository>
    <id>nexus</id>
    <name>maven-releases</name>
    <url>http://localhost:8081/repository/maven-releases/</url>
  </repository>
  <snapshotRepository>
    <id>nexus</id>
    <name>maven-snapshots</name>
    <url>http://localhost:8081/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

<id>标签对应着 maven的配置文件setting.xml中<server>的设置,如下:

<servers>
  <server>
   <id>nexus</id>
   <username>admin</username>
   <password>admin123</password>
  </server>
</servers>

最后使用deploy操作,将打好的jar包上传到nexus私服上

以上这篇Maven发布项目 (jar包) 到Nexus私服中的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Maven打jar包的三种方式(小结)

    不包含依赖jar包 该方法打包的jar,不包含依赖的jar包,也没有指定入口类. <build> <plugins> <plugin> <!-- 指定项目编译时的java版本和编码方式 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.

  • 详解IDEA中MAVEN项目打JAR包的简单方法

    Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多. 但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令. 最简单的方法 首先是在maven项目的pom.xml中添加打包的插件,这里有很多种方式的.最最简单的就是只使用maven-compiler-plugin.maven-jar-plugin插件,并且指定程序入口<mainClass>.相关代码如下: pom.xml文件为: <?xml version="1

  • Maven生成及安装jar包到本地仓库的方法

    前言 本文将讲解如何通过Maven生成jar包并安装到本地仓库(包括将当前项目打包安装仓库到本地以及安装从外部获得的单独jar包),完成下面的操作需要安装Maven并了解一些基础的命令使用,想了解Maven的一些基础概念,可以查看我的这篇文章,此外本文就不自己从零构建一个Maven项目了,而是采用IDEA自带的模板来演示样例. 创建一个 Maven 项目 在正式讲解之前,我们先创建一个简单的Maven项目: 然后在src/main/java/目录下,创建一个util/Demo.java文件: 生

  • Maven发布项目 (jar包) 到Nexus私服中的操作

    1 需求说明 开发完项目后, 将项目版本发布到Nexus私服中. 2 实现步骤 2.1 Maven服务的setting.xml文件 (1) 如果本机安装了Maven服务, 可在${MAVEN_HOME}/conf/setting.xml中指定私服相关的配置: <!-- 在servers标签下配置server, 包括: 私服的用户名和密码, 在deploy项目时需要用到 --> <server> <id>releases</id> <username&g

  • SpringBoot项目中jar发布获取jar包所在目录路径的最佳方法

     示例代码: //第一种 File path = new File(ResourceUtils.getURL("classpath:").getPath()); if(!path.exists()) path = new File(""); System.out.println(path.getAbsolutePath()); //第二种 System.out.println(System.getProperty("user.dir")); //

  • Maven引用自定义jar包方式

    目录 Maven引用自定义jar包 概述 导入jar 在pom中引入依赖 加入maven-dependency-plugin插件 环境说明 自定义jar包发布到自己指定maven本地仓库 ①我要上传的jar包为:ipdatabase-1.0.jar ②找到本地安装maven ③在项目中引用 Maven引用自定义jar包 概述 在项目中用了一个在Maven中央仓库没有的第三方jar包,Maven中该如何依赖呢? 如果引入不好,启动项目时会报: java.lang.ClassNotFoundExce

  • Maven导入本地jar包的实现步骤

    目录 1. 在本地maven仓库安装本地jar包 2.把本地jar包放在项目的某个目录中 3.使用scope system依赖 参考资料 软件项目管理和发布工具Maven给java的开发带来了很多的方便.需要引用其他jar包的时候只需要在pom.xml添加相关的依赖,maven就会自动解析依赖.下载jar包,更新jar包也只需要修改version字段,大大简化了jar包的引用.但是有时候我们要用的某几个包在maven上不存在,只能下载jar包到本地并添加到java项目中,然而问题随之而来:mav

  • IDEA中已配置阿里镜像但maven无法下载jar包的问题及解决方法

    在网上拷贝的所有阿里云镜像比如: <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> 都不能解决我的问题,我的包里面一直出现

  • SpringBoot项目Jar包如何瘦身部署的实现

    一.背景 SpringBoot 为我们快速开发提供了很好的架子,使得我们只需要少量配置就能开始我们的开发工作,但是当我们需要打包上传部署时,却是很神伤的一个问题,因为打出来的 Jar 包少则十几兆,多则一百来兆,我们需要上传至公网服务器时,是非常慢的,这就引出了今天的主题,SpringBoot项目Jar包如何瘦身部署 1.思路分析 jar,我们可以看出,jar 包里面分为以下三个模块 分为 BOOT-INF,META-INF,org 三个部分,打开 BOOT-INF 可以看到有 classes,

  • 使用maven工具解决jar包冲突或重复加载的问题

    在使用maven开发项目的过程中,经常会遇到jar包重复加载或者jar包冲突的问题的,但是由于有些jar是由于maven的依赖加载自动加载进来的, 而不是开发者自己配置的,特别是当项目中pom中配置的jar包依赖本身很多时,开发者靠自己的经验,有时很难找出是哪个jar的加载导致加载了 多余的依赖jar,从而产生冲突. 今天刚好遇到一个借用eclipse中的maven插件解决jar包依赖冲突的问题,分享一下. 项目中出现的问题如下: Caused by: java.lang.NoClassDefF

  • 图文详解Maven工程打jar包的N种方式

    目录 一.IDEA自带打包插件 二.maven插件打包 2.1 制作瘦包(直接打包,不打包依赖包) 2.2 制作瘦包和依赖包(相互分离) 2.3 制作胖包(项目依赖包和项目打为一个包) 2.4 制作胖包(transform部分自定义) 三.SpringBoot项目打包 四.Scala项目打包 五.groovy项目打包 总结 一.IDEA自带打包插件 内容:此种方式可以自己选择制作胖包或者瘦包,但推荐此种方式制作瘦包. 输出:输出目录在out目录下 流程步骤: 第一步: 依次选择 file->pr

  • maven引入本地jar包运行报错java.lang.NoClassDefFoundError解决

    目录 正文 maven引入本地jar的示例 配置maven将本地jar打入package中 maven打包知识分享 scope详解 正文 下文笔者讲述maven引入本地jar包时,运行报错"java.lang.NoClassDefFoundError"的处理方法分享,如下所示 今天在编写maven项目    导入本地jar包    部署到服务器上找不到包  报错信息如:java.lang.NoClassDefFoundError那么如何解决呢?   这种问题是由于,本地jar包在打包的

  • 教你1秒将本地SpringBoot项目jar包部署到Linux环境(超详细!)

    目录 目标 迭代步骤 一.前提: 1.使用Maven的package命令打出一个携带依赖的jar包 2.Window启动jar包 二.linux环境启动jar包 1.先将jar包扔到linux环境 2.测试是否可以启动(需要有Java环境) 3.优化启动脚本,改为后台启动,并将日志输出到springboot.log 4.完善脚本,启动时,如果存在已经启动的服务,先关闭,再启动 三.分离依赖部署 1.上传依赖jar包Linux服务器 2.改造项目的pom.xml文件 3.重新package 4.上

随机推荐