使用Ant要解决的几个问题
2016-07-24 23:10
232 查看
1. 如何将源码及资源文件打包为jar文件
项目目录结构示例:图1项目目录结构
1.1 打包class文件为jar
task: 初始化-> 编译 -> 打包
1.1.1 build.properties
#编译保存的目录 build.dir=${basedir}\\build #源代码目录 src.dir=${basedir}\\src #打包的目录 dist.dir=${basedir}\\dist #非src下配置文件目录 config.dir=${basedir}\\config
1.1.2 build_jar.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="myProject" default="dist"> <description> simple example build file </description> <!-- 引入文件中的配置项 --> <property file="build.properties"/> <target name="init"> <!-- 创建时间戳--> <tstamp/> <!-- 创建构建目录用于编译 --> <mkdir dir="${build.dir}"/> </target> <target name="compile" depends="init" description="complie the source"> <!-- 编译java代码从${src}到${build} --> <javac srcdir="${src.dir}" destdir="${build.dir}"> <compilerarg line="-encoding UTF-8"/> </javac> </target> <target name="dist" depends="compile" description="generate the distribution"> <!-- 创建打包目录 --> <mkdir dir="${dist.dir}/lib"/> <!-- 将编译的class打包成MyProject-${DSTAMP}.jar文件 --> <jar destfile="${dist.dir}/lib/MyProject-${DSTAMP}.jar"> <!-- 编译的class文件目录 --> <fileset dir="${build.dir}"></fileset> </jar> </target> <target name="clean" description="clean up"> <!-- 删除${build}和${dist} 目录 --> <delete dir="${build.dir}"/> <delete dir="${dist.dir}"/> </target> </project>
1.2 打包的时候包含资源文件
task: 初始化->编译->打包
a) 编译源代码后,拷贝非java文件到build目录中
b) 打包为jar过程中,将其它资源文件也一并打包
1.2.1拷贝非java文件到build目录中
<target name="compile" depends="init" description="complie the source"> <!-- 编译java代码从${src}到${build} --> <javac srcdir="${src.dir}" destdir="${build.dir}"> <compilerarg line="-encoding UTF-8"/> </javac> <!-- 将src下的非java文件拷贝到build目录 --> <copy todir="${build.dir}" > <fileset dir="${src.dir}"> <exclude name="**/*.java"/> </fileset> </copy> </target>
1.2.2将其它资源文件也一并打包
<target name="dist" depends="compile" description="generate the distribution"> <!-- 创建打包目录 --> <mkdir dir="${dist.dir}/lib"/> <!-- 将编译的class打包成MyProject-${DSTAMP}.jar文件 --> <jar destfile="${dist.dir}/lib/MyProject-${DSTAMP}.jar"> <!-- 编译的class文件目录 --> <fileset dir="${build.dir}"></fileset> <!-- 其它资源文件目录 --> <fileset dir="${config.dir}"></fileset> </jar> </target>
2. 如何实现tomcat下web
app的部署
项目目录结构:图2 web项目目录结构
2.1 打包成war进行归档
task: 初始化 ->编译 ->打成war
编译源代码后,拷贝非java文件到build目录中
打包为war过程中,将其它资源文件和jar也一并打包,按照web应用的目录层次结构进行拷贝打包
web应用最基本的目录层次结构:
appname
WEB-INF
classes
lib
web.xml
根据项目的目录结构,我们的打包规则是:
1 project name为appname
2 web/config目录下的配置文件放置在WEB-INF/classes目录下(除了web.xml)
3 libs的jar放置在WEB-INF/lib目录下
4 web/config/web.xml放置在WEB-INF下
5 pages目录下的内容放置在appname目录下
2.1.1build.properties
#编译保存的目录 build.dir=${basedir}\\build #源代码目录 src.dir=${basedir}\\src #war存放目录 war.dir=${basedir}\\war #libs存放目录 lib.dir=${basedir}\\libs #非src下配置文件目录 config.dir=${basedir}\\web\\config #web文件存放目录 web.dir=${basedir}\\web #项目名称,web应用访问的名称 project.name=antweb #tomcat目录 tomcat.dir=K:\\apache-tomcat-7.0.63-windows-x64-2\\apache-tomcat-7.0.63 #webapps目录 webapps.dir=${tomcat.dir}\\webapps
2.1.2 build_web.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="${project.name}" default="war-deploy"> <description> web deploy build file </description> <!-- 引入文件中的配置项 --> <property file="build.properties"/> <target name="init"> <!-- 创建时间戳--> <tstamp/> <!-- 创建构建目录用于编译 --> <mkdir dir="${build.dir}"/> </target> <target name="compile" depends="init" description="complie the source"> <!-- 编译java代码从${src}到${build} --> <javac srcdir="${src.dir}" destdir="${build.dir}"> <compilerarg line="-encoding UTF-8"/> </javac> <!-- 将src下的非java文件拷贝到build目录 --> <copy todir="${build.dir}" > <fileset dir="${src.dir}"> <exclude name="**/*.java"/> </fileset> </copy> <!-- 拷贝配置文件到build目录 --> <copy todir="${build.dir}"> <fileset dir="${config.dir}"> <exclude name="**/web.xml"/> </fileset> </copy> </target> <target name="war" depends="compile" description="generate the distribution"> <!-- 创建打包目录 --> <mkdir dir="${war.dir}/archive"/> <!-- 打包成${project.name}.war文件 --> <war destfile="${war.dir}/archive/${project.name}.war" webxml="${config.dir}/web.xml"> <lib dir="${lib.dir}"/> <classes dir="${build.dir}"/> <zipfileset dir="${web.dir}/pages"> </zipfileset> </war> </target> <target name="clean" description="clean up"> <!-- 删除${build}和${dist} 目录 --> <delete dir="${build.dir}"/> <delete dir="${war.dir}"/> <delete dir="${webapps.dir}/${project.name}"/> </target> </project>
2.2 拷贝web应用需要的文件到tomcat webapps目录下
<target name="war-deploy" depends="compile" description="generate the distribution"> <!-- 创建应用目录 --> <mkdir dir="${webapps.dir}/${project.name}"/> <mkdir dir="${webapps.dir}/${project.name}/WEB-INF"/> <mkdir dir="${webapps.dir}/${project.name}/WEB-INF/classes"/> <mkdir dir="${webapps.dir}/${project.name}/WEB-INF/lib"/> <!-- 拷贝class和配置文件到WEB-INF/classes目录 --> <copy todir="${webapps.dir}/${project.name}/WEB-INF/classes"> <fileset dir="${build.dir}"/> </copy> <!-- 拷贝libs到WEB-INF/lib目录 --> <copy todir="${webapps.dir}/${project.name}/WEB-INF/lib"> <fileset dir="${lib.dir}"/> </copy> <!-- 拷贝web.xml到WEB-INF目录 --> <copy todir="${webapps.dir}/${project.name}/WEB-INF"> <fileset file="${config.dir}/web.xml"/> </copy> <!-- 拷贝页面到应用程序根目录 --> <copy todir="${webapps.dir}/${project.name}"> <fileset dir="${web.dir}/pages"></fileset> </copy> </target>
相关文章推荐
- 虚拟化基础架构Windows 2008篇之5-安装Windows部署服务
- 快速部署远程同步服务Rsync
- fis-receiver:一行命令将项目部署到远程服务器
- JavaScript 组件之旅(三):用 Ant 构建组件
- Android 中动态加载.jar的实现步骤
- java使用命令行打包JAR
- 用代码更新你的jar包
- 用Java连接sqlserver数据库时候几个jar包的区别分析
- 使用YUI+Ant 实现JS CSS压缩
- Linux下Redis的安装和部署
- 快速实现MySQL的部署以及一机多实例部署
- ThinkPHP学习笔记(一)ThinkPHP部署
- 基于将Android工程做成jar包和资源文件的解决方法
- jar包双击执行程序的方法
- Microsoft Visual C++ 程序的部署方法
- 解读ASP.NET 5 & MVC6系列教程(3):项目发布与部署
- Redis基本知识、安装、部署、配置笔记
- 在Nginx上部署ThinkPHP项目教程
- ubuntu 14.04 安装 apache ant教程
- Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享