- 浏览: 287180 次
- 性别:
- 来自: 龙城
最新评论
-
redey:
这垃圾东西,1.6以上JDK不支持
Jocky混淆JAVA代码(保护你的JAVA项目) -
u012907473:
水电费是否是否
js页面缓存的一个解决办法 -
jackson200:
讲解的很详细!
Jocky混淆JAVA代码(保护你的JAVA项目) -
jamesqq79:
下载解压缩后,不知是何文件格式,用PDF阅读器打不开。
Java程序员的推荐阅读书籍之十《Agile Java》 -
meimei727:
<!-- 给页面文件中的js和css引用增加版本 ...
利用ant进行项目发布
虽然现在maven很流行,我也看了下,屡屡浅尝辄止。还是比较喜欢ant,而且对于我当前的工作,ant也够用了,所以对maven的学习也就没了兴趣,仅剩下对新事物的热情。
一个较复杂的工程项目可能包含很多目录,包括源代码文件、资源文件、文档等等一系列的东东,而且在项目发布时,除了考虑自动化、方便性(比如从cvs取最新版本、编译、打包、关闭应用服务器、部署、重新启动服务器等等)以外,还要考虑一些用户级的问题(比如修改了页面js后,怎样保证用户端从服务器端下载最新的js而不是用其本地浏览器缓存的js),另外基于源代码安全性考虑,可能还要进行代码混淆编译等。
<?xml version="1.0" encoding="UTF-8"?> <!-- 功能:cvs更新、编译(同时混淆)、生成注册文件、给页面文件的css和js引用增加版本号、打包、部署、运行tomcat等 作者:huangyuanmu 日期:2008-07-02. --> <project basedir="." default="build" name="wxwtdz"> <!-- property --> <property file="resource/ant.properties" /> <property environment="env" /> <property name="tomcat.path" value="${tomcat.path}" /> <property name="server.mac" value="${server.mac}" /> <property name="cvsroot" value="${cvs.root}" /> <property name="cvs.password" value="${cvs.password}" /> <property name="cvs.module.name" value="xxx项目" /> <property name="websrc.dir" value="web" /> <property name="src.common.dir" value="common" /> <property name="src.shell.dir" value="shell" /> <property name="src.sys.dir" value="sys" /> <property name="src.hjgl.dir" value="hjgl" /> <property name="src.pzgl.dir" value="pzgl" /> <property name="src.sbzs.dir" value="sbzs" /> <property name="src.zhcx.dir" value="zhcx" /> <property name="src.zhdy.dir" value="zhdy" /> <property name="src.zhjb.dir" value="zhjb" /> <property name="src.scheduling.dir" value="scheduling" /> <property name="src.resource.dir" value="resource" /> <property name="src.rpc.dir" value="rpc" /> <property name="customize.dir" value="customize" /> <property name="customize.resource.dir" value="customize/resource" /> <property name="build.dir" value="build" /> <property name="dist.dir" value="dist" /> <property name="deploy.dir" value="${tomcat.path}/webapps" /> <property name="dest.jar" value="wtdz.jar" /> <property name="dest.war" value="wtdz.war" /> <property name="dest.dir" value="wtdz" /> <property name="jdk.source" value="1.5" /> <property name="jdk.target" value="1.5" /> <property name="deploy.web.dir" value="wtdz" /> <property name="training.dir" value="training" /> <property name="training.resource.dir" value="training/resource" /> <property name="training.war" value="wtdzcs.war" /> <!-- patternset --> <patternset id="jar.pattern"> <include name="**/*.jar" /> </patternset> <patternset id="config.pattern"> <include name="**/*.xml" /> <include name="**/*.properties" /> <include name="**/*.prop" /> <include name="**/*.conf" /> <include name="**/*.tld" /> <include name="**/*.ftl" /> <include name="**/*.vm" /> </patternset> <patternset id="build.pattern"> <include name="log" /> <include name="**/*.jar" /> <include name="**/*.class" /> <include name="**/*.vm" /> <include name="**/*.rep" /> <include name="**/*.exe" /> <include name="**/*.log" /> <include name="**/*.bat" /> <include name="**/*.xls" /> <include name="**/*.xml" /> <include name="**/*.properties" /> <include name="**/*.prop" /> <include name="**/*.conf" /> <include name="**/*.tld" /> <include name="**/*.ftl" /> <include name="**/*.jsp" /> <include name="**/*.htm" /> <include name="**/*.html" /> <include name="**/*.js" /> <include name="**/*.css" /> <include name="**/*.swf" /> <include name="**/*.jpg" /> <include name="**/*.gif" /> <include name="**/*.png" /> <include name="**/*.rar" /> <include name="**/*.wmv" /> <include name="**/*.mp3" /> <include name="**/*.3gp" /> <include name="**/*.doc" /> <include name="**/*.htc" /> <exclude name="WEB-INF/**/*" /> <exclude name="**/web.xml" /> </patternset> <patternset id="src.pattern"> <include name="**/*.java" /> <include name="**/*.vm" /> <include name="**/*.rep" /> <include name="**/*.exe" /> <include name="**/*.xml" /> <include name="**/*.xls" /> <include name="**/*.properties" /> <include name="**/*.prop" /> <include name="**/*.conf" /> <include name="**/*.tld" /> <include name="**/*.ftl" /> <include name="**/*.jsp" /> <include name="**/*.htm" /> <include name="**/*.html" /> <include name="**/*.js" /> <include name="**/*.css" /> <include name="**/*.swf" /> <include name="**/*.jpg" /> <include name="**/*.gif" /> <include name="**/*.png" /> <exclude name="**/web.xml" /> </patternset> <!-- path --> <path id="compile.classpath"> <fileset dir="${tomcat.path}/lib"> <patternset refid="jar.pattern" /> </fileset> <fileset dir="${websrc.dir}/WEB-INF/lib"> <patternset refid="jar.pattern" /> </fileset> <fileset dir="${build.dir}/WEB-INF/classes"> <patternset refid="build.pattern" /> </fileset> </path> <!-- taskdef --> <!-- 给页面文件中的js和css引用增加版本号 --> <taskdef name="addVersion" classname="cn.xxx.wtdz.ant.task.AddJsAndCssVersionToVm" classpath="bin/ant-task.jar"> </taskdef> <!-- 利用混淆器进行编译 --> <taskdef resource="jockytasks"> </taskdef> <!-- 生成注册码文件 --> <taskdef name="genRegKey" classname="cn.xxx.wtdz.ant.task.GenRegKey" classpath="bin/ant-task.jar"> </taskdef> <!-- target --> <!-- 删除构建发布文件夹 --> <target name="clean"> <delete dir="${build.dir}" /> <delete dir="${dist.dir}" /> </target> <!-- 创建构建发布文件夹 --> <target name="init" depends="clean"> <mkdir dir="${build.dir}" /> <mkdir dir="${build.dir}/WEB-INF/classes" /> <mkdir dir="${dist.dir}" /> </target> <!-- cvs更新(check out) --> <target name="checkout"> <cvspass cvsroot="${cvs.root}" password="${cvs.password}" passfile="ant-cvs.cvspass" /> <cvs command="-q checkout -d wxwtdz -P" failonerror="true" dest=".." cvsroot="${cvs.root}" package="${cvs.module.name}" passfile="ant-cvs.cvspass" /> </target> <!-- 从源文件夹中拷贝文件到构建文件夹中 --> <target name="copysrc" depends="init"> <copy todir="${build.dir}/src" overwrite="true"> <fileset dir="${src.common.dir}"> </fileset> <fileset dir="${src.shell.dir}"> </fileset> <fileset dir="${src.sys.dir}"> </fileset> <fileset dir="${src.hjgl.dir}"> </fileset> <fileset dir="${src.pzgl.dir}"> </fileset> <fileset dir="${src.sbzs.dir}"> </fileset> <fileset dir="${src.zhcx.dir}"> </fileset> <fileset dir="${src.zhdy.dir}"> </fileset> <fileset dir="${src.zhjb.dir}"> </fileset> <fileset dir="${src.scheduling.dir}"> </fileset> <fileset dir="${src.resource.dir}"> <exclude name="log4j.xml"/> </fileset> <fileset dir="${src.rpc.dir}"> </fileset> <fileset dir="${customize.resource.dir}"> </fileset> </copy> <copy todir="${build.dir}"> <fileset dir="${websrc.dir}"> <exclude name="WEB-INF/classes/**/*" /> </fileset> </copy> <copy todir="${build.dir}" overwrite="true"> <fileset dir="${customize.dir}"> <exclude name="resource/**" /> </fileset> </copy> </target> <!-- 编译、拷贝文件 --> <target name="compile" depends="copysrc"> <jocky jar="bin/jocky.jar" enable="true" level="private"> </jocky> <javac srcdir="${build.dir}/src" destdir="${build.dir}/WEB-INF/classes" debug="true" source="1.5" target="1.5" > <classpath refid="compile.classpath" /> </javac> <copy todir="${build.dir}/WEB-INF/classes" overwrite="true"> <fileset dir="${build.dir}/src"> <patternset refid="config.pattern" /> </fileset> </copy> <delete dir="${build.dir}/src" /> </target> <!-- 给页面文件中的css和js引用增加版本号 --> <target name="addPageVersion" depends="compile"> <addVersion path="${build.dir}" /> </target> <!-- 构建war包 --> <target name="build" depends="addPageVersion"> <!--<target name="build" depends="compile">--> <delete file="${dist.dir}/${dest.war}" /> <mkdir dir="${build.dir}/log" /> <genRegKey path="${dist.dir}" key="${server.mac}"/> <war destfile="${dist.dir}/${dest.war}" webxml="${build.dir}/WEB-INF/web.xml"> <webinf dir="${build.dir}/WEB-INF" /> <fileset dir="${build.dir}"> <patternset refid="build.pattern" /> </fileset> <fileset file="${dist.dir}/key.properties"> </fileset> </war> <delete file="${dist.dir}/key.properties" /> </target> <!-- 构建试用版war包 --> <target name="buildDebug" depends="addPageVersion"> <delete file="${dist.dir}/${dest.war}" /> <mkdir dir="${build.dir}/log" /> <war destfile="${dist.dir}/${dest.war}" webxml="${build.dir}/WEB-INF/web.xml"> <webinf dir="${build.dir}/WEB-INF" /> <fileset dir="${build.dir}"> <patternset refid="build.pattern" /> </fileset> </war> </target> <!-- 部署前先关闭tomcat,并压缩文件 --> <target name="zip" depends="addPageVersion"> <echo message="now stopping tomcat service" /> <exec dir="${tomcat.path}/bin" executable="cmd"> <env key="CATALINA_HOME" path="${tomcat.path}" /> <arg value="/c shutdown.bat" /> </exec> <delete file="${deploy.dir}/${dest.war}" /> <delete file="${deploy.dir}/${dest.dir}" /> <genRegKey path="${build.dir}" key="${server.mac}"/> <zip destfile="${deploy.dir}/${dest.war}"> <fileset dir="${build.dir}"> <include name="**/*" /> </fileset> </zip> </target> <!-- 解压文件,并启动tomcat --> <target name="deploy" depends="zip"> <echo message="deploy web project to ${deploy.dir}..." /> <unzip dest="${deploy.dir}/${deploy.web.dir}" overwrite="true" src="${deploy.dir}/${dest.war}"> </unzip> <echo message="now starting tomcat service" /> <exec dir="${tomcat.path}/bin" executable="java.exe"> <env key="CATALINA_HOME" path="${tomcat.path}" /> <arg line="-jar -Duser.dir=${tomcat.path} ${tomcat.path}/bin/bootstrap.jar start" /> </exec> </target> <!-- 把项目所有class文件打包 --> <target name="archive" depends="compile"> <delete file="${dist.dir}/${dest.jar}" /> <jar destfile="${dist.dir}/${dest.jar}" basedir="${build.dir}/WEB-INF/classes" /> </target> <!-- 导出远程调用接口程序(住房出租票证管理接口) --> <target name="buildrpc" depends="compile"> <delete file="${dist.dir}/wtdz-rpc.jar"> </delete> <mkdir dir="${build.dir}/rpc/src" /> <mkdir dir="${build.dir}/rpc/classes" /> <copy todir="${build.dir}/rpc/src"> <fileset dir="${src.rpc.dir}"> <exclude name="**/impl/*" /> <exclude name="**/aop/*" /> </fileset> </copy> <jocky enable="false"> </jocky> <javac srcdir="${build.dir}/rpc/src" destdir="${build.dir}/rpc/classes" debug="true"> <classpath refid="compile.classpath" /> </javac> <jar destfile="${dist.dir}/wtdz-rpc.jar"> <fileset dir="${build.dir}/rpc/classes" includes="**/*.class" /> <zipfileset src="${websrc.dir}/WEB-INF/lib/hessian-3.1.3.jar"> </zipfileset> </jar> <delete dir="${build.dir}/rpc/src"> </delete> <delete dir="${build.dir}/rpc/classes"> </delete> </target> <!-- 从源文件夹中拷贝文件到构建文件夹中 --> <target name="copysrcTraining" depends="copysrc"> <copy todir="${build.dir}/src" overwrite="true"> <!-- 培训版本:从training文件夹中拷贝文件到构建文件夹中 --> <fileset dir="${training.dir}"> <include name="cn/**"/> </fileset> <fileset dir="${training.resource.dir}"> </fileset> </copy> <copy todir="${build.dir}" overwrite="true"> <fileset dir="${training.dir}"> <include name="images/**"/> </fileset> </copy> </target> <!-- 编译、拷贝文件 --> <target name="compileTraining" depends="copysrcTraining"> <jocky jar="bin/jocky.jar" enable="true" level="private"> </jocky> <javac srcdir="${build.dir}/src" destdir="${build.dir}/WEB-INF/classes" debug="true" source="1.5" target="1.5" > <classpath refid="compile.classpath" /> </javac> <copy todir="${build.dir}/WEB-INF/classes" overwrite="true"> <fileset dir="${build.dir}/src"> <patternset refid="config.pattern" /> </fileset> </copy> <delete dir="${build.dir}/src" /> </target> <!-- 给页面文件中的css和js引用增加版本号 --> <target name="addPageVersionTraining" depends="compileTraining"> <addVersion path="${build.dir}" /> </target> <!-- 构建war包 --> <target name="buildTraining" depends="addPageVersionTraining"> <!--<target name="build" depends="compile">--> <delete file="${dist.dir}/${dest.war}" /> <mkdir dir="${build.dir}/log" /> <genRegKey path="${dist.dir}" key="${server.mac}"/> <war destfile="${dist.dir}/${dest.war}" webxml="${build.dir}/WEB-INF/web.xml"> <webinf dir="${build.dir}/WEB-INF" /> <fileset dir="${build.dir}"> <patternset refid="build.pattern" /> </fileset> <fileset file="${dist.dir}/key.properties"> </fileset> </war> <delete file="${dist.dir}/key.properties" /> </target> <target name="training" depends="buildTraining"> <move file="${dist.dir}/${dest.war}" tofile="${dist.dir}/${training.war}"/> </target> </project>
评论
3 楼
meimei727
2015-04-02
<!-- 给页面文件中的js和css引用增加版本号 -->
<taskdef name="addVersion" classname="cn.xxx.wtdz.ant.task.AddJsAndCssVersionToVm" classpath="bin/ant-task.jar">
</taskdef>
执行的时候会说找不到这个类,还有classpath="bin/ant-task.jar"是什么意思?
<taskdef name="addVersion" classname="cn.xxx.wtdz.ant.task.AddJsAndCssVersionToVm" classpath="bin/ant-task.jar">
</taskdef>
执行的时候会说找不到这个类,还有classpath="bin/ant-task.jar"是什么意思?
2 楼
huangyuanmu
2010-06-03
spp_1987 写道
要是部署前 没有关闭tomcat 会有什么状况出现,
但是我用简单的web程序测试了下,并没有什么错误
但是我用简单的web程序测试了下,并没有什么错误
注意这个target
<target name="zip" depends="addPageVersion">
<echo message="now stopping tomcat service" />
<exec dir="${tomcat.path}/bin" executable="cmd">
<env key="CATALINA_HOME" path="${tomcat.path}" />
<arg value="/c shutdown.bat" />
</exec>
<delete file="${deploy.dir}/${dest.war}" />
<delete file="${deploy.dir}/${dest.dir}" />
<genRegKey path="${build.dir}" key="${server.mac}"/>
<zip destfile="${deploy.dir}/${dest.war}">
<fileset dir="${build.dir}">
<include name="**/*" />
</fileset>
</zip>
</target>
其中有关闭tomcat的步骤。
所以,你的tomcat在运行状态下,是不影响的。
1 楼
spp_1987
2010-05-31
要是部署前 没有关闭tomcat 会有什么状况出现,
但是我用简单的web程序测试了下,并没有什么错误
但是我用简单的web程序测试了下,并没有什么错误
发表评论
-
autochk program not found 蓝屏重启问题解决
2012-04-17 10:54 13774起因: 因为硬盘空间不够,所以把原来的双系统中的ubu ... -
IOS开发一些资源
2012-02-06 16:07 1323从别的地方看到的,多谢作者,现贴在这里备忘。 在线教程 ... -
发现一个好东东,可以让浏览器跟本地桌面交互,哈哈
2011-09-08 17:35 1213http://gears.google.com/ -
nodejs开发运行环境搭建
2011-08-18 15:03 4348一. geddy 开发运行环境搭建 geddy是基 ... -
javascript来势凶猛
2011-08-15 17:22 1179引子 java编程弄了7,8个年头了,也 ... -
Oracle驱动包装
2011-07-06 17:06 1988见附件。 -
javaeye域名变了
2011-04-01 10:31 1250javaeye域名变了,才发现,哈哈,mark下。 -
拥抱敏捷
2011-01-15 17:27 1066前言 有关项目管理和软件开发方 ... -
重温设计模式
2011-01-13 10:27 1145策略模式: 定义了算 ... -
jsoup,html解析的利器
2011-01-07 09:21 1180http://jsoup.org/download -
关于html表格复制到excel
2010-09-09 14:04 5830刚才一个朋友问我这个事情,我拍脑袋想了一下,给他答复不可能,因 ... -
Java 路径 System.getProperty("key")的参数key
2010-09-02 14:37 1245java.version ... -
这种需求,大家看看有没有比较好的解决方案
2010-06-25 09:47 2242在我们的应用中,碰到了如图所示的一种网络结构。 重新描 ... -
java中singleton的几种实现方式
2010-06-24 15:08 1452传统的最简单的方式 这种模式有一个缺点就是不能实现延 ... -
oracle分页查询数据重复问题的解决
2010-06-24 11:00 3405在oracle分页查询中,我们采用类似以下所示的公认的比较高效 ... -
ubuntu10.04中安装使用IE6
2010-06-21 09:55 2548在用ubuntu910的时候,已经装了一遍IE了,但是升级到1 ... -
今天发现的两个有价值的东东
2010-06-17 15:45 1489其一,iRedMail,开源邮件解决方案。 其 ... -
ubuntu 10.04 中安装mysql5.1.4
2010-06-17 15:28 1803自从升级到10.04以后,mysql就不正常,卸载装了n次,均 ... -
升级到ubuntu 10.04,wine中的ie不正常了
2010-06-11 10:01 1681ubuntu上也折腾了半年了,日常工作生活基本没有太多的障碍了 ... -
升级到ubuntu10.04,mysql不能用了
2010-06-11 09:53 18519.10版本用了半年了,10.04发布了,看了10.04的宣传 ...
相关推荐
基于MyEclipse开发平台的利用ant来发布项目,Ant实战级的宝典
利用ant脚本 自动构建svn增量/全量 系统程序升级包 标签: antsvn自动化测试发布 分类: ant 不会用ant打包、部署项目的工程师,不是一个好程序员(测试) 副标题:利用ant脚本 自动构建svn增量/全量 系统程序...
1)利用Ant将Web项目自动打包成war文件 2)远程发布到Tomcat服务器
Ant是Java程序员的一个好的工具,主要可以帮助程序员进行java项目的的管理,包括批量编译、部署、文档生成等工作,其用途远不止如此,ant内置了大量的API进行各种文件系统操作,在各种应用服务器中都被广泛应用于...
在应用的开发过程中,我们往往都会有一个Ant脚本,通过该脚本,能够对应用进行编译、打包、发布等一系列过程。因此,Jocky的最佳切入点便是对Ant的支持。 在Ant中使用Jocky非常简单: 1. 将lib\jocky-ant.jar ...
[转]使用Ant进行项目构建之二 ... 前面已经把ant的基本运行环境搭建好了,在接下来的工作中,将一步一步的开始构建我们的项目。选择项目目录结构:一个项目开始的时候,选择一个合适的项目目录结构,是一件很重要的...
14.4.3 编写本项目的Ant文件 14.4.4 配置本项目的web.xml文件 14.5 编写内容管理系统的JSP页面 14.5.1 用户注册画面regedit.jsp 14.5.2 用户登录画面login.jsp 14.5.3 设定内容类别画面type.jsp 14.5.4 发布内容画面...
14.4.3 编写本项目的Ant文件 14.4.4 配置本项目的web.xml文件 14.5 编写内容管理系统的JSP页面 14.5.1 用户注册画面regedit.jsp 14.5.2 用户登录画面login.jsp 14.5.3 设定内容类别画面type.jsp 14.5.4 发布内容画面...
14.4.3 编写本项目的Ant文件 14.4.4 配置本项目的web.xml文件 14.5 编写内容管理系统的JSP页面 14.5.1 用户注册画面regedit.jsp 14.5.2 用户登录画面login.jsp 14.5.3 设定内容类别画面type.jsp 14.5.4 发布内容画面...
14.4.3 编写本项目的Ant文件 14.4.4 配置本项目的web.xml文件 14.5 编写内容管理系统的JSP页面 14.5.1 用户注册画面regedit.jsp 14.5.2 用户登录画面login.jsp 14.5.3 设定内容类别画面type.jsp 14.5.4 发布内容画面...
不会随项目发布。 • system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。 的使用举例: <groupId>hibernate <artifactId>hibernate <version>3.0.3 <scope>test 7. 传递依赖...
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个...事实上,在很多应用服务器的发布中都包含了Ant。另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。
xcodes打开项目工程,进行开发者的配置与发布选项的配置,进行游戏名称与版本号修改等,进行编译,发布等。这里面的游戏开发者最好是企业开发者账号,因为这样就不用上传到苹果商店了。可以随便分发。 三、导出...
该案例既提供了ide无关的、基于ant管理的项目源码,也提供了基于netbeans ide的项目源码,最大限度地满足读者的需求。 作者简介: 李刚,从事10年的Java EE应用开发。曾任LITEON公司的J2EE技术主管,负责该公司的...
o Apache Ant 1.6.5 or later for Linux and Mac, 1.7 or later for Windows o Not Not Not Not compatible with Gnu Compiler for Java (gcj) Note: Note: Note: Note: If JDK is already installed on your ...
5.5.1 对项目资源进行重命名、移动和删除..... 151 5.5.2 取消修改:使用替换和比较操作..... 152 5.5.3 通过建立分支来进行版本维护和新版本开发..... 152 5.6 其他功能...... 152 5.6.1 编辑器中的快速差别...
5.5.1 对项目资源进行重命名、移动和删除..... 151 5.5.2 取消修改:使用替换和比较操作..... 152 5.5.3 通过建立分支来进行版本维护和新版本开发..... 152 5.6 其他功能...... 152 5.6.1 编辑器中的...
5.5.1 对项目资源进行重命名、移动和删除..... 151 5.5.2 取消修改:使用替换和比较操作..... 152 5.5.3 通过建立分支来进行版本维护和新版本开发..... 152 5.6 其他功能...... 152 5.6.1 编辑器中的...
Ant风格的pattern 4.7.2.2. classpath*: 前缀 4.7.2.3. 其他关于通配符的说明 4.7.3. FileSystemResource 提示 5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 ...