在互联网项目开发浪潮中,maven成为了项目管理依赖的重要工具,更多时候maven只作为拉取外部依赖的手段。但出于安全的考虑的,部门企业难免封装一些私有的工具类,或开源框架的二次开发封装,maven私服应运而生了。私服是优先从私有本地仓库拉取对应的资源,如果没有依然会从maven大环境中寻找。下面是maven如何搭建私服、从私服下载资源、上传本地代码到私服的过程。

一 搭建私服环境(本文使用版本 nexus-3.32.0-03-win64)

使用Nexus来搭建本地的Maven服务器,可从官网下载http://www.sonatype.org/nexus/downloads/

也可以从本人上传的资源下载:https://download.csdn.net/download/higherzjm/20356076 ,说到CSDN资源共享有点无语,有些太昂贵了,需要10分20分积分,甚至还有70分 的

下载完zip后进行解压,用cmd进入bin目录,使用nexus.exe /run命令进行启动,第一次启动需要进行大量的初始化信息,会比较慢。

启动完之后用默认8081端口打开 http://127.0.0.1:8081/,默认端口可修改,默认登入用户名admin,该版本的默认密码并不是admin123,第一次打开页面会引导你找初始化密码,并引导你修改密码。

登入完之后新建你要的私服仓库信息

类型选择maven2(hosted)

编写参考信息,图中三处画红色的跟项目的发布关系很大,

name:仓库名称,也是吃,仓库id,跟项目中的仓库地址和maven settings.xml的参考信息一致

version pollcy:版本类型,有Release,Snapshot,Mixed,项目中pom.xml  version要跟选择的一致

hosted:托管选择是否可发布

新建仓库信息配置完之后,就可以在本地maven的settings.xml中进行引入,id就是上一步建仓库name,要一致,username和password就是私服管理平台登入账号和密码。

   <server>
<id>zjmrepository</id> <!--必须要与所建仓库唯一标识name匹配-->
<username>admin</username>
<password>admin123</password>
</server>

二 如何向私服中发布自己的项目资源

1 项目中的pom.xml定义的版本类型要跟所建仓库的类型一致(版本号-类型),不然会发布失败,版本号可以随便写

2 pom.xml加入仓库管理配置,仓库id跟URL需要跟新建仓库的信息匹配,name可以随便填

  <!--仓库管理,要向仓库中分布新东西在这里配置-->
<distributionManagement>
<repository>
<id>zjmrepository</id><!--仓库id,必须要跟私服上建的仓库id一致-->
<name>zjmrepository Repository2</name> <!--可随便写-->
<url>http://127.0.0.1:8081/repository/zjmrepository/</url> <!--url后面是仓库id,要匹配-->
</repository>
</distributionManagement>

3 配完之后即可在项目maven下进行deploy发布

4 发布完之后,可在私服管理平台browse下查看发布的结果,并查看如何被其他项目引用

三 如何从私服中下载资源

maven依赖私服资源方式跟外部资源一致,主要是要配置私服的环境地址

<repositories>
<!--配置优先使用私服仓库加载依赖,如果私服仓库没有对应的依赖会去外网拉-->
<repository>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>zjmrepository</id>
<name>zjmrepository maven</name>
<url>http://127.0.0.1:8081/repository/zjmrepository/</url>
</repository>
</repositories>

