环境:centos7 jdk1.8 nexus3.7
安装jdk1.8 :wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz
第一步:下载nexus https://sonatype-download.global.ssl.fastly.net/nexus/3/nexus-3.7.1-02-unix.tar.gz
第二部:上传到linux系统并解压到一个文件夹
第三部:进入解压完成后nexus的bin目录下执行安装,必须提前安装并配置好java环境,这里需要java8
./nexus run 安装nexus 服务 ./nexus start 启动nexus 服务
第四步:开防火墙
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --reload
第四步:访问仓库管理后台 http://192.168.31.241:8081/ 用户名admin 密码admin123 如果能够进去说明成功
第五部:开机启动
- 启动服务脚本 vi /usr/lib/systemd/system/nexus.service
[Unit]
Description = Nexus server
After = network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/root/app/nexus/nexus-3.7.1-02/bin/nexus start
ExecReload=/root/app/nexus/nexus-3.7.1-02/bin/nexus restart
ExecStop=/root/app/nexus/nexus-3.7.1-02/bin/nexus stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target`
如果启动报错是因为没有配置JAVA_HOME开机启动是没有环境变量的
vi nexus bin目录下的启动文件
将下图中的JAVA_HOME指向jdk目录
systemctl start nexus 查看发现nexus进程
systemctl enable nexus.service 加入开机启动
- 仓库内容
我这里是nexus3.7的仓库内容
其中前面4个都是maven开头的,都是maven所属仓库
后面3个是nuget开头的,https://kb.cnblogs.com/page/143190/可以看这里了解,好像是Visual Studio的一个扩展,我这里不用,先删掉了
现在来说一下maven的4个仓库
其中,-central类型是proxy说明是代理中央仓库的,还有两个类型是hosted的仓库,这两个是宿主仓库也就是我们发布项目要用的仓库,snapshots的意思是快照也就是说 这个仓库是用来发布测试版本包的,相对应releases是用来发布正式版本包的,最后一个group类型的仓库是仓库组,比如说我们既需要依赖中央仓库又需要依赖宿主仓库是可以将这些仓库编成组,然后本地直接依赖仓库组就相当于依赖了中央仓库和宿主仓库 - 在本地配置私服,从私服下载包
打开maven的setting.xml 添加如下配置
<server>
<id>releases</id>
<username>admin</username>
<password>*****</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>*****</password>
</server>
<mirror>
<!--镜像id 可以配置多个镜像 保证id不重复即可-->
<id>nexus</id>
<!--指定仓库id 包括 release snapshots 这里可以配置具体的仓库id * 代表仓库组中全部仓库-->
<mirrorOf>*</mirrorOf>
<url>http://192.168.31.241:8081/repository/maven-public/</url>
</mirror>
- 打包发布到私服
自己需要发布到私服的项目的pom中增加如下配置
<distributionManagement>
<repository>
<id>releases</id>
<name>Releases</name>
<url>http://192.168.31.241:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshot</name>
<url>http://192.168.31.241:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
注意上面的repository的id值一定要跟settings.xml文件中配置的server一致。
2. 第三方Jar上传到Nexus
mvn deploy:deploy-file \
-DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<type-of-packaging> \
-Dfile=<path-to-file> \
-DrepositoryId=<server-id-settings.xml> \
-Durl=<url-of-the-repository-to-deploy>
-DrepositoryId的值即为在setttings.xml里面配置的server id。
3. nexus3 删除jar
进入仓库,选择某个仓库
右边点击删除即可
补充内容
怎么把本地的jar包弄到maven里去
mvn install:install-file -DgroupId=com.ga.*** -DartifactId=ucp -Dversion=1.0 -Dpackaging=jar -Dfile=ucp-1.0.jar