背景

近期换了一个项目组,用的是公司自研产品,涉及到很多内部JAR包引用,版本号很多,每次更新都是产品部给出jar包,项目组成员各自复制一套本地替换,来了新人各种安装配置,复杂度太高,这不,我一来,又是这里给我几个包又是那里替换几个引用,环境整的头大。Nexus 私服就是解决这问题的关键。
其实几年前,就给这边搭过一次nexus2.0,我走了后似乎就没用过了,废话不多说。再来一遍呗。

版本

JDK: 1.8.0_151 (请自行解决安装)

Nexus: 3.0.0-03

Maven: apache-maven-3.3.3

Windows: 10

执行步骤

a、安装Nexus,这是部署在服务器上的,相当于是Server端,要是放在自己电脑上就没什么意义了。

1、下载Nexus对应版本,解压到指定目录。

2、查看Nexus对应的端口,打开配置文件 ./etc/org.sonatype.nexus.cfg,我们这里的端口是 8888。不同的版本对应的配置文件可能不同,都在etc下面,找到配置有application-port这个属性就OK了。

3、修改数据存储路径,可以直接使用默认的,支持相对和绝对路径。

4、启动Nexus,这里使用管理员身份的cmd运行命令可以把Nexus安装成服务,跟随系统启动。
nexus.exe /install <optional-service-name> #安装
nexus.exe /start <optional-service-name> #开始
nexus.exe /stop <optional-service-name> #结束
nexus.exe /uninstall <optional-service-name> #卸载
#其中<optional-service-name>为服务的名称,可自定义
也可以直接打开 Nexus.exe运行应用。

5、使用默认密码登陆Nexus控制台,默认用户密码: admin/admin123。登陆地址:http://127.0.0.1:8888

6、打开配置页面,创建本地库。此处由于时间关系就不涉及用户权限管理相关内容,如果公司内部项目组过多,且要求保密性,则需要分用户创建本地库。

点击 Create repository,创建本地版本库,上图中红框中的版本库是我们的本地库,其余为默认创建。创建步骤如下:

这里简单介绍下几种repository的类型:

  • hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
  • proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
  • group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

保存完毕,仓库就创建完成了。仓库地址:http://9.1.77.86:8888/repository/maven-jfbuilder/

7、打开仓库组 maven-public,将刚建立的本地库maven-jfbuilder 添加到仓库组中

添加本地仓库进入仓库组:

保存完成,这样就完成了整体的Nexus配置。

b、安装 Maven

1、下载Maven对应版本,解压到指定目录,例如:E:\Tools\maven\apache-maven-3.3.3 。

2、为了更好的随时随地使用 MVN 命令,配置一下环境变量,将Maven配置安装到操作系统环境变量中去。

添加自己的maven存放路径:

点击确定完成环境配置。

3、检查一下是否配置成功。打开CMD控制台,输入: mvn help:system,界面显示 BUILD SUCCESS.
再查看一下 ~/.m2/repository(这是在你的本地用户目录下面) 是否存在一些最近时间的文件夹,存在则恭喜你成功了。

c、配置Maven连接私服

1、修改Maven的配置文件 setting.xml。

  • 本地库地址可以修改也可以使用默认,我这里采用的是默认配置 Default ,如需修改,则放开下图中红框的语句,修改路径即可。

  • 配置安装好的Nexus私服的用户名密码。

d、上传公司内部Jar包到Nexus私服。

执行命令将所有私有JAR包上传:

mvn deploy:deploy-file "-DgroupId=com.adtec.starring" "-DartifactId=comm" "-Dversion=6.0.0.3.RELEASE" "-Dpackaging=jar" "-Dfile=E:\JavaFrameLib\JavaFrame-comm-6.0.0.3.RELEASE.jar" "-Durl=http://9.1.77.86:8888/repository/maven-jfbuilder/" "-DrepositoryId=nexus"

这里简单介绍一下各个参数的含义:

  • DgroupId、DartifactId、Dversion: 构成该jar包在pom.xml中引用的标签。上传时可以随意修改,你开心就好啦。
  • Dpackaging:打包类型。
  • Dfile:需要上传的jar包的绝对路径。
  • Durl:私服上自己建立仓库的地址,打开nexus->repositories菜单,可以看到该路径。
  • DrepositoryId:服务器的表示id,就是我们之前在Maven的配置文件setting.xml中配置的server id。

如果不是win10的话,上述命令的双引号是无需添加的。这个问题有点坑,也许有些win10可能也不存在这个问题。我拿出两年前的命令如下:

mvn deploy:deploy-file -DgroupId=com.adtec.starring -DartifactId=comm -Dversion=6.0.0.3.RELEASE -Dpackaging=jar -Dfile=E:\JavaFrameLib\JavaFrame-comm-6.0.0.3.RELEASE.jar -Durl=http://9.1.77.86:8888/repository/maven-jfbuilder/ -DrepositoryId=nexus

执行完成:

项目使用

a、修改Pom.xml文件,添加本地私服地址。

