遇到最无语的问题,java下的编译办法多样,有来自ide的也有专门的编译工具,什么maven啊,ant啊。Ant是一个挺有名的,这次就遇到了这样的项目需要部署,但是自带的build文件居然不能用,先考虑了Myeclipse下如何使用ant,只要在project里面设置一下就行了,记住去掉java builder选项。
虽然正确设置了,并进行了build,但是没有正常的编译,而看看build.xml,虽然英文都懂,内容也熟悉,但是就是不清楚其原理,网上直接找一些war打包的build也不能直接用。看来没办法,只好认真的学一下ant脚本了。
其实ant就是一个make工具,而build.xml则是makefile。其中使用了xml的方式,比c下面的makefile写起来更简便,而且功能更加强大。
Code
<?xml version="1.0" encoding="UTF-8"?>
<!-- WARNING: Eclipse auto-generated file.
Any modifications will be overwritten.
To include a user specific buildfile here, simply create one in the same
directory with the processing instruction <?eclipse.ant.import?>
as the first entry and export the buildfile again. -->
<project basedir="." default="build" name="项目名称">
<property environment="env"/>
<property name="ECLIPSE_HOME" value="D:/Program Files/MyEclipse 6.5/eclipse"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.5"/>
<property name="source" value="1.5"/>
<target name="init">
<property name="build" value="build"></property>
<property name="src" value="src"></property>
<mkdir dir="${build}"/>
<mkdir dir="${build}\WEB-INF"/>
<mkdir dir="${build}\WEB-INF\classes"/>
<copy todir="${build}">
<fileset dir="${basedir}\WebContent">
<include name="WEB-INF/**" />
<include name="*.jsp" />
<include name="conf/**" />
<include name="ext/**" />
<include name="fusioncharts/**" />
<include name="images/**" />
<include name="jsp/**" />
<include name="META-INF/**" />
<include name="style/**" />
<include name="temp/**" />
</fileset>
</copy>
</target>
<target name="complie" depends="init">
<javac srcdir="${src}" destdir="${build}/WEB-INF/classes">
</javac>
</target>
<target name="makewar" depends="complie">
<war warfile="${build}/test.war" webxml="${build}/WEB-INF/web.xml">
<lib dir="${build}/WEB-INF/lib"/>
<classes dir="${build}/WEB-INF/classes"/>
<fileset dir="${build}"/>
</war>
</target>
</project>
简单写出了如上的build.xml,其实3个target一环套一环的进行了依赖,
但是要执行,还要加上参数 ,参数则是target中的name了,在project中设置一下即可,这样就能正常打包war文件。其中关键的还是要对实际项目熟悉,知道要打包的内容。
总结:通过简单使用ant,虽然没有写出多么高明的build脚本,但是可以发现,很多东西去找现成的是不可靠的,尤其是还没搞明白原理的情况下,只会浪费更多的时间。