window下玩转maven私服全流程,融合创建仓库、上传项目资源、下载私服资源的更多相关文章

  1. CentOS安装Nexus(Maven私有库)详细配置及上传本地jar到私服

    Nexus原理 Maven的原理就是将jar从远程中央仓库下载到PC磁盘的本地仓库,当本地仓库没有发现需要的jar就会去Maven默认的远程中央仓库Maven Central(由Apache维护)中寻 ...

  2. 使用Docker Maven 插件进行镜像的创建以及上传至私服

    1.在进行服务容器化部署的时候,需要将服务以及其运行的环境整个打包做成一个镜像,打包的过程有两种办法,第一种是首选通过maven打成jar包,然后再编写dockerfile,执行docker buil ...

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

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

  4. Maven上传jar包到私服

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

  5. Windows下上传项目到github

    首先,一定要有耐心.看到一大堆的命令行(其实并没有一大堆)不要觉得枯燥,最后当你成功把你的项目上传上去之后那种胜利的成果,还是挺有意思的.本人第一次写博客,勿喷. 我写的是主要的流程,详细内容还请移步 ...

  6. 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  7. GitHub教程--上传项目四步法 GitBash命令行下使用方法

    之前就用过GitHub,感觉用GitHub托管自己的代码非常不错.可是之前用的都是窗口化的TortoiseGit,省了很多命令行的操作,但是个人非常喜欢使用命令行,于是,今天就试着用了用GitBash ...

  8. Maven配置jar(war)包自动打包上传Maven服务器的配置

    Maven配置jar(war)包自动打包上传Maven服务器的配置 创建jar(war)包工程 创建一个maven工程 在工程中穿件一个测试类 配置pom.xml <distributionMa ...

  9. App上架流程[利用Archive进行上传]

    作者 M_Lee2016.01.22 10:47 写了14852字,被32人关注,获得了49个喜欢 [iOS]App上架流程[利用Archive进行上传] 字数2186 阅读507 评论3 喜欢9 今 ...

随机推荐

  1. 『居善地』接口测试 — 7、Requests库使用proxies代理发送请求

    目录 1.代理的了解 2.代理的分类 (1)正向代理 (2)反向代理 (3)总结 3.Requests库使用代理 4.总结 1.代理的了解 在上图中我们可以把Web server看成是Google服务 ...

  2. oracle实现通过logminer实现日志抓取分析

    场景:现场库到前置库. 思考:使用触发器? 1.侵入性解决方案 2.需要时各种配置,不需要时又是各种配置 Change Data Capture:捕捉变化的数据,通过日志监测并捕获数据库的变动(包括数 ...

  3. GO学习-(33) Go实现日志收集系统2

    Go实现日志收集系统2   一篇文章主要是关于整体架构以及用到的软件的一些介绍,这一篇文章是对各个软件的使用介绍,当然这里主要是关于架构中我们agent的实现用到的内容 关于zookeeper+kaf ...

  4. python3操作Kafka

    # -- coding: UTF-8 import datetime import json import time from kafka import KafkaProducer producer= ...

  5. npm ERR! Error: tunneling socket could not be established的解决问题

    一般是代理问题 可以通过在命令行运行下列命令解决: npm run server npm run webdriver-update

  6. Proteus中包含的主流单片机列举

    经常使用Proteus的朋友面临的一个问题就是,这个设计用Proteus能仿真吗?在初级阶段,我们仅仅会参考Proteus是否有对应的器件以及器件是否有仿真模型来决断这个问题.有就能仿真,没有就不能仿 ...

  7. MindSpore Lite整体架构介绍

    MindSpore Lite整体架构介绍 MindSpore Lite框架的总体架构如下所示: 前端(Frontend): 负责模型生成,用户可以通过模型构建接口构建模型,将第三方模型和MindSpo ...

  8. mybatis中sql语句必须用${}而不能不用#{}的情况

    在mybatis中如果我们使用#{}的方式编写的sql时,#{} 对应的变量自动加上单引号 ' ' 例如: select * from #{param} 当我们给参数传入值为user时,他的sql是这 ...

  9. NX二次开发-获取WCS标识

    函数:UF_CSYS_ask_wcs() 函数说明:获取工作坐标系对象的标识. 用法: 1 #include <uf.h> 2 #include <uf_csys.h> 3 e ...

  10. Java @FunctionalInterface注解-6

    在学习 Lambda 表达式时,我们提到如果接口中只有一个抽象方法(可以包含多个默认方法或多个 static 方法),那么该接口就是函数式接口.@FunctionalInterface 就是用来指定某 ...