200320-nexus私服搭建与使用

nexus私服搭建与使用

nexus作用与安装

  1. nexus是干什么的
    nexus专门的maven仓库管理软件,通常在企业内部使用,不用每个开发都连接互联网下载依赖jar包,直接从私服缓存下载即可。

  2. nexus profession 收费版本

  • nexu收费版本
  • nexus oss 免费版本
    oss:open source software
    下载地址

nexus默认用户名密码 admin/admin123

nexus内置仓库

overview

内置仓库详解

architecture

  • maven可直接从宿主仓库下载jar,也可直接从代理仓库下载jar
  • 代理仓库会间接从远程仓库下载并缓存jar
  • maven可从仓库组下载jar,仓库组没有任何实际内容,会转向其包含的宿主仓库或者代理仓库来获得实际jar

创建宿主仓库

hosted

创建代理仓库

proxy

创建仓库组

group

nexus上传下载构件配置

nexus下载构件

  1. 单独项目配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<nexus.id>nexus</nexus.id>
<nexus.name>xxx-nexus</nexus.name>
<nexus.url>http://xxx.xxx.xxx.xx/repository/xxx-public</nexus.url>
</properties>

<repositories>
<repository>
<id>${nexus.id}</id>
<name>${nexus.name}</name>
<url>${nexus.url}</url>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
  1. 所有项目默认从私服下载,修改maven的settings.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://xxx.xxx.xxx.xx/repository/xxx-public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://xxx.xxx.xxx.xx/repository/xxx-public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>

说明:这个配置已让本机所有的maven项目从Nexus下载构件,但Maven还会不时地访问中央仓库centeral
可以配置一个镜像,地址为私服,这样maven对任何仓库的构件下载请求都会转到私服中,如下配置

1
2
3
4
5
6
7
8
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus</name>
<url>http://xxx.xxx.xxx.xx/repository/xxx-public</url>
</mirror>
</mirrors>

nexus上传构件

  1. nexus网页手动上传
    可自行百度

  2. maven 插件方式配置方式

  • 先在settings.xml中配置私服用户名密码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<servers>
<!--发布版 -->
<server>
<id>nexus-realease</id>
<username>admin</username>
<password>admin123</password>
</server>
<!--快照版 -->
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
  • 在项目的pom.xml文件中,添加如下配置
1
2
3
4
5
6
7
8
9
10
11
12
<distributionManagement>
<repository>
<id>nexus-realease</id>
<name>发布版本仓库</name>
<url>http://${nexus.address}/repository/maven-releases</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>快照版本仓库</name>
<url>http://${nexus.address}/repository/maven-snapshots</url>
</snapshotRepository>
</distributionManagement>
#
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×