项目持续集成环境(jenkins + SVN + maven + tomcat)

整体流程

每次SVN上代码有变动,触发自动构建动作,并部署到服务器的tomcat上,具体流程:

1、SVN上提交代码修改

2、maven执行Goals

3、将web工程打成war包

4、关闭服务器的tomcat,拷贝war包到服务器tomcat的webapps目录,启动tomcat

项目相关配置

因为我们使用的是maven工程,所以配置下pom.xml就可以啦,重点关注build的配置,如下:

    <build>
        <finalName>dss</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.0</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
            </plugin>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <configuration>
                    <target>
                        <ant antfile="./deploy/deploy.xml">
                            <target name="deploy" />
                        </ant>
                    </target>
                </configuration>
            </plugin>
        </plugins>
    </build>

使用maven-antrun-plugin插件,可以执行ant target,方便拷贝文件,执行sh脚本、linux命令等。这里的target被定义在deploy.xml文件里,如下:

<?xml version="1.0" ?>
<project name="deploy_war" default="deploy" basedir="."> 

    <property environment="env"/>  

    <target name="deploy">
        <echo>start deploy</echo>
        <path id="deploy.classpath">
            <fileset dir="./deploy/lib">
               <include name="**/*.jar"/>
            </fileset>
        </path>
        <taskdef name="sshexec" classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec" classpathref="deploy.classpath" />
        <taskdef name="scp" classname="org.apache.tools.ant.taskdefs.optional.ssh.Scp" classpathref="deploy.classpath" /> 

        <echo>start stopping tomcat</echo>
        <scp file="./deploy/stopdsstomcat.sh" todir="root:[email protected]:/usr/local/dss-tomcat-7.0.47/bin" trust="true"/>
        <sshexec host="10.0.10.53" username="root"  password="123.com" trust="true"
           command="cd /usr/local/dss-tomcat-7.0.47/bin;chmod 777 *.sh; ./stopdsstomcat.sh" />   

        <echo>start copying war</echo>
        <scp file="./target/dss.war" todir="root:[email protected]:/usr/local/dss-tomcat-7.0.47/webapps" trust="true"/>    

        <echo>start starting tomcat</echo>
        <sshexec host="10.0.10.53" username="root"  password="123.com" trust="true" command="cd /usr/local/dss-tomcat-7.0.47/bin;./startup.sh;rm -rf stopdsstomcat.sh;"/>
    </target> 

</project> 

几点说明:

1、指定依赖的jar包路径   //path

2、定义第三方任务    //taskdef

3、将sh脚本传到远程服务器上,执行该脚本(该脚本主要是关闭tomcat,并删除webapps下的war包)  //scp sshexec

4、拷贝war包到远程服务器

5、启动tomcat,部署完成。

sh脚本如下,用于关闭tomcat,删除war包,这里之所以采用杀掉进程的方式,而不使用tomcat自带的shutdown脚本,是因为当tomcat已经关闭的时候,执行shutdown.sh会报错:

#!/bin/bash

#kill tomcat pid
USER=`whoami`
pidlist=`ps -ef|grep apache-tomcat-7.0.47|grep $USER|grep -v "grep"|awk ‘{print $2}‘`
#ps -u $USER|grep "tomcat"|grep -v "grep"

if [ "$pidlist" = "" ]
then
  echo "no tomcat pid alive"
else
  for pid in ${pidlist}
 {
   kill -9 $pid
 echo "KILL $pid:"
 echo "service stop success"

  }
fi

cd /usr/local/dss-tomcat-7.0.47/webapps/;
rm -rf dss.war;
echo "remove dss.war"
rm -rf dss;
echo "remove dss folder"

以上就是我们工程的配置了。

jenkins配置

首先,下载部署jenkins,其实就是一个java web工程;

至于jenkins的配置,主要在界面上配配即可:

我们新建一个maven的job,在配置界面:

配置jdk版本,svn相关信息

配置触发构建的条件

配置maven相关信息

配置结束!!!

时间: 2024-10-24 15:16:42

项目持续集成环境(jenkins + SVN + maven + tomcat)的相关文章

使用Gradle构建构建一个Java Web工程及持续集成环境Jenkins配置

安装Eclipse插件——Buildship 什么是Buildship? Buildship能方便我们通过Eclipse IDE创建和导入Gradle工程,同时还能执行Gradle任务. Eclipse上安装Buildship 建议直接去Eclipse market处下载,简单方便,如下图: Buildship的更多信息 请参考以下链接,有教程,比较简单, 主要内容: 如何导入Gradle工程, 如何创建Gradle工程, 如何执行Gradle任务, 等... http://projects.e

