前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ant + Jenkies +Tomcat 自动构建部署Web项目

Ant + Jenkies +Tomcat 自动构建部署Web项目

作者头像
JMCui
发布2018-03-15 16:51:04
1.2K0
发布2018-03-15 16:51:04
举报
文章被收录于专栏:JMCuiJMCui

前言:博主资历尚浅,很多东西都还在刚起步学习的阶段,这几天开发任务比较轻,就在自己window系统下,模拟部署远程服务器,利用Jenkies + Ant + Tomcat 搭建了一个自动发布部署的环境,特分享给大家。如果有哪些说的不对的地方,还请大家不吝赐教。

1、工具版本

Ant:apache-ant-1.9.1

Jenkies:jenkins-2.46.3

Tomcat:apache-tomcat-8.0.43

系统:window7

开发工具:IDEA

2、Web项目

    简述:这里只是在本地简单的构建了一个Web项目,并没有使用Maven或者在Git上托管。

3、在Web工程中加入Ant,利用Ant来自动构建部署

  • 在项目的根目录下新建build.xml
代码语言:javascript
复制
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project name="demo" default="deleteWar" basedir=".">
 3     <property name="build" value="${basedir}/build"/>
 4     <property name="build.class" value="${build}/classes"/>
 5     <property name="src" value="${basedir}/src"/>
 6     <property name="web" value="${basedir}/web"/>
 7     <property name="lib" value="${web}/WEB-INF/lib"/>
 8 
 9     <!--请将下面的路径改为你本地的路径-->
10     <property name="webserver" value="D:\apache-tomcat-8.0.43"/>
11 
12     <!--定义CLASSPACH,编译时用到你外部加入的包-->
13     <path id="classpath">
14         <pathelement location="${src}"/>
15         <fileset dir="${lib}" includes="***.jar"/>
16     </path>
17 
18     <!--删除任务-->
19     <target name="clean" description="删除">
20         <echo message="删除目录"/>
21         <delete dir="${build}"/>
22     </target>
23 
24     <!--创建一个临时目录-->
25     <target name="init" description="创建目录" depends="clean">
26         <echo message="创建目录--以执行"/>
27         <mkdir dir="${build.class}"/>
28     </target>
29 
30 
31     <!--编译java源文件-->
32     <target name="compile" description="编译文件" depends="init">
33         <echo message="编译文件"/>
34         <javac srcdir="${src}" destdir="${build.class}">
35             <classpath refid="classpath"/>
36             <compilerarg line="-encoding GBK "/>
37         </javac>
38     </target>
39 
40     <!--打成WAR包-->
41     <target name="generwar" depends="compile">
42         <echo message="打成WAR"/>
43         <war destfile="${build}/${ant.project.name}.war" webxml="${web}/WEB-INF/web.xml">
44             <fileset dir="web"/>
45             <lib dir="${lib}"/>
46             <classes dir="${build.class}"/>
47         </war>
48     </target>
49 
50 
51     <!--把WAR放到一个指定目录,这里是直接布署到TOMCAT服务器-->
52     <target name="fabu" depends="generwar" description="发布">
53         <copy file="${build}/${ant.project.name}.war" todir="${webserver}/webapps"/>
54     </target>
55 
56 
57     <!--把打好的WAR删除-->
58     <target name="deleteWar" depends="fabu" description="删除服务器上的war">
59         <delete dir="${build}"/>
60     </target>
61 
62     <!--停止tomcat-->
63     <target name="stop_tomcat">
64         <echo>停止tomcat</echo>
65         <exec executable="cmd" dir="${webserver}/bin" failonerror="false" append="true">
66             <env key="CATALINA_HOME" path="${webserver}"/>
67             <arg value="/c shutdown.bat"/>
68         </exec>
69     </target>
70 
71     <!--启动tomcat-->
72     <!--这里做的主要是部署本地Tomcat服务器的过程,差不多的思路是先把war发布到webapps目录下,接着再重启服务器-->
73     <target name="start_tomcat" depends="fabu,stop_tomcat">
74         <echo>启动tomcat</echo>
75         <exec executable="cmd" dir="${webserver}/bin" failonerror="false" append="true">
76             <env key="CATALINA_HOME" path="${webserver}"/>
77             <arg value="/c startup.bat"/>
78         </exec>
79     </target>
80 
81     <!--部署到远程服务器-->
82     <!--这里模拟了一个利用ant部署到远程服务器的过程,server是ftp服务器IP地址,userid和password是ftp服务器的账号
83      和密码,remotedir是你在建立服务器时,为服务器建立的目录,我建立的是D:\apache-tomcat-8.0.43\webapps,fileset
84      是你要上传的文件,要利用ftp上传需要导入两个jar包,commons-net-1.4.0.jar、jakarta-oro-2.0.8.jar
85      -->
86     <target name="deploy" depends="generwar">
87         <ftp server="127.0.0.1"
88              userid="admin" password="123456" remotedir="/">
89             <fileset dir="${build}">
90                 <include name="*.war"/>
91             </fileset>
92         </ftp>
93     </target>
94 </project>
  • 运行Ant来部署项目
  • Ant 的 jar 包导入说明
  •  这里再附属说一下,如何将自己的localhost建立成ftp服务器,我用的是 Quick Easy Ftp Server 4.0.0,下完这个软件后,按照提示下一步、下一步设置好账号和密码即可

4、Jenkies和Ant集成部署项目

  • 自动部署需要一个容器,那Jenkins是怎么知道你的容器的呢?容器插件这个时候就要出场了! 首页-》系统管理-》管理插件 搜索deploy,很快就会找到这个deploy to container plugin,这里博主已经安装好了,就不在安装了,记住安装完记得重启!
  • 构建一个自由风格的Jenkins项目,由于我没有托管Git或者使用maven。源码管理那边,只要将你的源码丢进Jenkins目录中workspace你的工程下即可(只有build一次,才会出现workspace目录)
  •   自动发布部署项目。这里介绍两种方式,一种是利用Ant,一种是利用Jenkins将war包发布到对应服务器的容器中 
  1.  利用Ant发布  
  1. 利用Jenkins发布到对应容器中,无论是远程、还是本地

    备注:此处admin用户,需要具备manager-gui,manager-script,manager-jmx,manager-status权限,否则报错,用户在D:\apache-tomcat-8.0.43\conf 下tomcat-user.xml下配置,新增以下用户

代码语言:javascript
复制
  <role rolename="manager-script" />
  <user username="admin" password="nimda"  roles="manager-script"/>     

        3.build 构建项目查看结果

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档