b、更新项目Maven引用就完成了。

Nexus3.0搭建私服上传JAR包 Windows10的更多相关文章

  1. maven私服上传jar包

    将一下脚本保存在.bat文件执行,红色部分按实际情况修改: @echo off set groupId=com.xxxset artifactId=xxxset version=0.0.1set ja ...

  2. Maven第四篇【私有仓库、上传jar包、引用私服jar包、上传本地项目到私服】

    搭建私有服务器 前面已经说过了,我们使用Maven的使用,如果需要导入相对应的jar包,Maven首先会在我们的本地仓库中寻找->私有仓库->中心仓库- 然而,我们的本地仓库常常没有想要的 ...

  3. maven上传jar包到nexus私服后的存放路径 以及 使用IDEA上传jar包的步骤

    maven上传jar包到nexus私服的方法,网上大神详解很多,那么上传后的jar包存放到哪里了呢? 在下使用nexus3.2.1版本,在本地搭建了私服,使用maven上传jar包.最后结果如下: 点 ...

  4. Maven上传jar包到私服

    1.认证,在M2_HOME/conf/settings.xml配置用户名密码 <server> <id>releases</id> <username> ...

  5. (转)上传jar包到nexus私服

    场景:在使用私服Nexus时候经常需要上传jar包,但是对上传jar包的方式不是很熟悉,所以很有必要学习下. 1 通过网页上传 GAV Definition:选择GAV Parameters 输入JA ...

  6. 【转】上传jar包到nexus私服

    原文:https://my.oschina.net/lujianing/blog/297128 1通过网页上传 这种方法只是上传了jar包.通过maven引用当前jar,不能取得jar的依赖 from ...

  7. 实测Maven上传jar包到私服的方法归纳

    Hello,各位小伙伴大家好,我是小栈君.好久不见,最近因为工作的缘故,导致了更新变慢,但是小栈君也在积极的做素材的规划,毕竟学习知识点的归纳和提炼需要一定的时间. 所以还请大家多多见谅,下一期的分享 ...

  8. gradle上传jar包到maven公共仓库

    首先这里说的中央仓库 是指的 https://issues.sonatype.org/ 而不是maven私服. 其次是使用gradle上传jar包,maven上传,网上有很多教程,这里不做赘述. 首选 ...

  9. maven安装 maven上传jar包到库里面

    maven的安装与配置:http://pansanday.blog.163.com/blog/static/381662802012727103454743/ maven上传jar包到库里面: 将私有 ...

随机推荐

  1. 添加 XML内Rows数据

    public static void addItemToXml(string method,string firstKey,string id,string checkName,string refV ...

  2. LoadRunner关联需要转义的常见字符

    转义字符总结 在做手动关联时,取边界值的时候,会经常用到转义字符,现将转义字符整理如下: \b 退格             \f 换页             \n 换行             \ ...

  3. 微信通过openID发送消息/后台post、get提交并接收数据 C# .NET 配置404,500等错误信息 连接字符串

    微信通过openID发送消息/后台post.get提交并接收数据   控制器:下面是post发送消息(微信不支持从前台发送数据,之前试过,报错,需要跨域,跨域的问题解决后还不行,最后发现之后后端提交 ...

  4. Mac Chrome-点击书签页在新的标签打开之方法

    PS:一直使用的是Firefox,但是现在Firefox有些不能满足我现在的需求,所以下载了chrome.可是当使用chrome时发现有一个很实用的功能它不能设置,这个让我很抓狂. 当点击标签时不能新 ...

  5. HR-部门内部调动报表

    *&---------------------------------------------------------------------* *& Report  ZHRPA038 ...

  6. YTU 2586: 填空题B-字画鉴别

    2586: 填空题B-字画鉴别 时间限制: 1 Sec  内存限制: 128 MB 提交: 509  解决: 131 题目描述 注:本题只需要提交填写部分的代码,请按照C语言方式提交. 古玩店老板小勇 ...

  7. 风云流水 jQuery技巧总结 (转)

    jQuery技巧总结 (转) 一.简介 1.1.概述 随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype.YUI.jQuery.m ...

  8. HDU - 2586 How far away ?(离线Tarjan算法)

    1.给定一棵树,每条边都有一定的权值,q次询问,每次询问某两点间的距离. 2.这样就可以用LCA来解,首先找到u, v 两点的lca,然后计算一下距离值就可以了. 这里的计算方法是,记下根结点到任意一 ...

  9. 整型变量修饰符,char类型数据存储原理,字节数,

    //------------------整型变量修饰符 修饰符(int short long longlong signed unsigned)所有修饰符都是用来修整形 int 4short %hd ...

  10. 使用Visual Studio 利用WinGDB编译和远程调试嵌入式Linux的程序

    写这篇文章的目的在于帮助那些既要使用Visual Studio编写程序又要开发和调试嵌入式Linux 程序的苦命程序员们! 第一步, 安装 WinGDB ,下载位置  http://www.wingd ...