一、简介:
Nexus是一个强大的Maven仓库管理器,它极大地简化了企业内部仓库的维护和外部仓库的访问,当项目需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。通过内网部署搭建Nexus3私有仓库来存放内部项目的程序包以及外部依赖的获取、缓存,大大加快了构建速度以及稳定性。
中文文档:nexus文档
二、 Nexus仓库:
Nexus 仓库按照类型(Type):
1、代理仓库(proxy):用来代理远程公共仓库,如 Maven 中央仓库、JBoss 远程仓库。
2、宿主仓库(hosted):又称Nexus 本地仓库,该仓库通常用来部署本地项目所产生的构件。
hosted下分为:
2.1:Snapshots是发布那些非release版本, 非稳定版本;
2.2:Releases是用来存放自己项目中发布的构建, 通常是Release版本的;
2.3:Mixed混合类型也就是Snapshots/Releases
3、仓库组(group):用来聚合代理仓库和宿主仓库,为这些仓库提供统一的服务地址,以便 Maven 可以更加方便地获得这些仓库中的构件
三、手动上传jar包都是上传到hosted类型库的Releases库中
pom文件的作用:
Maven 是专门用于构建和管理Java相关项目的管理工具。
1.使用Maven管理的Java 项目都有着相同的项目结构
2.统一维护jar包 POM是项目对象模型(Project Object Model)的简称 该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。
使用groupdId:artifactId:version的形式来唯一确定一个项目 POM之间的关系,继承、聚合与依赖
继承:子项目继承父项目的pom.xml,在子项目中定义父项目
依赖:一个dependency元素定义一个依赖关系
聚合:聚合和关联多个项目中相同的配置,在被聚合项目中定义其子模块 以使用${propertyName}的形式引用属性
四、项目中引入下载依赖:
gradle项目:
1、build.gradle文件:
repositories{
maven {
credentials {
username 'XXX'
password 'XXX'
}
allowInsecureProtocol = true
url 'https://ip:port/repository/XXX_group/'
}
}
2、init.gradle文件:
allprojects{
maven {
credentials {
username **
password **
}
allowInsecureProtocol = true
url 'https://ip:port/repository/XXX_group/'
}
}
}
maven项目:
1、pom.xml文件:
<repositories>
<repository>
<id>nexus</id>
<url>https://ip:port/repository/XXX_group/</url>
</repository>
</repositories>
2、setting.xml文件:
<server>
<id>nexus</id>//对应pom文件中的id
<username>**</username>
<password>**</password>
</server>
<mirror>
<id>sfkj-nexus</id>
<mirrorOf>*</mirrorOf>
<url>https://ip:port/repository/XXX_group/</url>
</mirror>