在互联网项目开发浪潮中,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. GStreamer跨平台多媒体框架

    GStreamer跨平台多媒体框架 Gstreamer基本概念 GStreamer是用于构造媒体处理组件图的库.它支持的应用程序范围从简单的Ogg / Vorbis回放,音频/视频流到复杂的音频(混合 ...

  2. Keras神经网络集成技术

    Keras神经网络集成技术 create_keras_neuropod 将Keras模型打包为神经网络集成包.目前,上文已经支持TensorFlow后端. create_keras_neuropod( ...

  3. 新的微芯片MCU增加了来自外部闪存的安全引导保护

    新的微芯片MCU增加了来自外部闪存的安全引导保护 New Microchip MCU Adds Secure Boot Protection from External Flash 对于从外部SPI闪 ...

  4. 为已有数据的DataTable添加一个自增列

    /// <summary> /// 为dt表增加一个自增的ID字段 /// </summary> /// <param name="dt">用户 ...

  5. 在spring配置文件中引入外部properties配置文件 context:property-placeholder

    在spring的配置文件中,有时我们需要注入很多属性值,这些属性全都写在spring的配置文件中的话,后期管理起来会非常麻烦.所以我们可以把某一类的属性抽取到一个外部配置文件中,使用时通用spring ...

  6. 使用有道云笔记还是github写笔记的优缺点对比

    有道云笔记的优点 在手机上编辑笔记,有道云的体验更好,建议:新建普通类型笔记而不是markdown笔记,因为md在手机上的编辑体验并不好 插入图片方便无需考虑图床 可以把笔记分享到社交平台(QQ,微信 ...

  7. QT基本数据类型

    因为Qt是一个C++框架, 因此C++中所有的语法和数据类型在Qt中都是被支持的, 但是Qt中也定义了一些属于自己的数据类型, 下边给大家介绍一下这些基础的数类型. QT基本数据类型定义在#inclu ...

  8. Spring Bean 的生命周期总结

    除了使用阶段外,Spring 将 bean 的生命周期定义为实例化.属性填充.初始化和销毁四个阶段,并为每个阶段提供了多个拓展点用于自定义 bean 的创建过程.这篇文章介绍了 bean 的生命周期和 ...

  9. 【NX二次开发】Block UI NXOpen::BlockStyler::BlockDialog

    定义: NXOpen::BlockStyler::BlockDialog* theDialog; theDialog->PerformApply();//执行应用并重新启动对话框. theDia ...

  10. Pytest学习笔记2-setup和teardown

    前言 我们在做自动化的时候,常常有这样的需求: 执行每一条用例时,都重新启动一次浏览器 每一条用例执行结束时,都清除测试数据 在unittest中,我们可以使用 setUp() 和 tearDown( ...