Jenkins 搭建 Spring Cloud Maven 自动打包

1、什么是Jenkins

  • Jenkins是一个开源软件项目,是基于Java开发的一种自动化测试和持续集成、发布工具。

2、Jenkins 的优点

  • 易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;
  • 易配置:提供友好的GUI配置界面;
  • 变更支持:Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;
  • 支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;
  • 集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情);
  • JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;
  • 支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;
  • 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件等构建记录;
  • 支持第三方插件:使得 Jenkins 变得越来越强大;

3、什么是持续集成(CI)

  • 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能在不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。
  • 持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

4、持续集成特点

  • 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
  • 需要有专门的集成服务器来执行集成构建;
  • 需要有代码托管工具支持;

5、持续集成作用

  • 保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
  • 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;

6、Jenkins 应用场景

  • 持续、自动地构建/测试软件项目。
  • 监控一些定时执行的任务。

7、Jenkins 如何安装 下面借用 别人博客:https://www.cnblogs.com/hanmk/p/6808932.html

 

下面开始 记录博客内容

  项目要求 根据 commitId 下载git 代码 (没有找到具体 jenkins 插件 所以全使用shell编写脚本完成功能)

1、因为每次都根据commitId 下载的代码 那么需要在执行之前删除掉 历史文件

 

2、执行 Shell 别忘了 代码开始加上( #!/bin/bash -x 代表这是shell脚本 )

#!/bin/bash -x
HARBOR_IP='192.168.155.100:8082'         # 镜像名字
REPOSITORIES='projectName'               # 项目名字
HARBOR_USER=''                           # 私服账号
HARBOR_USER_PASSWD=''                    # 私服密码
WORKSPACE='/var/lib/jenkins/workspace/'  # linux 路径
DOCKER_TAG=''                            # docker tag
GIT_ACCOUNT=''                           # git账号
GIT_PWD=''                               # git密码

echo 读取/var/rc下配置文件                 # 我在linux服务器上放了个配置文件
#切换到根目录
cd /
#切换到配置文件目录
cd /var/rc
#读取第一行内容
CONFIG_LINE_CONTENT=$(sed -n 4p project_config.txt)
#截取需要的内容
#项目名字
PROJECT_NAME=${CONFIG_LINE_CONTENT%%|*}
#截取左面第一个|之后所有内容
LINE=${CONFIG_LINE_CONTENT#*|}
#分支
BRANCH=${LINE%%|*}
#截取左面第一个|之后所有内容
LINE=${LINE#*|}
#commitID
GIT_COMMIDIT=${LINE%%|*}

#核对项目名字
if [ ${} == '' ]; then               

  echo 下载 projectName 项目代码 --- start
  #切换工作目录
  cd /
  cd /var/lib/jenkins/workspace/projectName
  echo 创建仓库
  git init
  echo 克隆master分支代码
  git clone -b ${BRANCH} http://${GIT_ACCOUNT}:${GIT_PWD}。。。。。。.git
  echo 下载 commitid 之前所有代码
  git checkout ${GIT_COMMIDIT}
  echo 下载  项目代码 --- end

  echo 打包rc-ts-vo --- start
  echo 切换目录到pom所在文件夹
  cd /
  cd /var/lib/jenkins/workspace/
  mvn clean install 
  echo 打包rc-ts-vo --- end
  
  #echo 上传rc-ts-vo --- start
  #mvn clean deploy -U
  #echo 上传rc-ts-vo --- end
  
  echo 打包rc-ts-client --- start
  echo 切换目录到pom所在文件夹
  cd ..
  cd rc-ts-client
  mvn clean install 
  echo 打包rc-ts-client --- end
  
  #echo 上传rc-ts-client --- start
  #mvn clean deploy -U
  #echo 上传rc-ts-client --- end

    echo 操作docker私服 ---开始
    echo 切换目录
    cd projectName
    #DOCKER_TAG=$(cat version.txt)
    DOCKER_TAG='v1.3'
    echo 项目构建docker镜像之前先打成jar包
    mvn clean install 
    echo 拉取镜像,发布
    echo docker 私有仓库登录
    docker login -u ${HARBOR_USER} -p ${HARBOR_USER_PASSWD} ${HARBOR_IP}
    echo docker 打成镜像
    docker build -t ${HARBOR_IP}/${REPOSITORIES}:${DOCKER_TAG} .
    echo docker 推送到私服
    docker push ${HARBOR_IP}/${REPOSITORIES}:${DOCKER_TAG}
    echo 操作docker私服 ---结束

 
  

 



fi

以上是jenkins 操作 linux、git、docker 全部代码 下面贴上我利用插件 操作远程服务器上docker容器

找到Jenkins 插件 Execute shell script on remote host using ssh 

SSH site 这是目标主机 需要在系统设置里面设置

Command 这是在目标主机上执行的shell

#!/bin/bash -x

REPOSITORIES='projectName'
HARBOR_IP='192.168.155.100:8082'
WORKSPACE='/var/lib/jenkins/workspace/'
DOCKER_TAG='vyhj'

# Stop container, and delete the container.
CONTAINER_ID=`docker ps | grep ${REPOSITORIES} | awk '{print $1}'`
echo 容器ID ${CONTAINER_ID}
if [ -n "${CONTAINER_ID}" ]; then
docker stop ${CONTAINER_ID}
docker rm ${CONTAINER_ID}
else #如果容器启动时失败了,就需要docker ps -a才能找到那个容器
CONTAINER_ID_IAMGES=`docker ps -a | grep ${REPOSITORIES} | awk '{print $1}'`
if [ -n "${CONTAINER_ID_IAMGES}" ]; then  # 如果是第一次在这台机器上拉取运行容器,那么 
docker ps -a也是找不到这个容器的
docker rm ${CONTAINER_ID_IAMGES}
fi
fi

 # Delete godseye_web image early version.
IMAGE_ID=`docker images | grep ${REPOSITORIES} | awk '{print $3}'`

echo 镜像ID ${IMAGE_ID}

if [ -n "${IMAGE_ID}" ]; then
docker rmi ${IMAGE_ID}
fi

echo 私有仓下载镜像
# Pull image.
docker pull ${HARBOR_IP}/${REPOSITORIES}:${DOCKER_TAG}

echo 创建容器

# Run.
docker run -d --name ${REPOSITORIES} -p 9003:9003 ${HARBOR_IP}/${REPOSITORIES}:${DOCKER_TAG}

最后贴上一个 我读取 commitId、项目名、分支名 文件格式

projectName|master|7ecb342f56e67cdfa6f05ea29aff5578840dffbd|end

 

转载于:https://www.cnblogs.com/yi1036943655/p/10979637.html

### 回答1: Jenkins是一个开源的自动化部署工具,可以用来部署Spring Cloud应用程序。具体步骤如下: 1. 在Jenkins中创建一个新的任务,选择“构建一个自由风格的软件项目”。 2. 在“源代码管理”中选择你的代码仓库,并设置好分支和认证信息。 3. 在“构建触发器”中选择适当的触发器,如定时构建或代码提交触发构建。 4. 在“构建环境”中设置好Java环境和Maven环境。 5. 在“构建”中添加Maven构建步骤,并设置好构建参数和Maven命令。 6. 在“后置构建步骤”中添加部署步骤,如使用SSH插件将构建好的应用程序上传到服务器并启动。 7. 保存并运行任务,查看部署结果。 需要注意的是,Jenkins的部署过程需要根据具体的应用程序和部署环境进行调整和优化。 ### 回答2: Jenkins是一个流行的持续集成工具,可在云端环境中运行分布式部署。而Spring Cloud是一个开源的微服务框架,可以帮助开发人员构建和管理分布式系统。在这个中心化的大系统中,jenkinsspring cloud的结合将极大地优化持续集成和云端环境的扩展性。 具体来说,jenkinsspring cloud的结合可以分为以下几个步骤: 1. 安装和配置jenkins:在本地PC或者云端主机安装Jenkins,配置好默认的系统设置和插件,以便支持向Git或其他版本控制源码管理库推送的代码更新。 2. 在jenkins中设置构建打包命令:在jenkins构建项目中,可以通过命令行设置需要运行的Maven(或Gradle、Ant等)任务来编译、打包和测试我们的代码。在这个任务中,我们需要设置Spring Boot应用程序所需的Java参数,例如服务器端口、数据库连接等。 3. 通过jenkins部署spring cloudjenkins可以使用部署管道或自动构建来部署容器化的Spring Boot应用程序。我们可以使用Docker容器和Kubernetes容器集成进行容器化部署,也可以使用CD或CI的流水线支持自动化部署。 4. 使用jenkins进行持续测试和监控:jenkins可以配置和运行不断集成的测试套件,例如Junit、Selenium等,以确保我们的代码质量和功能正常。此外,jenkins还可以根据应用程序的监控数据和日志实现应用程序性能故障排除,持续监控服务的运行状态,及时提供解决方案。 总的来说,jenkinsspring cloud的结合将帮助我们简化持续集成和云端部署优化的流程,为我们构建和管理分布式系统提供更好的工具和模板。 ### 回答3: Jenkins是一种流行的开源工具,可以用于自动构建、测试和部署软件项目。Spring Cloud是一个流行的微服务框架,它提供了一套工具来构建和管理分布式系统。在这篇文章中,我将会说明如何在Jenkins上部署Spring Cloud。 1. 安装Jenkins 在开始之前,我们需要首先安装JenkinsJenkins可以在官网上下载,也可以通过管理器进行安装。安装完成后,建议配置好Jenkins的安全设置,以确保远程访问和控制权的安全性。 2. 安装Spring Cloud插件 Jenkins可以通过插件来扩展其功能。我们需要安装Spring Cloud插件,以便在Jenkins中使用Spring Cloud。插件可以在Jenkins插件管理器中进行搜索和安装。 3. 创建Jenkins项目 在Jenkins中,我们需要创建一个新项目,以便执行Spring Cloud构建和部署。选择"新建项目",然后选择"自由风格"。在项目配置中,我们可以定义代码仓库、构建触发器、构建步骤、环境变量等。在构建步骤中,我们可以使用Maven命令或Shell脚本来构建和部署Spring Cloud应用程序。 4. 配置Jenkins构建步骤 在构建步骤中,我们需要定义Spring Cloud构建和部署命令。一般来说,这括以下步骤: - 检出代码仓库 - 配置Maven环境 - 执行Maven命令进行编译、测试和打包 - 部署应用程序,可以通过执行Docker命令或者将WAR文件上传到Tomcat等运行环境中。 5. 配置Jenkins的触发器 触发器是指何时开始构建项目的逻辑。我们可以基于定时器、代码提交和其他事件来触发构建。例如,我们可以基于Git提交来触发构建,以便在代码更新时自动部署Spring Cloud应用程序。 6. 运行Jenkins项目 当配置完毕后,我们需要点击"保存并构建",以便Jenkins开始执行构建。我们可以查看构建日志,检查构建过程和结果。如果构建成功,我们可以使用Jenkins提供的自动化部署工具,来自动部署Spring Cloud应用程序到目标服务器。 总结 通过本文,我们了解了如何在Jenkins上部署Spring Cloud应用程序。Jenkins是一个功能强大的工具,可以帮助我们简化软件项目的构建、测试和部署。结合Spring Cloud框架,可以构建出更加强大、可靠和灵活的微服务应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值