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

Stella981
• 阅读 493

搭建私有服务器

前面已经说过了,我们使用Maven的使用,如果需要导入相对应的jar包,Maven首先会在我们的本地仓库中寻找—>私有仓库—>中心仓库…

然而,我们的本地仓库常常没有想要的jar包的,而经常去中心仓库下载这就非常浪费时间和资源了…因此我们一般都有一个私有仓库…

另外有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库

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

准备步骤

我们使用的是nexus框架来搭建私服,它属于sonatype 机构的开源框架,用该框架架设maven 私有服务器

Nexus环境搭建

  • 第一步:下载nexus-webapp-1.9.2.4.war包,然后拷贝到tomcat下的webapps目录中
  • 第二步:启动tomcat 默认登录账户密码为: admin admin123
  • 第三步:访问http://localhost:8080/项目名称/

tomcat会自动解析war包,然后就自动下载插件…
Maven第四篇【私有仓库、上传jar包、引用私服jar包、上传本地项目到私服】

访问该项目,进到首页

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

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

仓库介绍

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

  • 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)进行聚合, 对外暴露一个统一的地址这里要注意的是,放到左边的仓库,才是会被聚合的仓库

仓库组的配置顺序:

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

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

上传jar包到私服

直接通过网站上传,把桌面上的pig-0.12.1.jar上传到私有服务器中

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

再次查看的时候,已经上传上去了

Maven第四篇【私有仓库、上传jar包、引用私服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>

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

在本地仓库中也把私服的jar包下载下来了

Maven第四篇【私有仓库、上传jar包、引用私服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包、上传本地项目到私服】


点赞
收藏
评论区
推荐文章
刚刚好 刚刚好
2个月前
css问题
1、 在IOS中图片不显示(给图片加了圆角或者img没有父级) <div<img src""/</div div {width: 20px; height: 20px; borderradius: 20px; overflow: h
晴空闲云 晴空闲云
2个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。 盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
Easter79 Easter79
1年前
SpringBoot+Druid+Mybatis连接Oracle
最近有一个新项目需要开发搭建了个SpringBoot框架 记录一下! Oracle连接jar编译到maven仓库参考:[Maven编译jar包到本地仓库](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fblog.csdn.net%2Fwzsy_ll%2Farticle%2Fdetails
Stella981 Stella981
1年前
Maven项目使用打包时使用本地jar包库
在使用maven管理项目时,有时候我们可能会使用一些第三方的jar包依赖库,但是这些jar包依赖库又没有在共有的maven仓库。 通常只能下来放到本项目的lib目录下。但是我们打包时如果不做处理,那么打包后的fat jar中不会有lib文件夹中的相关jar包。 打包后无法运行起来,因此需要做特殊处理,让maven打包时能够把使用到外部jar打进去。主要就是在
艾木酱 艾木酱
1个月前
快速入门|使用MemFire Cloud构建React Native应用程序
> MemFire Cloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
Stella981 Stella981
1年前
MAVEN添加JAR包到本地仓库
一般公共广泛使用的jar包好说,特殊的jar包在网上找不到哪个maven仓库里有就只能放到本地仓库里了。 背景:搞百度云推送,百度提供了服务端的java SDK,因此只能吧这个jar包上传到本地仓库 maven命令: mvn -install:install -file eg: mvn install:install-file -DgroupI
Stella981 Stella981
1年前
SpringBoot+Druid+Mybatis连接Oracle
最近有一个新项目需要开发搭建了个SpringBoot框架 记录一下! Oracle连接jar编译到maven仓库参考:[Maven编译jar包到本地仓库](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fblog.csdn.net%2Fwzsy_ll%2Farticle%2Fdetails
Wesley13 Wesley13
1年前
VMware中 CentOS7挂载windows共享文件夹
在编译自己的hadoop时,不想再次在虚拟机中下载jar包,就想到了挂载自己本地的maven仓库,使用本地仓库来进行编译,这里就需要使用VMware的VMware Tools了,直接复制[官方文档](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fdocs.vmware.com%2Fcn%2
Stella981 Stella981
1年前
Idea下maven的配置和使用
  maven的主要功能就是依赖管理,jar包仓库。和C#中的NuGet仓库差不多。另外也提供打包构建,启动插件等功能。下面主要讲一下,在使用Idea开发时,maven的配置和使用。 ### maven的安装和配置   **maven(3.6.1)**的下载地址:[https://idlestudio.ctfile.com/fs/14960372-382
helloworld_28799839 helloworld_28799839
2个月前
常用知识整理
# Javascript ## 判断对象是否为空 ```js Object.keys(myObject).length === 0 ``` ## 经常使用的三元运算 > 我们经常遇到处理表格列状态字段如 `status` 的时候可以用到 ``` vue