首页  > 世界杯开幕式

nexus全网最详细手把手教程

1、nexus介绍

1、简介

【maven私服】,用于为公司提供私有服务的软件。

它是Sonatype公司的一个产品,叫Nexus,它是Maven的私服。事实上有三种专门的Maven仓库管理软件可以帮助我们创建私服,有Apache的Archiva;JFrog的Artifactory和Sonatype的Nexus。其中Archiva是开源的,Artifactory和Nexus的核心也是开源的。这里我们重点介绍Sonatype公司的Nexus。

2、安装nexus

基于Docker version 20.10.23安装

1、拉取镜像(无需操作)

安装版本:3.36.0

2、创建映射路径

创建如下目录:

同时为目录data授权:

chmod 777 data

3、启动nexus

docker run -d --name nexus3 -p 8081:8081 --restart always -v /usr/local/docker/nexus/data:/nexus-data sonatype/nexus3:3.36.0

4、访问nexus

http://192.168.1.173:8081/ 自己的ip+8081

5、查看登录密码

输出data下的admin.password,里面是admin的密码。

【用户名:admin 密码:复制上面的密码】

【点击:Next】

【点击:Finish】

6、设置仓库

1.创建代理仓库

用来代理aliyun仓库

【3.】

http://maven.aliyun.com/nexus/content/groups/public/ 将该地址填写到上面的红框里。

【下拉到最后:点击Create repository】

2.创建本地快照仓库

3.创建发布版仓库

4.创建仓库组

7、修改配置文件

修改maven的setting.xml文件

两个server的id对应了配置的两个hosted仓库名称

dz13_RELEASE

admin

123456

dz13_SNAPSHOT

admin

123456

nexus

*

http://192.168.3.43:8081/repository/dz13/

nexus

central

http://192.168.3.43:8081/repository/dz13/

true

true

always

central

http://192.168.3.43:8081/repository/dz13/

true

true

always

nexus

【执行一下jenkins,验证一下修改完ali镜像仓库了,原来的流水线代码是否可行】

【注意】

将原来流水线代码产生的文件都清空,在执行本次流水线代码。

8、介绍maven仓库jar类型

1、快照版

快照版jar是正在开发中的,没有经过大量测试的,是临时用的jar。每次提交jar到nexus会生成一个新的快照,而版本号不会改变,引入依赖时会自动引入最新的快照版本。

2、发布版

经过大量测试,已经完成全流程的jar。这个jar是稳定的,放心引用的。

3、本地开发环境配置

1、项目的pom文件配置

my-neuse-releases

Nexus Release Repository

http://192.168.3.43:8081/repository/IntelligentNetwork/

my_repo_snapshot

Nexus Snapshot Repository

http://192.168.3.43:8081/repository/IntelligentNetwork/

2、修改当前工作空间下的maven引用

修改本地仓库maven的setting文件,配置方式和虚拟机中相同。【虚拟机中的setting文件修改了啥,本地仓库的setting文件也要改啥】

如果不修改本地仓库的配置文件,连接不到自己的私服,无法拉取私服中自己上传的jar。

根据路径找的setting文件后,进行修改。

3、修改本地项目打包插件,同时git提交到gitee仓库里:

#更换一下项目中的打包插件,同时 上传到gitee仓库里。

org.apache.maven.plugins

maven-compiler-plugin

3.6.0

1.8

1.8

org.apache.maven.plugins

maven-source-plugin

3.0.0

true

compile

jar

4、Jenkins上传jar到nexus

1、流水线代码

node {

stage('pull code'){

git branch: 'master', credentialsId: '9a19cd80-bb02-4e8b-b126-f023bdebea7b', url: 'https://gitee.com/wztsl/dz12-demo01.git'

}

stage('compile'){

dir('/var/lib/jenkins/workspace/jar_demo01'){

sh 'mvn clean install'

}

}

stage('upload jar'){

sh "mvn deploy:deploy-file \

-DgroupId=com.jr \

-DartifactId=testNginx \

-Dversion=1.0-SNAPSHOT \

-Dpackaging=jar \

-Dfile=/var/lib/jenkins/workspace/jenkinsDemo1/target/testNginx-1.0-SNAPSHOT.jar \

-Dsources=/var/lib/jenkins/workspace/jenkinsDemo1/target/testNginx-1.0-SNAPSHOT-sources.jar \

-DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/com/jr/testNginx/1.0-SNAPSHOT/testNginx-1.0-SNAPSHOT.pom \

-DrepositoryId=dz14_SNAPSHOT \

-Durl=http://192.168.43.8:8081/repository/dz14_SNAPSHOT/"

}

}

配置共有9项,4+3+2

4个工程自己的配置,这四个对应了pom.xml文件中的配置

-DgroupId

-DartifactId

-Dversion

-Dpackaging(是包的类型,基本都会配置成jar,少数会配置成pom。jar就是一个依赖的jar包,pom是做依赖传递的)

3个要上传的文件

-Dfile:jar包

-Dsources:源码jar包

-DpomFile:.pom文件,做依赖传递

2个私服仓库配置

-DrepositoryId:仓库名称

-Durl:仓库地址

【前4个元素值:】

【中间3个元素值:】

【后面2个元素值:】

【最后执行流水线代码前,先删除掉之前产生的文件代码,就可以执行成功了】

第一阶段:从git下载代码

stage('pull code'){

git branch: 'master', credentialsId: '9a19cd80-bb02-4e8b-b126-f023bdebea7b', url: 'https://gitee.com/wztsl/dz12-demo01.git'

}

第二阶段:maven打包

由于最开始用来阿里云镜像,导致和私服产生了冲突,如果不配置私服时可以打包成功,配置私服就失败,可以把本地仓库中的jar删除,重新在私服下拉取依赖。

stage('compile'){

dir('/var/lib/jenkins/workspace/jar_demo01'){

sh 'mvn clean install'

}

}

#更换一下项目中的打包插件,同时 上传到gitee仓库里。

org.apache.maven.plugins

maven-compiler-plugin

3.6.0

1.8

1.8

org.apache.maven.plugins

maven-source-plugin

3.0.0

true

compile

jar

第三阶段:上传nexus

注意:Dfile和Dsources不能用本地仓库中的,要用代码下target下的jar。如果用本地仓库会导致自己替换自己的问题,出现报错,无法上传。

stage('upload jar'){

sh "mvn deploy:deploy-file \

-DgroupId=com.jr \

-DartifactId=testNginx \

-Dversion=1.0-SNAPSHOT \

-Dpackaging=jar \

-Dfile=/var/lib/jenkins/workspace/jenkinsDemo1/target/testNginx-1.0-SNAPSHOT.jar \

-Dsources=/var/lib/jenkins/workspace/jenkinsDemo1/target/testNginx-1.0-SNAPSHOT-sources.jar \

-DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/com/jr/testNginx/1.0-SNAPSHOT/testNginx-1.0-SNAPSHOT.pom \

-DrepositoryId=dz14_SNAPSHOT \

-Durl=http://192.168.43.8:8081/repository/dz14_SNAPSHOT/"

}

g=jar

-Dfile=/var/lib/jenkins/workspace/jenkinsDemo1/target/testNginx-1.0-SNAPSHOT.jar

-Dsources=/var/lib/jenkins/workspace/jenkinsDemo1/target/testNginx-1.0-SNAPSHOT-sources.jar

-DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/com/jr/testNginx/1.0-SNAPSHOT/testNginx-1.0-SNAPSHOT.pom

-DrepositoryId=dz14_SNAPSHOT

-Durl=http://192.168.43.8:8081/repository/dz14_SNAPSHOT/"

}