maven私服搭建

2023-10-27

前言

本文在mac环境下搭建maven私服,将基础代码打包部署,供团队成员临时下载使用(长期的话可以向公司申请一台服务器安装部署),增加代码的复用性和团队成员的代码规范。
maven私服搭建所需的开源软件有Apache Archiva,Artifactory,Nexus等。Nexus日趋成为最流行的maven仓库管理器,这里选择Nexus(3.37.3-02)。

一、Nexus

  • Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。
  • 利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。
  • Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。
  • Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。
  • Nexus支持WebDAV与LDAP安全身份认证。

二、安装nexus

2.1在Mac终端输入(如果提示没有brew命令,请先安装brew)

brew install nexus

2.2启动nexus

brew services start nexus

2.3访问web管理系统

  • 访问127.0.0.1:8081
    nexus

  • 登录
    默认管理员帐号为admin
    nexus
    查看密码

cat /usr/local/var/nexus/admin.password

三、nexus的配置

3.1登录后开始设置操作

nexus

3.1.1设置新密码

nexus

3.1.2配置匿名访问

nexus

3.2设置 proxy 代理仓库

  • 默认仓库有哪些呢?

    • maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
    • maven-releases:私库发行版
    • maven-snapshots:私库快照(调试版本)
    • maven-public:仓库分组(把上面三个仓库组合在一起对外提供服务)
    • 自己也可以选择仓库类型进行创建
  • nexus仓库类型主要分为三种

    • proxy 远程代理仓库jar放置的目录
    • hosted 本地仓库jar放置的目录,我们一般部署自己的jar到这个类型的仓库
    • group远程代理仓库jar和本机仓库jar
  • 添加阿里云公共仓库
    nexus

  • 将阿里云公共仓库添加到maven-public这个group类型的仓库,并调整优先级nexus

  • 私有仓库(hosted)不用创建 , 使用原有的 maven-releases 和 maven-snapshots即可

3.3获取私服地址

http://0.0.0.0:8081/repository/maven-public/

nexus

四、maven使用私服jar

使用前注意:请自行下载maven客户端。

maven配置私服有两种方式

  • 全局模式,通过配置maven的配置文件 setting.xml
  • 项目独享模式,通过配置项目中的pom.xml

需要项目中使用jar 的配置过程: 先要引入jar包,然后需要在 setting.xml或者pom.xml文件中添加资源地址.

4.1全局模式

maven的配置文件 setting.xml

   <repositories>
       <repository>
           <id>local-center</id>
           <url>http://127.0.0.1:8081/repository/maven-public/</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>true</enabled>
           </snapshots>
       </repository>
   </repositories>

4.2项目独享模式

项目中的pom.xml

  <profiles>
  
		<profile>
            <id>local-center</id>
            <repositories>
                <repository>
                	<id>nexus-releases</id>
                    <name>nexus-releases</name>
                   <url>http://127.0.0.1:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>nexus-releases</id>
                    <name>nexus-releases</name>
                   <url>http://127.0.0.1:8081/repository/maven-public/</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>
  </profiles>
  <activeProfiles>
	 <activeProfile>local-center</activeProfile>
  </activeProfiles>

或者换一种写法

    <repositories>
        <repository>
            <id>nexus</id>
            <url>http://127.0.0.1:8081/repository/maven-public/</url>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>

五、打包本地jar上传私服

本地jar上传到私服,有两种方式,一种是maven客户端配置,deploy上传;一种是在管理后台手动上传。下面分别介绍这两种方法。

5.1maven客户端上传

5.1.1.需要配置maven的setting.xm

在servers 标签中添加配置

<servers>	
<server>
	 <!-- 与 pom文件中的 distributionManagement id对应 -->
		<id>nexus-releases</id>
		<username>admin</username>
		<password>admin123</password>
    </server>
	
	<server>
	  <id>nexus-snapshots</id>
	  <username>admin</username>
	  <password>admin123</password>
    </server>
 
	
  </servers>

5.1.2.在项目中配置

需要在 pom文件中配置加入

    <distributionManagement>
        <repository>
            <!-- 与 maven setting 文件中的 server id对应 -->
            <id>nexus-releases</id>
            <url>http://127.0.0.1:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>nexus-snapshots</id>
            <url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
            <uniqueVersion>true</uniqueVersion>
        </snapshotRepository>
    </distributionManagement>

5.1.3.发布打包

  • 执行 mvn clean package -Dmaven.test.skip=true deploy
  • 执行成功后私服中查看

5.2私服web地址上传

进入上传页面进行上传操作
nexus


总结

本文主要是用nexus来搭建maven私服,介绍安装配置及使用的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

maven私服搭建 的相关文章

