Linux使用nexus配置流水线
1、修改配置文件
修改maven的setting.xml文件
两个server的id对应了配置的两个hosted仓库名称
<server>
<id>dz13_RELEASE</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>dz13_SNAPSHOT</id>
<username>admin</username>
<password>123456</password>
</server>
<!-- 删除阿里云的镜像,用我们自己的nexus地址 -->
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.3.43:8081/repository/dz13/</url>
</mirror>
<!-- 配置一套环境 -->
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://192.168.3.43:8081/repository/dz13/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://192.168.3.43:8081/repository/dz13/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<!-- 启用刚才配置的一套环境 -->
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
2、maven仓库jar类型
1、快照版
快照版jar是正在开发中的,没有经过大量测试的,是临时用的jar。每次提交jar到nexus会生成一个新的快照,而版本号不会改变,引入依赖时会自动引入最新的快照版本。
2、发布版
经过大量测试,已经完成全流程的jar。这个jar是稳定的,放心引用的。
3、本地开发环境配置
1、项目的pom文件配置
<!--私服配置-->
<distributionManagement>
<repository>
<id>my-neuse-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.3.43:8081/repository/IntelligentNetwork/</url>
</repository>
<snapshotRepository>
<id>my_repo_snapshot</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.3.43:8081/repository/IntelligentNetwork/</url>
</snapshotRepository>
</distributionManagement>
2、修改当前工作空间下的maven引用
修改本地仓库maven的setting文件,配置方式和虚拟机中相同。【虚拟机中的setting文件修改了啥,本地仓库的setting文件也要改啥】
如果不修改本地仓库的配置文件,连接不到自己的私服,无法拉取私服中自己上传的jar。
根据路径找的setting文件后,进行修改。
3、修改本地项目打包插件,同时git提交到gitee仓库里:
#更换一下项目中的打包插件,同时 上传到gitee仓库里。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
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=org.jsoft \
-DartifactId=demo-helloworld \
-Dversion=0.0.1-SNAPSHOT \
-Dpackaging=jar \
-Dfile=/var/lib/jenkins/workspace/jar_demo01/target/demo-helloworld-0.0.1-SNAPSHOT.jar \
-Dsources=/var/lib/jenkins/workspace/jar_demo01/target/demo-helloworld-0.0.1-SNAPSHOT-sources.jar \
-DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/org/jsoft/demo-helloworld/0.0.1-SNAPSHOT/demo-helloworld-0.0.1-SNAPSHOT.pom \
-DrepositoryId=dz12_SNAPSHOT \
-Durl=http://192.168.1.173:8081/repository/dz12_SNAPSHOT/"
}
}
第一阶段:从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仓库里。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
第三阶段:上传nexus
注意:Dfile和Dsources不能用本地仓库中的,要用代码下target下的jar。如果用本地仓库会导致自己替换自己的问题,出现报错,无法上传。
stage('upload jar'){
sh "mvn deploy:deploy-file \
-DgroupId=org.jsoft \
-DartifactId=demo-helloworld \
-Dversion=0.0.1-SNAPSHOT \
-Dpackaging=jar \
-Dfile=/var/lib/jenkins/workspace/jar_demo01/target/demo-helloworld-0.0.1-SNAPSHOT.jar \
-Dsources=/var/lib/jenkins/workspace/jar_demo01/target/demo-helloworld-0.0.1-SNAPSHOT-sources.jar \
-DpomFile=/usr/local/maven/apache-maven-3.3.9/repository/org/jsoft/demo-helloworld/0.0.1-SNAPSHOT/demo-helloworld-0.0.1-SNAPSHOT.pom \
-DrepositoryId=dz12_SNAPSHOT \
-Durl=http://192.168.1.173:8081/repository/dz12_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:仓库地址
原文地址:https://blog.csdn.net/wang_san_sui_/article/details/142449066
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!