Maven私服nexus3搭建及使用
一、前言
https://www.cnblogs.com/knowledgesea/p/11190579.html
二、部署Nexus私服
1.常规方式
下载地址:https://www.sonatype.com/download-nexus-repo-oss
已下载至阿里云盘
版本/收费/免费:Nexus Repository Manager 仓库管理有2个版本,专业版和oss版,oss版是免费的,专业版是收费的。
官方安装文档:https://help.sonatype.com/repomanager3/installation/installation-methods
修改web管理页面的启动端口vim ./etc/nexus-default.properties
./nexus run: 在前台启动Nexus服务
./nexus start: 在后台启动Nexus服务
./nexus status:查看Nexus运行状态
./nexus stop: 停止后台的Nexus服务
./nexus restart: 重新启动后台的Nexus服务
2.Dockerfile方式部署
文档地址:https://hub.docker.com/r/sonatype/nexus3
部署命令
docker run \
-d \
-p 8081:8081 \
--name nexus \
-e INSTALL4J_ADD_VM_PARAMS="-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" \
sonatype/nexus3
3.使用portainer工具中的模板部署
三、登录验证
初始化用户名:admin
进入容器内部执行命令cat /nexus-data/admin.password
查看初始化密码
四、配置Nexus
4.1配置nexus的web服务允许匿名访问
4.2配置nexus中央仓库的镜像地址
此处使用阿里云的镜像地址:http://maven.aliyun.com/nexus/content/groups/public
4.3配置仓库的发布策略
五、上传jar包到私服上
六、配置Maven
6.1.修改Maven全局配置
ps:配置全局maven配置文件settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>D:\jtzl-myworkspace\env\mvn-repository</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers>
<server>
<id>releases</id>
<username>dev</username>
<password>dev</password>
</server>
<server>
<id>snapshots</id>
<username>dev</username>
<password>dev</password>
</server>
</servers>
<mirrors>
<mirror>
<id>public</id>
<name>public</name>
<mirrorOf>*</mirrorOf>
<url>http://192.168.2.201:6701/repository/maven-public/</url>
</mirror>
<mirror>
<id>releases</id>
<name>releases</name>
<mirrorOf>releases</mirrorOf>
<url>http://192.168.2.201:6701/repository/maven-releases/</url>
</mirror>
<mirror>
<id>snapshots</id>
<name>snapshots</name>
<mirrorOf>snapshots</mirrorOf>
<url>http://192.168.2.201:6701/repository/maven-snapshots/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jhl</id>
<!--工件仓库配置属性-->
<repositories>
<repository>
<id>jhl</id>
<name>jhl nexus Repository</name>
<url>http://192.168.2.201:6701/repository/maven-public/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<!--插件仓库配置属性-->
<pluginRepositories>
<pluginRepository>
<id>jhl</id>
<name>jhl nexus plugin Repository</name>
<url>http://192.168.2.201:6701/repository/maven-public/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--激活id为jhl的profile配置内容-->
<activeProfile>jhl</activeProfile>
</activeProfiles>
</settings>
配置完成后打开IDEA如下图所示
6.2修改Maven局部配置(自动上传打包后的工件)
【注意】这是发布工程的pom.xml配置
ps:配置工程项目中的pom.xml文件,注意:maven的全局配置servers配置的id要与Maven局部配置的distributionManagement中repository配置项的id严格保持一致
<distributionManagement>
<repository>
<id>releases</id>
<name>releases</name>
<url>http://192.168.8.11:49157/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>snapshots</name>
<url>http://192.168.8.11:49157/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
点击mvn deploy即可将打包后的工件发布到nexus私服上
6.3 单独在某个项目指定仓库地址,使用自己上传到nexus私服中的公共组件使用pom.xml配置示例
<repositories>
<repository>
<id>public</id>
<name>public</name>
<url>http://192.168.2.201:6701/repository/maven-public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
七、使用阿里云maven配置
https://www.cnblogs.com/hhddd-1024/p/16028544.html#maven-中央仓库配置示例
八、问题处理
1、断点重启后导致服务一直重启失败
ERROR [FelixStartLevel] *SYSTEM org.apache.karaf.deployer.features.FeatureDeploymentListener - Unable to update deployed features for bundle: org.apache.karaf.features.extension - 4.3.6
参考官方社区给出的解决方案:https://support.sonatype.com/hc/en-us/articles/4403663666835
初始化nexus安装目录下的 etc/karaf 文件夹所有的文件