随机推荐

  • 在Linux中使用VSCode进行PyQt开发

    在Linux中使用VSCode进行PyQt开发 需要进行以下步骤 步骤一 安装Anaconda 在Anaconda官网上下载相应版本的Anaconda安装包 然后执行以下命令进行安装 bash Anaconda XXX Linux x86
  • 【SHOI2017】寿司餐厅【最大权闭合子图】

    题目链接 说实话 这道题从前天开始敲 然后不断的加优化 今晨才过了它 但是却对于最大权闭合子图有了很深的了解 题意 有N种寿司 我们可以吃连续的一段寿司 讲 将得到一系列的贡献 譬如说吃了1 2 3三个寿司 将得到 这么多的贡献值 当然 每
  • 机器学习:你需要多少训练数据?

    摘自 PPTV课堂 作者为Google 软件工程师 美国西北大学电子信息工程博士 擅长大规模分布式系统 编译器和数据库 从谷歌的机器学习代码中得知 目前需要一万亿个训练样本 训练数据的特性和数量是决定一个模型性能好坏的最主要因素 一旦你对一
  • 004.设计原则与思想:设计原则

    设计原则 一 理论一 对于单一职责原则 如何判定某个类的职责是否够 单一 1 如何理解单一职责原则 SRP 二 如何做到 对扩展开放 修改关闭 扩展和修改各指什么 三 里式替换 LSP 跟多态有何区别 哪些代码违背了LSP 四 接口隔离原则
  • IDEA实现远程Debug调试(附上Demo代码)

    目录 一 前提 二 IDEA中如何实现远程Debug模式 1 创建demo项目 2 引入依赖 3 创建启动类和创建demo 4 配置idea 二 IDEA的Debug的优缺点 二 Demo的源代码地址 总结 一 前提 需要准备JDK1 8环
  • C#实现查询MySql数据信息在DataViewGrid控件中显示

    具体的实现步骤如下 1 新建Windows窗体应用程序 添加DataGridView控件 不对DataGridView控件做任何处理 只做拉伸 防止看不到数据 2 为 查看记录 按钮添加事件 代码如下 1 数据库操作类 class DBCo
  • 《机器学习实战》第五章 Python3代码-(亲自修改测试可成功运行)

    由于Peter Harrington所著的这本 机器学习实战 中的官方代码是Python2版本的且有一些勘误 使用Python3的朋友运行起来会有很多问题 所以我将自己在学习过程中修改好的Python3版本代码分享给大家 以供大家交流学习
  • 电力电子中的Boost电路实现PFC功能-介绍与仿真

    今天也是个自习的日子 翻了些资料 觉得自己也是落后了 最新的单级PFC Power Factor Compensation 有Boost Flyback Boost Forward Buck Flyback变流器 和传统的PFC变流器 DC
  • J2EE/JAVA——HTMLform表单中action的‘/’路径问题

    1 HTML中的form表单简单介绍 HTML中的form表单在JAVA企业级开发中拥有十分重要的地位 HTML表单用于收集用户输入的信息 并将收集到的用户信息发送到web服务器中 在初级阶段 form表单常常使用在设计用户登录 用户反馈和
  • 机器学习(中)-投票法原理+思路+案例

    一 投票法的原理 投票法 voting 是集成学习里面针对分类问题的一种结合策略 是一种遵循少数服从多数原则的集成学习模型 通过多个模型的集成降低方差 从而提高模型的 鲁棒性 算法对数据变化的容忍度有多高 在理想情况下 投票法的预测效果应当
  • 认证、加密及数字签名的区别

    前几天 被一个猎头推荐到某世界500强企业 职位是安全测试 由于之前接触过一点点 但是并没有太多经验 奈何 最后的终面 就 尴尬 但是这次 却让我对测试路程 有了一个更清晰的认知 做过 需求 开发 测试 功能 自动化 接口 性能 唯独安全测
  • 第八章numpy之统计相关+练习题

    统计相关 次序统计 计算最小值 numpy amin a axis None out None keepdims np NoValue initial np NoValue where np NoValue Return the minim
  • 聊聊银行的信息科技岗(含各大银行薪资)

    大家好 今天跟大家聊聊薪资问题 作为技术岗 除了可以选择去互联网工作 还有一些同学会选择银行信息科技岗 我周围就有同学到工行 农行软开工作的 也有大佬去了竞争很大的总行 关于银行信息科技岗 看到这篇文章介绍的很不错 来分享给大家 这两天看了
  • 鼠标悬停改变内容-react

    用onMouseEnter onMouseLeave onMouseOver和onMouseOut属性 由于支持冒泡导致不稳定 后来更改为只经过自身触发 经过子元素不触发事件的onMouseEnter和onMouseLeave div is
  • Elasticsearch CCR源码分析(补充)

    接上篇TODO Elasticsearch CCR源码分析 上篇TODO http请求 ccr follow 接收到后 follow集群节点开始全量同步 是以snapshot的模式去拉leader集群数据的 那么是在什么时候将leader集
  • 初识CSS

    下面将学习CSS基础知识 如选择器类型 盒子模型 CSS定位 布局 伪类 伪元素 还有导航栏等 文章目录 一 何为CSS 二 CSS语法 三 CSS id和Class选择器 1 id 选择器 2 class选择器 四 CSS创建 1 如何插
  • VS2015 LINK : warning LNK4068: 未指定 /MACHINE;默认设置为 X86

    修改方法 在工程属性中 选择 配置属性 库管理器 命令行 在下面的其他选项中输入 MACHINE X64
  • 解决微信小程序报错request:fail url not in domain list

    问题 微信开发者工具能正常发送请求 在真机调试的时候发送请求报错 request fail url not in domain list 1 检查微信后台域名信息是否配置了request合法域名 2 检查微信本地设置 将不校验合法域名勾选上
  • 运动目标检测--光流法

    一 概述 运动目标检测是指当监控场景中有活动目标时 采用图像分割的方法从背景图像中提取出目标的运动区域 运动目标检测技术是智能视频分析的基础 因为目标跟踪 行为理解等视频分析算法都是针对目标区域的像素点进行的 目标检测的结果直接决定着智能视
  • maven私服搭建

    文章目录 前言 一 Nexus 二 安装nexus 2 1在Mac终端输入 如果提示没有brew命令 请先安装brew 2 2启动nexus 2 3访问web管理系统 三 nexus的配置 3 1登录后开始设置操作 3 1 1设置新密码 3