项目持续集成环境(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,如需转载请自行联系原作者

相关文章
|
Java Maven 微服务
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档——Swagger2 的 maven 依赖
在项目中使用Swagger2工具时,需导入Maven依赖。尽管官方最高版本为2.8.0,但其展示效果不够理想且稳定性欠佳。实际开发中常用2.2.2版本,因其稳定且界面友好。以下是围绕2.2.2版本的Maven依赖配置,包括`springfox-swagger2`和`springfox-swagger-ui`两个模块。
655 0
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
857 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
849 27
|
11月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
547 0
|
Java 应用服务中间件 Apache
在IntelliJ IDEA中使用Maven配置Tomcat环境
此配置方法具有较高的实用性,简单易懂。遵循以上步骤,您将能顺利在IntelliJ IDEA中使用Maven配置Tomcat环境,从而进行Web项目的开发和调试。
1788 18
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
743 11
|
Java 关系型数据库 MySQL
JDK、Tomcat、MariaDB数据库和Profile多环境的配置与使用
以上就是JDK、Tomcat、MariaDB数据库和Profile多环境的配置与使用的基本步骤。这些步骤可能会因为你的具体需求和环境而有所不同,但是基本的思路是一样的。希望这些信息能够帮助你更好地理解和使用这些工具。
428 17
|
监控 前端开发 Java
SpringBoot集成Tomcat、DispatcherServlet
通过这些配置,您可以充分利用 Spring Boot 内置的功能,快速构建和优化您的 Web 应用。
1297 21
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
543 2
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
1775 9

推荐镜像

更多