IT干货网

Nexus 3.x 安装/配置/使用

developer 2022年03月04日 DevOps 157 0

写在前面

  • 博客中的nexus是基于 nexus-3.6.0-02 如与读者的有差异请自行参考修正.
  • 部分内容, 参考了网上其它文章, 但本博客的内容, 都是本人亲测可用的.
  • 最后, 如有雷同, 纯属抄袭( ^-^) , 欢迎转载, 如有问题欢迎, 留言咨询.

时间: 2017-10-21 15:05

一. nexus的作用

  • 外网maven资源库访问代理
  • 外网maven资源库镜像
  • 内部maven项目发布
  • 第三方非开源jar发布

二. nexus下载/安装/启动

下载

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

nexus界面

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 

七. 参考文章

Maven私服仓库管理之Nexus 3.x

使用Nexus创建私服


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

GitLab CI/CD自动化部署(持续集成)