Maven第四篇【私有仓库、上传jar包、引用私服jar包、上传本地项目到私服】
搭建私有服务器
前面已经说过了,我们使用Maven的使用,如果需要导入相对应的jar包,Maven首先会在我们的本地仓库中寻找—>私有仓库—>中心仓库…
然而,我们的本地仓库常常没有想要的jar包的,而经常去中心仓库下载这就非常浪费时间和资源了…因此我们一般都有一个私有仓库…
另外有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库
准备步骤
我们使用的是nexus框架来搭建私服,它属于sonatype 机构的开源框架,用该框架架设maven 私有服务器
Nexus环境搭建
- 第一步:下载nexus-webapp-1.9.2.4.war包,然后拷贝到tomcat下的webapps目录中
- 第二步:启动tomcat 默认登录账户密码为: admin admin123
- 第三步:访问http://localhost:8080/项目名称/
tomcat会自动解析war包,然后就自动下载插件…
访问该项目,进到首页
登陆…
仓库介绍
- proxy:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用
- Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里
- Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存。我今天就发现,明明构件已经更新了,在浏览器里却看不到,还以为是BUG,其实是被浏览器缓存了
- virtual:也是中央仓库镜像,支持M1老版本
每个仓库的作用:
- 3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库
- Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
- Central: 用来代理maven中央仓库中发布版本构件的仓库
- Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
- Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库
- Releases: 用来部署管理内部的发布版本构件的宿主类型仓库
- Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库
仓库组是一个虚拟的概念,就是通过对实体仓库(proxy、hosted)进行聚合, 对外暴露一个统一的地址这里要注意的是,放到左边的仓库,才是会被聚合的仓库
仓库组的配置顺序:
上传jar包到私服
直接通过网站上传,把桌面上的pig-0.12.1.jar上传到私有服务器中
再次查看的时候,已经上传上去了
从私服依赖jar包
在pom.xml文件配置私服的路径、组id、版本等等
<!-- 假如没有私服 ,则 本地仓库找不到,则访问中心仓库
假如有私服 :访问顺序
首先访问本地仓库
本地仓库没有,则访问私服仓库
私服仓库也没有,则访问中心仓库
-->
<!-- 加载的是 第三方项目使用的jar包 -->
<repositories>
<repository>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>public</id>
<name>public</name>
<url>http://localhost:8080/nexus-2.6.2/content/groups/public/</url>
</repository>
</repositories>
<!-- 加载的是maven生命周期插件的jar包 -->
<pluginRepositories>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>public</id>
<name>public</name>
<url>http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
在本地仓库中也把私服的jar包下载下来了
把本地项目发布到私服
server的配置可以在Maven的settings.xml中写上
<!-- 分销管理 ,把jar包发布到私服中 -->
<!-- 配置服务器-->
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
值得注意的是:你得留意你用的是哪个Maven,是你自己下载的Maven还是使用Idea集成的Maven,如果没有配置的话,那么就会出现401错误。
<distributionManagement>
<!-- 发布到 快照版本的仓库,即 测试版本仓库 -->
<snapshotRepository>
<id>snapshots</id>
<url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots/</url>
</snapshotRepository>
<!-- 发布到 发行版本的仓库中,也可以发布到3rd party 仓库 -->
<repository>
<id>releases</id>
<url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/releases/</url>
</repository>
再次查看仓库组
Maven第四篇【私有仓库、上传jar包、引用私服jar包、上传本地项目到私服】的更多相关文章
- 将Maven项目打包成可执行jar文件(引用第三方jar)
方法一. mvn assembly 或 mvn package (一个jar包) 把依赖包和自己项目的文件打包如同一个jar包(这种方式对spring的项目不支持) <build> ...
- 将Maven项目打包成可执行 jar文件(引用第三方jar)
使用maven assembly插件完成打包 修改pom: <build> <pluginManagement> <plugins> <!--设置jdk版本, ...
- maven学习(4)-本地项目打包发布到私有仓库
发布本地项目到私服仓库 在前面章节有介绍maven发布本地jar包到私服仓库,这里详细介绍一下步骤. 在项目开发中通常会引用其他的jar,怎样把自己的项目做为一个jar包的形式发布到私服仓库中,主要有 ...
- 实战maven私有仓库三部曲之一:搭建和使用
在局域网内搭建maven私有仓库,可避免每次都从中央仓库下载公共jar包,另外将A模块作为二方库发布到私有仓库后,B模块可以很方便的引用,今天我们就来实战maven私有仓库的搭建和使用: 原文地址:h ...
- 学Maven,这篇万余字的教程,真的够用了!
1 Maven 介绍 1.1 为什么使用 Maven 由于 Java 的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar 包的形式出现的,例如 Spring,Spri ...
- Docker创建镜像以及私有仓库
Docker的安装及镜像.容器的基本操作详见博客https://blog.51cto.com/11134648/2160257下面介绍Docker创建镜像和创建私有仓库的方法,详细如下: 创建镜像 创 ...
- Maven学习(三) -- 仓库
标签(空格分隔): 学习笔记 坐标和依赖时任何一个构件在Maven世界中的逻辑表示方式:而构件的物理表示方式是文件,Maven通过仓库来同意管理这些文件. 任何一个构件都有其唯一的坐标,根据这个坐标可 ...
- Docker:私有仓库registry [十一]
一.运行docker私有仓库 安装registry docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregi ...
- docker创建私有仓库
由于网速和大中华局域网效果,使得我们在DockerHub下载镜像的速度很慢,甚至一些国内的镜像仓库,也感觉速度不是很好.所以,很有必要在本地或者一个我们访问很快速的地方(自己的云服务器)搭建一套镜像仓 ...
随机推荐
- JDBC数据库连接JAVA和一些基本语句
连接JDBC 1)JDBC简介 - JDBC就是Java中连接数据库方式 - 我们可以通过JDBC来执行SQL语句. 2)获取数据库连接 ...
- html4与html5的区别及html5的一些新特性
区别 1.html5语法的改变 HTML5简化了很多细微的语法,例如: 1.1doctype的声明; html4: <!DOCTYPE HTML PUBLIC "-//W3C//DTD ...
- 在配置wem.xml后,Tomcat遇到问题,启动失败的解决方法
前两天在写程序时,碰到了Tomcat无法启动的问题,就是在配置完web.xml后.想必好多小伙伴都有遇到吧. 如图: 出现这个错误的原因是:在配置web.xml的时候出现了错误! 如图所示,没有修改这 ...
- 通过 BitNami 轻松安装 Redmine
一.简介 最近彭老师要我搭建 Redmine 来管理 WPF 项目,至于问什么要选择 Redmine 网上的资料都有说明,在这里就不做过多评论.查阅了好久资料,走了不少弯路,像我这样的新手,如果严格按 ...
- 【Linux init】systemd 服务单元管理
系统服务管理systemd Control the systemd system and service manager 控制systemd系统和服务管理,并行启动服务时充分发挥了多核处理器的性能, ...
- Spring(四)-- JdbcTemplate、声明式事务
1.Spring提供的一个操作数据库的技术JdbcTemplate,是对Jdbc的封装.语法风格非常接近DBUtils. JdbcTemplate可以直接操作数据库,加快效率,而且学这个JdbcT ...
- webpack教程(六)——分离组件代码
先来运行一下webpack命令, 看到app.js才4k. 安装一下react npm install react --sava-dev 在app/index.js文件内引入react 运行webpa ...
- 使用javaconfig配置freemarker
package com.yy.config; import org.springframework.context.annotation.Bean; import org.springframewor ...
- python3 requests 获取 拉勾工作数据
#-*- coding:utf-8 -*- __author__ = "carry" import requests,json for x in range(1, 15): url ...
- DFS和BFS(无向图)Java实现
package practice; import java.util.Iterator; import java.util.Stack; import edu.princeton.cs.algs4.* ...