Maven3搭配Nexus3项目实战全流程记录

项目组使用 Gitlab+Nexus+Maven+Jenkins该套环境构建Java工程
构建流程:

  1. 开发人员提交组件代码业务代码以及相应的 pom 文件到 Gitlab
  2. 运维人员编写Jenkins脚本,构建 组件jar包,并上传至 Nexus 私服。
  3. 运维人员编写Jenkins脚本,根据 pom 文件构建 业务jar包,并部署到服务器上。
    在这里插入图片描述

Mavensettings.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">
  <!-- 本地仓库地址,默认家目录的.m2目录 -->   
  <localRepository>/home/m2</localRepository>

  <pluginGroups>
      <!-- 可以为空 -->
  </pluginGroups>

  <proxies>
      <!-- 可以为空 -->
  </proxies>

  <servers>
     <!-- 这里写nexus私服的仓库,id不能重复 -->
     <!-- 我有三个类型的仓库,我就配置了三个不同的id -->
	<server>  
		<id>baikang-release</id>  
		<username>admin</username>  
		<password>baikang</password>  
	</server>
	<server>  
		<id>baikang-snapshots</id>  
		<username>admin</username>  
		<password>baikang</password>  
	</server> 
	<server>
		<id>baikang-group</id>
		<username>admin</username>
		<password>baikang</password>
	</server>
  </servers>

  <mirrors>
     <!-- 镜像地址,最好写group类型的仓库,比较全 -->
    <mirror>
      <id>baikang-group</id>
      <name>internal nexus repository</name>
      <url>http://192.168.1.11:8081/repository/baikang-group/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>

</settings>

项目的 pom.xml 文件

····
    <dependencies>
        <dependency>
            <groupId>com.cn</groupId>
            <artifactId>sass-base-ws</artifactId>
           <!-- 这里写LATEST,可以一直默认拉取SNAPSHOT库中的最新版本jar包,省去每次改版本号的步骤,
	           当然你的jar包也要传到SNAPSHOT仓库中才行 -->
            <version>LATEST</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <!-- 仓库的id,直接写setting.xml中配置的镜像id即可 -->
            <id>baikang-group</id>
            <name>internal nexus repository</name>
            <url>http://192.168.1.11:8081/repository/baikang-group/</url>
            <snapshots>
                <enabled>true</enabled>
            	<!-- 这个配置一定要写always,这样才能确保maven每次拉取snapshot仓库中的最新的版本 -->
                <updatePolicy>always</updatePolicy>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
····

Jenkins的构建组件配置
在这里插入图片描述

clean install deploy:deploy-file 
  -DrepositoryId=baikang-snapshots
  -DgroupId=com.cn
  -DartifactId=sass-base-ws
  -Dversion=0.0.0.${BUILD_ID}-SNAPSHOT
  -Dpackaging=jar
  -Dfile=../project-ws-jar/sass-ws/sass-base-ws/target/sass-base-ws-0.0.2.jar
  -Durl=http://192.168.1.11:8081/repository/baikang-hosted-snapshot/

命令解释

 - -DrepositoryId=baikang-snapshots     # 需要将组件deploy到的仓库id,我这里部署到snapshot仓库,就写它的id
 - -DgroupId=com.cn			# 坐标
 - -DartifactId=sass-base-ws # 组件的jar包名字
 - -Dversion=0.0.0.${BUILD_ID}-SNAPSHOT  # 组件的jar包版本,BUILD_ID是Jenkins自带的环境变量,为当前构建的id
 - -Dpackaging=jar  # 组件的打包类型
 - -Dfile=../project-ws-jar/sass-ws/sass-base-ws/target/sass-base-ws.jar  # 需要deploy的本地jar包路径
 - -Durl=http://192.168.1.11:8081/repository/baikang-hosted-snapshot/  # 仓库的url

假如如果我用以上命令上传组件的话,在nexus仓库中会是一下形式:
在这里插入图片描述

Jenkins的构建项目配置
在这里插入图片描述

clean install -pl  sass-start  -am -amd 

Guess you like

Origin blog.csdn.net/qq_39680564/article/details/111517384