centos6 安装nexus3

一、下载安装包

去nexus官网下载最新的nexus3版本,地址:
nexus官方下载地址

不需要下载到自己的客户机上,直接在服务器里面用wget下载更快
nexus需要验证
在这里插入图片描述

点击之后,在下载里面拷贝下载链接
在这里插入图片描述

cd /home/download
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/3/nexus-3.14.0-04-unix.tar.gz

二、解压安装包

tar -zxvf nexus-3.14.0-04-unix.tar.gz
mv nexus-3.14.0-04 /usr/local/nexus3

三、开启防火墙

[root@localhost etc]# firewall-cmd --zone=public --add-port=8081/tcp --permanent
[root@localhost etc]# firewall-cmd --reload

四、启动

cd /usr/local/nexus3
./bin/nexus start

五、访问

http://serveraddress:8081

默认账户密码:
admin/admin123

在这里插入图片描述

六、创建自己的镜像代理仓库(中央仓库)

点击Nexus“Log in”,输入默认用户名(admin)和默认密码(admin123)登录。可以点击上面的“设置”图标,在“设置”里可以添加用户、角色,对接LDAP等的设置

nexus里可以配置3种类型的仓库,分别是proxy、hosted、group

在这里插入图片描述

proxy是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用

hosted是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里

group是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了

1、配置proxy仓库
在这里插入图片描述

仓库访问地址填阿里云的仓库
http://maven.aliyun.com/nexus/content/groups/public/

他不是一次性将镜像仓库中的所有jar包都下到我们的nexus中存储,而是我们用到的时候,从阿里云镜像中下载,然后存在nexus中,下次就不用再去阿里云下载了。

测试:
修改maven的settings配置文件,配置镜像仓库和密码,不去默认的官方的中央仓库下载jar包

<servers>
		<server>
            <id>releases</id>
            <username>admin</username>
            <password>*****</password>
        </server>

		<server>
            <id>snapshots</id>
            <username>admin</username>
            <password>*****</password>
        </server>

	</servers>
	
	<mirrors>
		<mirror>
			<id>nexus</id>
			<mirrorOf>*</mirrorOf>
			<url>http://nexus.*.top/repository/qinhe_maven_proxy/</url>
		</mirror>
	</mirrors>

在一个maven项目中配置Maven的settings为我们修改过的配置文件,然后随便找一个maven的jar包
如下:

		<!-- https://mvnrepository.com/artifact/com.twitter/util-hashing -->
        <dependency>
            <groupId>com.twitter</groupId>
            <artifactId>util-hashing_2.12</artifactId>
            <version>18.10.0</version>
        </dependency>

引入成功,
在这里插入图片描述

或者不用修改settings,直接在项目中pom修改

<repositories>
        <repository>
            <id>public</id>
            <name>public</name>
            <url>http://nexus.*.top/repository/qinhe_maven_proxy/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

七、Maven打包上传

用于jar包上传的私有仓库:host
配置如下:
RELEASE仓库:
在这里插入图片描述

SNAPSHOT仓库:
在这里插入图片描述

配置pom文件即可

3、配置私服,即

maven中的仓库分为两种,snapshot快照仓库和release发布仓库。snapshot快照仓库用于保存开发过程中的不稳定版 本,release正式仓库则是用来保存稳定的发行版本。定义一个组件/模块为快照版本,只需要在pom文件中在该模块的版本号后加上-SNAPSHOT即可(注意这里必须是大写)。release版本不允许修改,每次进行release版本修改,发布必须提升版本号。而snapshot一般是开发过程中的迭代版本,snapshot更新后,引用的项目可以不修改版本号自动下载构建。

我们知道,maven的依赖管理是基于版本管理的,对于发布状态的artifact,如果版本号相同,即使我们内部的镜像服务器上的组件比本地新,maven也不会主动下载的。如果我们在开发阶段都是基于正式发布版本来做依赖管理,那么遇到这个问题,就需要升级组件的版本号,可这样就明显不 符合要求和实际情况了。但是,如果是基于快照版本,那么问题就自热而然的解决了,而maven已经为我们准备好了这一切。

maven2会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在 mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务 器上下载。

所以,我们在开发阶段,可以将公用库的版本设置为快照版本,而被依赖组件则引用快照版本进行开发,在公用库的快照版本更新后,我们也不需要修改pom文件提示版本号来下载新的版本,直接mvn执行相关编译、打包命令即可重新下载最新的快照库了,从而也方便了我们进行开发,也不冲突MAVEN的版本管理原则。例如:

    <dependency>
        <groupId>com.xxx.yyy</groupId>
        <artifactId>xxxxxxx</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

这里我们使用 IDEA 新建一个 Maven Project,命名为 utils,并在其中新建一个类,供我们后续测试使用。
配置 pom.xml:

<distributionManagement>
    <repository>
        <id>releases</id>
        <url>http://192.168.2.20:8081/repository/qinhe_maven/</url>
    </repository>
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://192.168.2.20:8081/repository/qinhe_maven/</url>
    </snapshotRepository>
</distributionManagement>

配置maven的 settings.xml:

<servers>
    <server>
        <id>releases</id>
        <username>user</username>
        <password>123456</password>
    </server>
    <server>
        <id>Snapshots</id>
        <username>user</username>
        <password>123456</password>
    </server>
</servers>

八、引用私服中的jar包,需要配置如下

当私服里面没有这个jar包的时候才回去我们配置的镜像代理仓库中下载jar包
创建一个group仓库,把我们的镜像仓库、host仓库都加进去

在这里插入图片描述

在 settings.xml 中添加如下配置即可:

<profiles>
	   <profile>
			<id>nexus_qinhe</id>
			<repositories>
					<repository>
						<id>nexus_public</id>
						<url>http://****/repository/qinhe_maven_group/</url>
						<releases>
							<enabled>true</enabled>
						</releases>
						<snapshots>
						<enabled>true</enabled>
					</snapshots>    
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>nexus_public</id>
					<url>http://****/repository/qinhe_maven_group/</url>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
				 </pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>

  <activeProfiles>
    <activeProfile>nexus_qinhe</activeProfile>
  </activeProfiles>
发布了90 篇原创文章 · 获赞 14 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/u014229652/article/details/83687194