自动化测试项目持续集成到jenkins

之前项目将接口自动化项目持续集成到了jenkins上,这次专门写篇文章记录下. 持续集成时,主要分为以下几个步骤: 1. 服务器安装jdk:2.maven的安装及配置:3.git的安装及配置:4.jenkins的安装及运行:5.将接口自动化项目持续集成到jenkins:6.在线测试报告的产出 一.jdk安装 这个网上有很多教程,本文不再赘述. 二.maven的安装和配置 1. 下载压缩包,使用1.1或者1.2都可以: 1.1 通过自己的电脑将压缩包上传至服务器: a. 进入maven官网下载 b

持续集成环境Jenkins的搭建和使用

这几天试着搭了个持续集成环境,我使用的是Jenkins,它的前身是Hadson,因为被Oracle收购了,所以换个名字继续开源,这个有点像MySQL. 持续集成总是跟敏捷开发什么的搞在一起,显得很高大上,其实它就是一个后台服务+web管理配置页面,它可以自动化(定时或事件触发)地执行某项任务,比如编译程序.打包程序.自动发布等等.这个在web开发或者大项目的多人合作上面很有帮助.只要配置好了,然后可以个人做个人的,Jenkins会自动的从svn或git上面获取最新的代码,整合编译发布.相当于主程

jenkins + svn + maven + tomcat 持续集成引擎

Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎. 通俗的来讲,jenkins就是一个可以实现自动化部署的一个插件, 对于我来说,也是应用在系统部署上. 废话不多说,直接进入我们的安装步骤吧 1.安装JDK,maven环境搭建 因为考虑到jenkins的实际应用场景,我们需要把这些基础环境先安装完成. jdk安装比较简单不做赘述,maven环境借用了osc其他大侠的博客内容, 试了下安装成功. maven官网下载安装包:http://maven.apache.org/downl

Jenkins+SVN+maven+Tomcat构建自动化集成任务

安装Jenkins方法详解:https://www.cnblogs.com/lizhe860/p/9901257.html 一.安装maven插件 1.依次进入系统管理→插件管理→可选插件, 找到Maven Integration,并勾选,点击立即安装. 2.点击[新建任务],会发现多了一个选项,如下图. 二.全局工具配置 1.配置jdk 2.配置maven 三.新建maven项目 1.选择[构建一个maven项目] 2.配置SVN 3.构建触发器定时 Poll SCM(代码有更新时触发). B

windows 下搭建持续集成环境jenkins+git

知识准备:参考上一篇博客的资料调查 http://blog.csdn.net/aaashen/article/details/46550121 1 下载安装: 从jenkins 官网http://jenkins-ci.org/ 上下载windows 下的zip文件.可以稳定版的1.609.1.zip.下载后解压,点击setup.exe,一路next,即可安装成功.可以在浏览器中localhost:8080,出现jenkins页面. 亦可以下载war包,用java -jar jenkins.war

Jenkins+maven+svn+tomcat 持续集成环境快捷部署

搭建持续集成环境 jenkins + maven + svn + tomcat 实现自动编译打包部署 1.环境准备 (1)JDK1.8.0_131                    #不低于1.7版本,这里用最新版本 (2)Apache Maven 3.3.9        #可以选择3.2.5或者3.3.9:不要使用3.5.0版本!! (3)SVN客户端(Subversion 1.6.11)         #程序版本控制SVN1.6.11 (4)Tomcat1.7(apache-tomc

Jenkins构建Android项目持续集成之findbugs的使用

题外话 这篇本来和之前的系列要一起出的,但是因为中间公司要发布一个版本,给耽搁了,今天工作做完了,又闲了下来.所以就又来继续jenkins构建Android项目持续集成系列的findbugs篇. Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.这组缺陷模式是可配置的,通过配置,可以过滤掉一些我们不想或不需要检测的问题. findbugs在gra

使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(二)

前言     上一篇随笔Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)介绍maven和nexus的环境搭建,以及如何使用maven和nexus统一管理库文件和版本,以及怎么将自己的模块上传至nexus私服,供其他模块引用.下面将主要介绍如何利用Jenkins.SVN.Tomcat以及Sonar来完成项目的自动化编译.测试和发布,以及检查项目的代码质量. 利器Jenkins     Jenkins源于另外一个持续集成工具Hudson,Hudson在o