Maven私服nexus3搭建及使用

一、前言

https://www.cnblogs.com/knowledgesea/p/11190579.html

二、部署Nexus私服

1.常规方式

地址:https://www.sonatype.com/

下载地址: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工具中的模板部署

三、登录验证

http://ip:8081

初始化用户名: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、断点重启后导致服务一直重启失败

image

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 文件夹所有的文件

参考文章

使用Nexus搭建Maven私服

Nexus Repository 搭建及使用

Maven坐标

posted @ 2022-07-28 16:29  黄河大道东  阅读(495)  评论(0编辑  收藏  举报