Nexus 3.x 安装/配置/使用
写在前面
- 博客中的nexus是基于
nexus-3.6.0-02
如与读者的有差异请自行参考修正. - 部分内容, 参考了网上其它文章, 但本博客的内容, 都是本人亲测可用的.
- 最后, 如有雷同, 纯属抄袭( ^-^) , 欢迎转载, 如有问题欢迎, 留言咨询.
时间: 2017-10-21 15:05
一. nexus的作用
- 外网maven资源库访问代理
- 外网maven资源库镜像
- 内部maven项目发布
- 第三方非开源jar发布
二. nexus下载/安装/启动
下载
nexus下载页面 根据你所用的操作系统, 选择对应的版本.
安装与启动
直接解压, 进入如下目录:
NEXUS_HOME/nexus-3.6.0-02/bin
执行如下命令:
./nexus run
在控制台看到如下字样表示nexus启动成功:
Started Sonatype Nexus OSS 3.6.0-02
打开浏览器访问:
http://localhost:8081/
默认账号: admin
默认密码: admin123
P.S.
nexus 端口配置:
NEXUS_HOME/sonatype-work/nexus3/etc/nexus-default.properties
# 端口配置
application-port=8081
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-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
nexus 数据存储配置/内存配置
NEXUS_HOME/sonatype-work/nexus3/etc/nexus-default.properties
这两个属性配置存储目录: -Dkaraf.data, -Djava.io.tmpdir
这两个属性配置内存: -Xms1200M, -Xmx1200M
-Xms1200M
-Xmx1200M
-XX:MaxDirectMemorySize=2G
-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass
-XX:+LogVMOutput
-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-XX:-OmitStackTraceInFastThrow
-Djava.net.preferIPv4Stack=true
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc/karaf
-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
-Dkaraf.startLocalConsole=false
三. Nexus仓库介绍与配置
** maven仓库分类 **
-
maven 2(group)
maven仓库组, 将相同策略的仓库聚合,并通过一致的地址提供服务
-
maven 2(hosted)
maven宿主仓库, 用于发布内部项目或第三方非开源jar
-
maven 2(proxy)
maven远程仓库代理, 用于进行远程仓库的jar包缓存, 团队内部成员只要有一人下载过jar包, 其它人就无需再到互联网上远程的仓库中下载, 而可以直接下载nexus缓存的那一份. 节省带宽, 并提高下载速度.
** maven 仓库版本政策 **
- Release: 用来部署组织内部的正式版本项目
- Snapshot: 用来部署组织内部的快照版本项目
- Mixed: 既可以部署组织内部的正式版本项目又可以部署组织内部的快照版本项目
在项目POM.xml中设置的版本号添加SNAPSHOT标识的都会发布为SNAPSHOT版本,没有SNAPSHOT标识的都会发布为Release版本
如:
Release: 4.3.0
Snapshot: 4.3.0-SNAPSHOT
** maven 仓库布局政策 **
- Strict:严格
- Permissive:宽松
四. maven中nexus配置
该配置会使得所有的远程jar包下载都通过nexus进行
MAVEN_HOME/conf/setting.xml
<?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>/Users/pan/maven_repo</localRepository>
<!-- offline
| 当没有网络,只有本地库,又是用maven来管理项目,在编译或者下载第三方Jar的时候,老是去中央仓库上自动下载jar,
| 但实际本地已存在这些jar,导致出问题, 那么就可以试下使用离线模式
|
| 默认值: false
<offline>false</offline>
-->
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<!--配置nexus仓库认证信息-->
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-3rd-party</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<!-- 所有maven下载都通过本地nexus私服 -->
<mirror>
<id>nexus</id>
<name>local nexus maven</name>
<mirrorOf>*</mirrorOf>
<url>http://192.168.2.106:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.2.106:8081/repository/maven-public/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://192.168.2.106:8081/repository/maven-public/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
五. 配置自动化部署构件
在项目的pom文件中配置:
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://127.0.0.1:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
ID名称必须要与settings.xml中Servers配置的ID名称保持一致
部署命令:
mvn deploy
六. 上传第三方jar包
如: 如第三方JAR包 aliyun-sdk-oss-2.2.3.jar
mvn deploy:deploy-file
-DgroupId=com.aliyun.oss
-DartifactId=aliyun-sdk-oss
-Dversion=2.2.3
-Dpackaging=jar
-Dfile=D:\aliyun-sdk-oss-2.2.3.jar
-Durl=http://localhost:8081/repository/3rd-party/
-DrepositoryId=nexus-3rd-party
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2019-03-14 集成 Jenkins 和 TestNG 实现自助式自动化测试平台