java web项目使用ant编译将不同的功能代码打包成…
2018-10-03 17:57:29来源:博客园 阅读 ()
使用ant可以轻松的将一个项目分离代码,直接打包成不同需求的tar.gz包使用
1.build.properties (属性)
version.num=1.0 #版本信息
2.build.xml (ant打包文件)
<?xml version="1.0" encoding="UTF-8"?> <project basedir="." default="deploytargz" name="pomc"> <!-- 引入配置文件 --> <property file="build.properties" /> <!-- 配置引用属性 --> <property name="src.dir" value="src" /> <property name="build.dir" value="build" /> <property name="web.dir" value="WebRoot" /> <property name="name" value="pomc" /> <property name="target" value="1.8" /> <property name="source" value="1.8" /> <!-- 引用jar包的路径 --> <path id="pomc.classpath"> <pathelement location="WebRoot/WEB-INF/classes" /> <path refid="master-classpath" /> </path> <path id="master-classpath"> <fileset dir="${web.dir}/WEB-INF/lib"> <include name="*.jar" /> <include name="**/*.jar" /> </fileset> </path> <!-- 初始化 --> <target name="init"> <delete dir="${build.dir}/jar" /> <mkdir dir="${build.dir}/jar" /> <delete dir="${build.dir}/classes" /> <mkdir dir="${build.dir}/classes" /> <delete dir="${web.dir}/WEB-INF/classes" /> <mkdir dir="${web.dir}/WEB-INF/classes" /> <copy todir="${web.dir}/WEB-INF/classes" includeEmptyDirs="false"> <!-- 将项目中除会编译生成class文件的java文件之外其他类型的文件拷贝到对应的目录下,排除指定文件名后缀 --> <fileset dir="${src.dir}"> <exclude name="**/*.launch" /> <exclude name="**/*.java" /> </fileset> </copy> </target> <!-- 编译生成class文件 --> <target name="build" depends="init"> <!-- 新建编译存放的classes文件 --> <mkdir dir="${build.dir}/classes" /> <!-- java编译 --> <javac destdir="${build.dir}/classes" source="${source}" target="${target}" debug="true" deprecation="false" optimize="false" failonerror="true" encoding="utf-8"> <src path="${src.dir}" /> <!-- 编译所需要的jar包路径 --> <classpath refid="master-classpath" /> </javac> </target> <!-- 将classes打包成jar包 --> <target name="jar" depends="build" description="Compress the java class files to jar"> <mkdir dir="${build.dir}/jar" /> <delete file="${build.dir}/jar/${name}.jar" /> <buildnumber file="./buildnum.txt" /> <!-- 指定时间戳 可以调用TODAY --> <tstamp> <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss" /> </tstamp> <!-- 生成清单文件 --> <manifest file="${web.dir}/META-INF/MANIFEST.MF"> <attribute name="Built-By" value="${user.name}" /> <attribute name="Implementation-Version" value="${version.num}.${build.number}" /> <attribute name="Built-Date" value="${TODAY}" /> </manifest> <!-- 打包jar --> <!-- includes 包含哪些后缀文件 空格分隔 --> <jar destfile="${build.dir}/jar/${name}.jar" basedir="${build.dir}/classes" includes="**/*.class" manifest="${web.dir}/META-INF/MANIFEST.MF" /> </target> <!-- depends指的是执行该任务,会先执行那个任务 --> <target name="deploytargz" depends="jar" description="Deploy application as a tar.gz file"> <!-- 指定时间戳 可以调用VERSIONDAY --> <tstamp> <format property="VERSIONDAY" pattern="yyyyMMdd" /> </tstamp> <!-- 将之前编译生成的classes路径下的编译结果拷贝到WEB路径下 --> <copy todir="${web.dir}/WEB-INF/lib" overwrite="true"> <fileset dir="${build.dir}/jar"> </fileset> </copy> <!-- 打包tar.gz --> <tar destfile="${name}${VERSIONDAY}.tar.gz" basedir="${web.dir}" compression="gzip" /> <!-- 将tar.gz包拷贝到build的war目录下 --> <copy todir="${build.dir}" preservelastmodified="true"> <fileset dir="."> <include name="*.tar.gz" /> </fileset> </copy> </target> <target name="cleanup"> <!-- 删除编译文件夹 --> <delete dir="${build.dir}/classes" /> <delete> <fileset dir="." includes="*.tar.gz"/> </delete> </target> </project>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:JAVA初识,JAVA是什么?
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash