author: arren zhang
date : 2010.5.7
关键字:
netbeans,build.xml,project.properties,context.xml,build,classes,tomcat,web,copy,-deploy-ant
问题:
使用netbeans6.8+新建一个web项目的之后,每次build项目,或run,或debug项目的时候,会新建build目录,并拷贝web里的所有内容到build目录,当web里的内容相当多,比如使用了很多页面,或这使用了dojo库等,拷贝这些文件会花费很多时间,降低了你开发web程序的相率。配合tomcat服务器,我们其实可以消除这种无用的拷贝操作,从而加速web项目的调试进程。
解决方法:
1.修改project.properties文件,如下:
(1):
#build.dir=build
改为
build.dir=.
(2):
#build.web.dir=${build.dir}/web
改为
build.web.dir=web
2.修改build.xml文件,添加如下内容到<project>标签内:
<target name="-copy-webdir">
</target>
<target depends="init,compile,compile-jsps,-pre-dist" name="do-dist"/>
<target depends="init" if="dist.ear.dir" name="-clean-webinf-lib">
</target>
<target depends="init" name="do-clean">
<condition property="build.dir.to.clean" value="${build.web.dir}">
<isset property="dist.ear.dir"/>
</condition>
<property name="build.dir.to.clean" value="${build.web.dir}"/>
<!--
<delete includeEmptyDirs="true" quiet="true">
<fileset dir="${build.dir.to.clean}/WEB-INF/lib"/>
</delete>
<delete dir="${build.dir}"/>
<available file="${build.dir.to.clean}/WEB-INF/lib" property="status.clean-failed" type="dir"/>
-->
<delete dir="${build.classes.dir}"/>
<delete dir="${dist.dir}"/>
<delete dir="${build.dir}/empty"/>
</target>
<target name="-init" if="deploy.ant.enabled">
<property file="${deploy.ant.properties.file}"/>
<!--
<tempfile property="temp.module.folder" prefix="tomcat" destdir="${java.io.tmpdir}"/>
<unwar src="${deploy.ant.archive}" dest="${temp.module.folder}">
<patternset includes="META-INF/context.xml"/>
</unwar>
<delete dir="${temp.module.folder}"/>
-->
<xmlproperty file="${build.web.dir}/META-INF/context.xml"/>
</target>
3.修改完毕后,再次clean and build项目,并运行,会发现运行效率明显加快,并且调试速度加快。因为取消了无味的文件拷贝和删除操作。
(over)