ANT 打包
ant
ant 是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点:
1、跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性。
2、操作简单:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样。
Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。
每个task实现了特定接口对象。
3、维护简单、可读性好、集成简单:由于Ant构建文件 时XML格式的文件,所以很容易维护和书写,而且结构很清晰。
Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去,并导出。
安装
1.下载相应的版本 见:http://ant.apache.org/
2.配置环境变量 例如
ANT_HOME D:/ apache-ant-1.9.0
path D:/ apache-ant-1.9.0/bin
classpath D:/apache-ant-1.9.0/lib
编写ant 的build脚本
Ant构建文件默认命名为build.xml,也可以取其他的名字。
只不过在运行的时候把这个命名当作参数传给Ant。构建文件可以放在任何的位置。
一般做法是放在项目顶层目录中,这样可以保持项目的简洁和清晰。
<?xml version="1.0" encoding="utf-8"?>
<project name="XXX" default="xxxx" basedir=".">
<property name="project.name" value="atq_picc" description="项目名称"/>
<property name="jar.name" value="${project.name}" description="jar包名称"/>
<property name="war.name" value="${project.name}" description="war 包名称"/>
<property name="localWebServer.home" value="E:/apache-tomcat-8.5.23/" description="本地web容器的部署路径"/>
<property name="classpath.java" value="${basedir}/src" description="源代码目录路径"/>
<property name="classpath.resources" value="${basedir}/resources" description="项目资源路径"/>
<property name="webcontent.dir" value="${basedir}/WebRoot" description="webapp路径"/>
<property name="webcontent.webinf.dir" value="${webcontent.dir}/WEB-INF" description="web-inf 路径"/>
<property name="classpath.lib" value="${webcontent.webinf.dir}/lib" description="运行时lib包位置"/>
<property name="classes.dir" value="${webcontent.webinf.dir}/classes" description="原项目默认编译位置"/>
<property name="target.dir" value="${basedir}/target" description="编译后的位置"/>
<property name="target.jar.dir" value="${target.dir}/jar" />
<property name="compile.level" value="1.7" description="编译级别"/>
<property name="compile.encoding" value="UTF-8" description="编码格式"/>
<property name="full.package.name" value="${project.name}_${version.date}.jar" description=""/>
<property name="package.excludesfile" value="${basedir}/excludeslist.txt" description="打包要排除的文件,每个文件另起一行"/>
<path id="classpath">
<fileset dir="${classpath.lib}">
<include name="*.jar" />
</fileset>
<pathelement location="${classes.dir}" />
</path>
<target name="clean">
<delete dir="${classes.dir}" />
<delete dir="${target.dir}" />
</target>
<target name="init" depends="clean">
<echo message=" ====== 初始化创建build.dir编译目录 ======" />
<mkdir dir="${target.dir}" />
<echo message=" ====== 初始化WebContent.classes创建编译目录 ======" />
<mkdir dir="${classes.dir}" />
</target>
<target name="compile" depends="init">
<echo message=" ====== 编译源代码 复制到 target.classes 目录 ======" />
<javac nowarn="on" encoding="${compile.encoding}" target="${compile.level}" source="${compile.level}" srcdir="${classpath.java}" destdir="${classes.dir}" fork="true" debug="true" includeAntRuntime="false" memoryInitialSize="256m" memoryMaximumSize="512m" classpathref="classpath">
</javac>
</target>
<target name="pack" depends="compile" description="打全量包">
<echo>打全量包${full.package.name}</echo>
<jar destfile="${target.dir}/${full.package.name}" basedir="${webcontent.dir}" excludesfile="${package.excludesfile}" />
</target>
</project>
说明
该脚本只包括简单的java web 的编译,打jar包流程。