利用Ant脚本生成war包的详细步骤
使用ant脚本前的准备
1、下载一个ant安装包。如:apache-ant-1.8.4-bin.zip。解压到E盘。
2、配置环境变量。新增ANT_HOME:E:\apache-ant-1.8.4;PATH增加:E:\apache-ant-1.8.4\bin。
3、检查ant是否配置完成。运行->cmd输入:ant -version。查看是否打印ant的版本号。
打包的实质
生成jar包的实质
1、编译工程src文件夹下的java文件,生成相应的class文件。
2、将所有的class文件集合成jar包。
生成war包的实质
1、编译工程src文件夹下的java文件,生成相应的class文件。
2、将工程WebContent下的除了class文件和jar包以外的文件,全部拷贝到war包的对应目录下。
3、将编译生成的class文件,全部拷贝到war包WEB-INF/classes文件夹下。
4、将工程lib中的jar包,全部拷贝到war包的WEB-INF/lib下。最后压缩成war包。
一个生成war包的ant脚本代码
<?xml version="1.0" encoding="UTF-8"?> <!-- 定义一个工程,默认任务为warFile。 -->
<project name="awp" default="warFile" basedir="."> <!-- 定义属性,打成war包的名称。 -->
<property name="warFileName" value="awp.war"></property> <!-- 定义路径,编译java文件时用到的jar包。 -->
<path id="project.lib">
<fileset dir="${basedir}/lib">
<include name="**/*.jar"/>
</fileset>
</path> <!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->
<target name="clean">
<delete dir="${basedir}/src/main/webapp/WEB-INF/classes" />
<mkdir dir="${basedir}/src/main/webapp/WEB-INF/classes" />
</target> <!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->
<target name="build" depends="clean">
<javac srcdir="${basedir}/src/main/java" destdir="${basedir}/src/main/webapp/WEB-INF/classes" includeantruntime="false" source="1.6" target="1.6">
<classpath refid="project.lib">
</classpath>
</javac> <!--复制src/main/java下非java文件到/src/main/webapp/WEB-INF/classes--> <copy todir="${basedir}/src/main/webapp/WEB-INF/classes">
<fileset dir="${basedir}/src/main/java">
<include name="**/**.*" />
<exclude name="**/*.java"/>
</fileset>
</copy>
</target> <!-- 定义默认任务,将class文件集合成jar包。 -->
<target name="warFile" depends="build">
<!--将lib文件夹下的jar打包到WEB-INF/lib下 --> <copy todir="${basedir}/src/main/webapp/WEB-INF/lib">
<fileset dir="${basedir}/lib"> </fileset>
</copy>
<!-- 建立新war包。 -->
<war destfile="${basedir}/${warFileName}" webxml="${basedir}/src/main/webapp/WEB-INF/web.xml">
<!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
<fileset dir="${basedir}/src/main/webapp">
<include name="**/**.*" />
<exclude name="**/*.jar"/>
<exclude name="**/*.class"/>
</fileset>
<!-- 将jar和class文件拷贝到war包的对应路径下。 -->
<lib dir="${basedir}/src/main/webapp/WEB-INF/lib" />
<classes dir="${basedir}/src/main/webapp/WEB-INF/classes" />
</war>
</target> </project>
利用Ant脚本生成war包的详细步骤的更多相关文章
- web项目生成war包的问题
今天面试一家公司,问我生成war包的命令是什么? 当时没明白,就说自己用的eclipse直接右键 export --->war 完了重启tomcat(第一种) 好久没用maven了.回来一查才明 ...
- 利用Python 脚本生成 .h5 文件 代码
利用Python 脚本生成 .h5 文件 import os, json, argparse from threading import Thread from Queue import Queue ...
- 2017.5.24 在intelliJ IDEA 中生成war包
1.勾选Build on make file -> project structure -> Artifacts 2.compile module "***" 选择项目 ...
- intellij idea tomcat 启动不生成war包
intellij idea tomcat 启动不生成war包 想把项目打包成war包做测试,但是按照之前的方法居然没有成功导出war包,犯了很低级的错误,特此记录. (1)首先在Project Str ...
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第五话):总结以及build.xml文件
前面基本上把整个配置过程都完整地串起来了,包括可能遇到的难点,按照那个套路应该可以配置好自动打包发布的功能.简单总结下我的学习过程,以及遇到问题是怎样解决的. 准备一个项目源码 刚开始在github和 ...
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第三话):创建一个自由风格的项目(非maven),实现自动打war包
上一节把git和ant安装在虚拟机,并在jenkins上做了相关配置,接下来就可以真正开始构建一个项目了 1.新建一个自由风格的项目,因为是用ant打包,所以不要选择构建maven项目 2.配置源码管 ...
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第四话):把war包远程部署到tomcat
上一节介绍了如何用Ant插件来打war包,本节接着介绍如何把build好的war自动部署到tomcat中 1.先安装 Deploy to container Plugin插件 2. 在构建后操作中添加 ...
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第一话):初次启动jenkins,输入给定密码后登录失败问题解决
Jenkins是一个持续集成平台,它能够从git等源码管理服务器拉取代码.打包并发布到tomcat等中间件,只要配置好相关插件,就可以做到项目的自动化构建.部署,不论是对开发来说监控代码质量,还是对测 ...
- jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第二话):安装插件,配置JDK、Git、Ant
jenkins之所以这么强大,离不开丰富的插件库. 要确保jenkins上安装好Git plugin.GitHub plugin.AntPlugin插件,一般在启动jenkins时默认安装的插件中就包 ...
随机推荐
- μc/osⅡ简化版任务机制浅析
去年玩过一阵单片机,也用过μc/osⅡ的系统,但是就理解内核而言,整个即时操作系统还是过于冗杂,很多的东西很不适合初学者来动手操作,多方查找我发现他的任务机制可以进行功能的进一步简化, 可以类似于任务 ...
- Update和LateUpdate的区别
LateUpdate晚于所有Update执行 在圣典里LateUpdate被解释成一句话:LateUpdate是在所有Update函数调用后被调用.这可用于调整脚本执行顺序. 当物体在Update里移 ...
- 验证码生成的c语言库
http://www.open-open.com/lib/view/open1324534929968.html
- c# 二进制或算法实现枚举的HasFlag函数
from:http://www.cnblogs.com/icyJ/archive/2013/02/20/HasFlag.html 在权限的管理中,常常会出现一个权限包含的现象.例如,有三种基本权限:职 ...
- UICollectionView移动
collectionView在iOS9中发布了一个可以移动cell的新特性,实现如下: 1.创建collectionView并设置代理 - (UICollectionView *)collection ...
- Linux内核启动
Linux内核启动过程概述 Linux的启动代码真的挺大,从汇编到C,从Makefile到LDS文件,需要理解的东西很多.毕竟Linux内核是由很多人,花费了巨大的时间和精力写出来的.而且直到现在,这 ...
- Java6 String.substring()方法的内存泄露
substring(start,end)在Java编程里面经常使用,没想到如果使用不当,会出现内存泄露. 要了解substring(),最好的方法便是查看源码(jdk6): /** * <blo ...
- Objective-c复制对象的概念
- Enfold主题详解与实例视频教程 WordPress建站视频教程
ENFOLD主题功能强大,同样的设置也相对较复杂,希望您在学习过程中也能多多加以练习.Enfold主题介绍:目前在ThemeForest网站,Enfold在WordPress主题销售排行中第2名,可见 ...
- java实现八皇后问题(递归和循环两种方式)
循环方式: package EightQueens; public class EightQueensNotRecursive { private static final boolean AVA ...