jenkins服务器需要配置jdk和maven,其中需要将maven中的setting文件仓库地址配置好
<?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">
<localRepository>/usr/share/maven-repo</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
<server>
<id>aaa-release</id>
<username>myname</username>
<password>mypwd</password>
</server>
<server>
<id>bbb-snapshot</id>
<username>myname</username>
<password>mypwd</password>
</server>
</servers>
<mirrors>
<mirror>
<id>aaa-release</id>
<mirrorOf>*</mirrorOf>
<url>http://nexus2.gacrnd.com/repository/aaa-release/</url>
</mirror>
<mirror>
<id>bbb-snapshot</id>
<mirrorOf>*</mirrorOf>
<url>http://nexus2.gacrnd.com/repository/bbb-snapshot/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
<repositories>
<repository>
<id>aaa-release</id>
<url>http://nexus2.gacrnd.com/repository/aaa-release/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>bbb-snapshot</id>
<url>http://nexus2.gacrnd.com/repository/bbb-snapshot/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aaa-release</id>
<url>http://nexus2.gacrnd.com/repository/aaa-release/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>bbb-snapshot</id>
<url>http://nexus2.gacrnd.com/repository/bbb-snapshot/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
单独的一个项目中的pom文件需要配置相关的仓库配置
<profiles>
<profile>
<id>nexus</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>aaa-releases</id>
<url>http://nexus2.gacrnd.com/repository/aaa-release/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>bbb-snapshots</id>
<url>http://nexus2.gacrnd.com/repository/bbb-snapshot/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
pipeline {
agent any
environment {
def repourl = 'https://gitlab.gxxxd.com/bdp-doxxin/basexxe/code/dataxxxry/schexxls.git'
def authCode ='1b4xxxxxxxxx5b5da51'
def jenkinsWorkspace = '/var/lib/jenkins/workspace/'
}
stages {stage ("begin') {
steps (withcredentialsllaitusernamasswordicredentialsid: 9dxxx63c4xxxxxxxxx5c8xxfx4', gitoolName: 'Default')]){
sh """
mvn -version
pwd
# git拉取代码,这种方式可以
mkdir -p /var/lib/jenkins/workspace/xxxx-json-schema-inferrer/test
docker ps -a
docker rm -f maven-xxxx-json-schema-inferrer
#**`-dit`**:这些选项一起使用:
#- `-d`:以后台(分离)模式运行容器。
#- `-i`:允许与容器交互(即使未连接也保持STDIN打开)。
#- `-t`:分配伪TTY(伪终端)。
#**`maven:3.8.4-openjdk-8-slim`**:这是要使用的Docker镜像,指定了Maven版本(3.8.4)和基础镜像(openjdk-8-slim)
#**当你运行这个Docker命令时,Docker引擎会创建一个新的容器实例,该实例是基于`maven:3.8.4-openjdk-8-slim`镜像构建的。由于Docker镜像是预先构建好的,因此它包含了所有Maven和OpenJDK的依赖项以及所需的文件系统结构。在这个命令中,`/bin/bash`是容器启动后要执行的命令,它将启动一个交互式的Bash shell。这意味着你可以在容器内部执行各种命令,例如构建项目、运行测试等
#**1. **`-v /var/lib/jenkins/workspace/xxxx-json-schema-inferrer/test/:/opt/code/test/`** :此选项将本地目录 `/var/lib/jenkins/workspace/xxxx-json-schema-inferrer/test/` 挂载到容器的路径 `/opt/code/test/`。用于在主机和容器之间共享文件。
#1. **`-v /var/lib/jenkins/workspace/xxxx-config/maven/:/usr/share/maven/conf`**:此选项将本地目录 `/var/lib/jenkins/workspace/xxxx-config/maven/` 挂载到容器的路径 `/usr/share/maven/conf`。通常用于提供Maven配置给容器。
#1. **`-v /var/lib/jenkins/workspace/maven/repository/:/root/.m2/repository/`** :此选项将本地Maven存储库目录 `/var/lib/jenkins/workspace/maven/repository/` 挂载到容器的默认Maven存储库位置 `/root/.m2/repository/`。用于缓存Maven构建产物和依赖。
docker run --name maven-xxxx-json-schema-inferrer -dit \
-v /var/lib/jenkins/workspace/xxxx-json-schema-inferrer/test/:/opt/code/test/ \
-v /var/lib/jenkins/workspace/xxxx-config/maven/:/usr/share/maven/conf \
-v /var/lib/jenkins/workspace/maven/repository/:/root/.m2/repository/ \
-w /opt/code/test/ \
maven:3.8.4-openjdk-8-slim /bin/bash
docker exec maven-xxxx-json-schema-inferrer sh -c "cd /opt/code/test/;rm -rf ./*;ls ./"
docker rm -f maven-xxxx-json-schema-inferrer
docker run --name maven-xxxx-json-schema-inferrer -dit \
-v /var/lib/jenkins/workspace/xxxx-json-schema-inferrer/test/:/opt/code/test/ \
-v /var/lib/jenkins/workspace/xxxx-config/maven/:/usr/share/maven/conf \
-v /var/lib/jenkins/workspace/maven/repository/:/root/.m2/repository/ \
-w /opt /code /test / \
maven:3.8.4-openjdk-8-slim /bin/bash
docker exec maven-xxxx-json-schema-inferrer sh -c "cd /opt/code/test/;rm -rf ./*;ls ./"
docker rm -f maven-xxxx-json-schema-inferrer
rm -rf /var/lib/enkins/workspace/xxxx-json-schema-inferrer/test
mkdir -p /var/lib/jenkins/workspace/wanada-json-schema-inferrer/test
ls /var/lib/jenkins/workspace/xxxx-son-schema-inferrer/test
git clone https://gixxxxxmon/json-schema-inferrer.git /var/lib/jenkins/workspace/xxxx-son-schema-inferrer/test
ls /var/lib/enkins/workspace/xxxx-json-schema-inferrer/test
#拉取maven配置
rm -rf /var/lib/jenkins/workspace/wanada-config
mkdir -p /var/lib/jenkins/workspace/wanada-config
git clone https://xxxx/xxxx-config.git /var/lib/jenkins/workspace/xxxx-config
ls /var/lib/jenkins/workspace/wanada-config
docker run --name maven-xxxx-json-schema-inferrer -dit \
-v /var/lib/jenkins/workspace/xxxx-json-schema-inferrer/test/:/opt/code/test/ \
-v /var/lib/jenkins/workspace/xxxx-config/maven/:/usr/share/maven/conf \
-v /var/lib/jenkins/workspace/maven/repository/:/root/.m2/repository/ \
-w /opt/code/test / \
maven:3.8.4-openjdk-8-slim /bin/bash
docker exec maven-xxxx-json-schema-inferrer mvn clean deploy
docker exec maven-xxxx-json-schema-inferrer mvn clean package install -f pom.xml -Dmaven.test.skip-true
docker rm -f maven-xxxx-json-schema-inferrer
"""
echo 'Hello jenkins!
}
}
}
}
}
将以上三个配置都配置好后,代码在编译的时候就会把本身服务上传到私有仓库中