Centos下利用nexus搭建私有仓库

那年仲夏 提交于 2020-03-17 14:39:47

某厂面试归来,发现自己落伍了!>>>

一、下载安装

下载

服务器为centos,去 https://www.sonatype.com/download-oss-sonatype 下载unix版本的。

安装

  • 解压
tar xvf nexus-3.21.1-01-unix.tar.gz
mv nexus-3.21.1-01 /home/nexus
  • 开启端口 默认会在8081端口启动,因为我的8081端口已被使用,改用8082端口。
firewall-cmd --zone=public --add-port=8082/tcp --permanent
firewall-cmd --reload
  • 创建nexus的运行用户
adduser nexus # 创建用户
passwd nexus # 改密码

给nexu用户加权限

vi /etc/sudoers
chmod u+w /etc/sudoers

添加

nexus ALL=(ALL) ALL

保存后撤回写的权限

chmod u-w /etc/sudoers

修改nexus目录的所有者

chown -R nexus /home/nexus

二、运行

修改配置文件

cd /home/nexus/etc/
vim nexus-default.properties

改为

## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
##
# Jetty section
application-port=8082
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/

# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
 nexus-pro-feature

nexus.hazelcast.discovery.isEnabled=true

启动

  • 运行
cd /home/nexus/bin/
./nexus start #启动
./nexus restart
./nexus stop
./nexus run

显示nexus is runing 说明已经运行。

  • 改运行用户

nexus不建议用root用户启动。我们用nexus用户来运行他。 进入到nexus的bin目录 编辑下面这个文件

vi nexus.rc

改为 run_as_user="nexus",注意把前面的注释符号给去掉。

  • 给nexus的启动文件添加java_home(可选)

在nexus的bin目录下打开nexus的启动文件

输入下面的命令

vi nexus

然后在开头找到下面这句代码,取消注释,添加上jdk地址

INSTALL4J_JAVA_HOME_OVERRIDE=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64

添加systemctl启动服务

vi /usr/lib/systemd/system/nexus.service

写入

[Unit] 
   Description = nexus service 
   After = network.target 
[Service] 
   Type = forking 
   LimitNOFILE = 65536 
   ExecStart = /home/nexus/bin/nexus start 
   ExecReload= //home/nexus/bin/nexus restart
   ExecStop =  /home/nexus/bin/nexus stop  
   User = nexus
   Restart = on- abort 
[Install] 
  WantedBy = multi-user.target

分别执行下面的命令

systemctl daemon-reload
systemctl enable nexus.service
systemctl start nexus.service

然后在浏览器输入http://ip:8082 然后点击登陆输入账号admin 密码admin123

三、使用

在本地配置maven的settings.xml

vi ~/.m2/settings.xml

在根节点加入servers配置

<servers>
	<server>
		<id>snapshots</id>
		<username>admin</username>
		<password>admin123</password>
	</server>
	<server>
		<id>releases</id>
		<username>admin</username>
		<password>admin123</password>
	</server>
</servers>

用于在执行mvn deploy时进行授权。这是用admin用户,也可以在nexus中创建新的用户和角色来授权。 同时,需要在nexus中放开匿名访问权限,否则在访问maven-public进行拉取的时候会报"Not Authorized"错误。

pom.xml配置

  • 包发布配置
	<distributionManagement>
		<snapshotRepository>
			<id>snapshots</id>
			<url>http://1.2.3.4:8082/repository/maven-snapshots/</url>
		</snapshotRepository>
		<repository>
			<id>releases</id>
			<url>http://1.2.3.4:8082/repository/maven-releases/</url>
		</repository>
	</distributionManagement>
  • 拉取仓库配置
	<repositories>
		<repository>
			<id>nexus</id>
			<name>nexus repository</name>
			<url>http://1.2.3.4:8082/repository/maven-public/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!