项目持续集成环境(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:123.com@10.0.10.53:/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:123.com@10.0.10.53:/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相关信息

 

配置结束!!!


本文转自风一样的码农博客园博客,原文链接:http://www.cnblogs.com/chenpi/p/5715029.html,如需转载请自行联系原作者

相关文章
|
1月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
148 26
|
3月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
166 1
|
3月前
|
Java 应用服务中间件 Maven
idea+maven+tomcat+spring 创建一个jsp项目
这篇文章介绍了如何在IntelliJ IDEA中使用Maven和Tomcat创建一个JSP项目,包括配置Maven依赖、设置Tomcat服务器、编写JSP页面、创建控制器和配置文件,以及项目的运行结果。
276 0
idea+maven+tomcat+spring 创建一个jsp项目
|
3月前
|
jenkins Java 持续交付
Docker搭建jenkins环境
这篇文章详细介绍了如何利用Docker搭建Jenkins环境,包括拉取Jenkins镜像、配置端口映射及初始化设置的步骤。
277 0
Docker搭建jenkins环境
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
106 0
|
3月前
|
Java 应用服务中间件 Linux
tomcat学习二:tomcat部署多个项目:不修改端口和修改端口 两种方式详解
这篇文章详细介绍了在Tomcat服务器上部署多个项目的方法,包括不修改端口和修改端口两种方式。
212 0
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
296 0
|
5月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
116 1
|
4月前
|
jenkins 持续交付 网络安全
利用 Jenkins 实现持续集成与持续部署-代码拉取终端的配置
安装Git、配置用户信息、生成SSH密钥以及在Gitee上创建项目仓库等。
103 0
|
5月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
113 0

热门文章

最新文章