赞
踩
今天来讲一下 在linux上搭建maven私服nexus和nexus的使用
1、下载nexus
2、上传并解压
我是上传到了 /root/目录下
解压
- #解压
- tar -zxvf nexus-3.12.1-01-unix.tar.gz -C /usr/local/
3、修改默认端口
nexus默认使用的是8081端口,如果不想使用默认的8081端口的话,可以使用以下的命令进行修改
vim /usr/local/nexus-3.12.1-01/etc/nexus-default.properties
进入bin目录进行启动
- #进入bin目录
- cd /usr/local/nexus-3.12.1-01/bin
-
- #启动nexus
- ./nexus start
使用root账户登录,启动nexus的话,会看到一个提示,意思是说不建议使用root用户进行启动,在linux中root账户的权限是非常大的,所以一般启动软件的时候都不建议使用root账户,建议使用对应的用户启动对应的软件,所以下面我们来给nexus创建一个用户
- #创建一个名字为nexus的用户
- useradd nexus
-
- #设置密码
- passwd nexus 按回车,会提示你输入密码
想要使用nexus账户来启动nexus的话,那就需要把nexus相关的文件夹权限转移给nexus账户
有2个文件夹的权限需要转移,下图中圈红的2个文件夹
- #把nexus-3.12.1-01/ sonatype-work/的权限转移给nexus账户和所属组
- chown -R nexus:nexus nexus-3.12.1-01/ sonatype-work/
注意:先kill掉刚才用root账户启动的nexus进程
- #切换nexus账户
- su nexus
-
- #进入bin目录,并启动nexus
- cd /usr/local/nexus-3.12.1-01/bin/
-
- #启动
- ./nexus start
使用 ./nexus start 这个命令启动完以后,去访问192.168.56.20:8081发现访问不了
访问不了可能是因为防火墙端口没开,于是我们使用下面的命令打开防火墙的8081端口
注意编辑防火墙文件必须使用root账户
vim /etc/sysconfig/iptables
重启防火墙服务
systemctl restart iptables.service
重启了防火墙服务后,再次访问 http://192.168.56.20:8081
有可能发现还是访问不了,刚开始一直找不到原因,就ps 看了一下nexus进程有没有正常启动
ps -ef|grep nexus
发现nexus进程还真没有启动起来,然后又用 ./nexus start 试了几次,然后用 ps 去看进程,发现还是没启动起来
然后就用了 ./nexus run 来启动,启动后, 访问 http://192.168.56.20:8081 发现可以访问了
但是用 ./nexus run 启动的话,窗口得一直开着,窗口一关进程就结束了
所以最后使用 ./nexus run & 来启动,就可以了
但是使用 ./nexus start 为什么启动不了的原因,我现在还没找到,如果有发现相同问题并解决了的小伙伴,欢迎留言
后来发现,重启一下机器,然后再使用 ./nexus start 就能启动了
至此nexus的搭建和启动就完成了
最后再添加一下 nexus开机自启动:在linux中设置nexus开机自启动
默认的账号是admin 密码是admin123
输入账号密码就可以登录进去了
登录进去后,会发现最上边有个黄色的叹号提示说,最大的文件数是4096,数值太低了,需要把它增加到65536,那下边我们来配置一下
vim /etc/security/limits.conf
在最下边添加一下内容
- * soft nofile 65536
- * hard nofile 65536
如下图所示
注意:需要使用root账户进行修改
保存退出,然后需要重启linux机器才能生效
重启机器后,再登录进去,发现刚才那个感叹号的提示已经没有了
本地maven的setting文件里需要做一些私服的配置,才能使用搭建好的nexus私服
mave的setting文件里默认会有很多注释掉的东西,下面是我把注释掉的内容删除后,我本地setting文件的完整配置
- <?xml version="1.0" encoding="UTF-8"?>
- <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
-
- <localRepository>E:\maven\repr</localRepository>
-
- <pluginGroups>
-
- </pluginGroups>
-
- <proxies>
-
- </proxies>
-
- <servers>
- <server>
- <id>cj-releases</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- <server>
- <id>cj-snapshots</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- </servers>
-
- <mirrors>
- <mirror>
- <id>alimaven</id>
- <mirrorOf>central</mirrorOf>
- <name>aliyun maven</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
- </mirror>
- </mirrors>
-
-
- <profiles>
- <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>
- <profile>
- <id>cj</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <!-- 私有库地址-->
- <repositories>
- <repository>
- <id>cj</id>
- <url>http://192.168.56.20:8081/repository/maven-public/</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- </repositories>
- <!--插件库地址-->
- <pluginRepositories>
- <pluginRepository>
- <id>cj</id>
- <url>http://192.168.56.20:8081/repository/maven-public/</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </pluginRepository>
- </pluginRepositories>
- </profile>
-
- </profiles>
-
- <activeProfiles>
- <activeProfile>cj</activeProfile>
- </activeProfiles>
-
- </settings>
可以看到nexus默认的代理地址是maven的中央仓库地址,这个地址是国外的,咱们在国内访问可能会很慢,所以,咱们把它改成国内阿里的中央仓库地址:
http://maven.aliyun.com/nexus/content/groups/public/
在本地项目的pom文件中添加一个本地仓库没有的依赖,看看它是不是会去咱们配置nexus私服上去拉取,nexus私服上没有的话,它会去配置的中央仓库拉取并保存到nexus私服上
可以看到它已经是去咱们自己搭建的nexus私服上拉取了
由于是第一次拉取,所以咱们的nexus私服上是没有的,它肯定会中央仓库拉取,并保存到nexus私服上,所以咱们看下nexus私服的仓库里有没有刚才保存的依赖
可以看到刚才添加的aws-java-sdk-core 1.12.74依赖已经保存到咱们搭建的nexus私服的仓库里了
怎么把我们本地打包的项目上传到nexus私服呢?
首先需要在本地的项目pom文件里配置以下信息
- <!--pom.xml 远程仓库的配置 id要跟本地maven的setting.xml相同 -->
- <distributionManagement>
- <repository>
- <id>cj-releases</id>
- <url>http://192.168.56.20:8081/repository/maven-releases/</url>
- </repository>
- <snapshotRepository>
- <id>cj-snapshots</id>
- <url>http://192.168.56.20:8081/repository/maven-snapshots/</url>
- </snapshotRepository>
- </distributionManagement>
如下图所示
然后在idea的右侧Maven工具栏里,点击deploy
可以看到已经 Build Success
然后我们去nexus私服的仓库里看看有没有传上去
可以看到我们本地打包的项目jar包已经上传到nexus私服上去了
那其他的项目怎么引用我们打包到私服上的jar呢?
很简单,只需要在pom文件里加上相应的依赖就可以了
添加完pom依赖,可以看看对应的依赖库里有没有这个项目的jar
上图可以看到其他项目里已经可以依赖我们打包到nexus私服里的jar了
我们还可以把一个jar手动的上传到nexus私服
首先我们准备一个jar,可以是你本地项目打包出来的jar也可以是你在网上下载好的一个jar
然后选择一个仓库,点击进去
点Upload component
点Browse,选择本地的jar包 按照下图填好相应的信息,点击Upload
可以看到jar已经传上去了
然后我们在项目里引用一下刚才上传的jar,下图可以看到在项目里已经成功依赖刚才上传的jar包
至此,nexus的搭建和基本的使用就讲完了
纯手敲原创不易,如果觉得对你有帮助,可以打赏支持一下,哈哈,感谢~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。