使用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包的详细步骤的更多相关文章

  1. web项目生成war包的问题

    今天面试一家公司,问我生成war包的命令是什么? 当时没明白,就说自己用的eclipse直接右键 export --->war 完了重启tomcat(第一种) 好久没用maven了.回来一查才明 ...

  2. 利用Python 脚本生成 .h5 文件 代码

    利用Python 脚本生成 .h5 文件 import os, json, argparse from threading import Thread from Queue import Queue ...

  3. 2017.5.24 在intelliJ IDEA 中生成war包

    1.勾选Build on make file -> project structure -> Artifacts 2.compile module "***" 选择项目 ...

  4. intellij idea tomcat 启动不生成war包

    intellij idea tomcat 启动不生成war包 想把项目打包成war包做测试,但是按照之前的方法居然没有成功导出war包,犯了很低级的错误,特此记录. (1)首先在Project Str ...

  5. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第五话):总结以及build.xml文件

    前面基本上把整个配置过程都完整地串起来了,包括可能遇到的难点,按照那个套路应该可以配置好自动打包发布的功能.简单总结下我的学习过程,以及遇到问题是怎样解决的. 准备一个项目源码 刚开始在github和 ...

  6. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第三话):创建一个自由风格的项目(非maven),实现自动打war包

    上一节把git和ant安装在虚拟机,并在jenkins上做了相关配置,接下来就可以真正开始构建一个项目了 1.新建一个自由风格的项目,因为是用ant打包,所以不要选择构建maven项目 2.配置源码管 ...

  7. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第四话):把war包远程部署到tomcat

    上一节介绍了如何用Ant插件来打war包,本节接着介绍如何把build好的war自动部署到tomcat中 1.先安装 Deploy to container Plugin插件 2. 在构建后操作中添加 ...

  8. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第一话):初次启动jenkins,输入给定密码后登录失败问题解决

    Jenkins是一个持续集成平台,它能够从git等源码管理服务器拉取代码.打包并发布到tomcat等中间件,只要配置好相关插件,就可以做到项目的自动化构建.部署,不论是对开发来说监控代码质量,还是对测 ...

  9. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第二话):安装插件,配置JDK、Git、Ant

    jenkins之所以这么强大,离不开丰富的插件库. 要确保jenkins上安装好Git plugin.GitHub plugin.AntPlugin插件,一般在启动jenkins时默认安装的插件中就包 ...

随机推荐

  1. 频谱分析仪 RBW&VBW

    扫频式频谱分析仪的结构如下图 RBW(Resolution Bandwidth)的影响 The RBW dictates the resolution bandwidth, which is rela ...

  2. java日期和字符串的相互转换

    日期->字符串,字符串->日期:日期->毫秒,毫秒>日期- private static void getDate() { // TODO Auto-generated met ...

  3. JAVA中常用的二进制位操作

    一,计算某个正数的二进制表示法中 1 的个数 //求解正数的二进制表示法中的 1 的位数 private static int countBit(int num){ int count = 0; fo ...

  4. codeforces gym-101078

    题目链接: http://codeforces.com/gym/101078 A: #include <iostream> #include <cstdio> #include ...

  5. 第2章 面向对象的设计原则(SOLID):2_里氏替换原则(LSP)

    2. 里氏替换原则(Liskov Substitution Principle,LSP) 2.1 定义 (1)所有使用基类的地方必须能透明地使用子类替换,而程序的行为没有任何变化(不会产生运行结果错误 ...

  6. [3d跑酷] Xcode5 打包 发布配置

    主题 Unity导出Xcode项目,使用Xocde打包ipa并提交到AppStore xcode发布配置 1.设置发布相关参数,比如 包名,版本,证书,ios设备版本 2.设置体系结构,支持的平台(I ...

  7. Android优化—— 内存分析工具 MAT 的使用

    1 内存泄漏的排查方法 Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 : ·    heap 查看堆的分配情况 ·     ...

  8. 本地ip被劫持,初始化hosts文件,及其作用与说明

    # Copyright (c) 1993-2009 Microsoft Corp.## This is a sample HOSTS file used by Microsoft TCP/IP for ...

  9. f2fs源码解析(五) node管理结构梳理

    node是f2fs重要的管理结构, 它非常重要! 系统挂载完毕后, 会有一个f2fs_nm_info结构的node管理器来管理node的分配. f2fs_nm_info中最让人疑惑的是几颗基数树: s ...

  10. 浏览器默认样式(User Agent Stylesheet)

    原文:http://www.zjgsq.com/898.html 不同浏览器对于相同元素的默认样式并不一致,这也是为什么我们在CSS的最开始要写 * {padding:0;marging:0}: 不过 ...