您的位置:首页 > 其它

使用Ant打包项目!!!

2010-08-20 16:57 393 查看
这里讲得的打包项目,不是指的在eclipse里面运行,这里只介绍在cmd里面怎么弄(其实很简单,简单得就像1+1=2)。

为什么不在eclipse里面运行直接打包,而要麻烦的开一个黑窗口,去敲命令呢?

因为在eclipse里面打包,ant会根据eclipse的一些配置属性来打包,打包后的war包发布到正式服务器上或许
会存在莫名的问题!!!

这个就跟在eclipse下面启动tomcat、jboss等服务器一样,启动时间要比到相应bin下面去启动快些。或许是eclipse有缓存哪些东东吧!

所以项目在进行性能测试的时候,注意别用eclipse来启动服务器,那样测出来的性能会偏高。发布环境谁装eclipse呢!

进入正题,下载ant(到处都可以下),ant是apache的一个开源项目,也是用java写的。随便选择一个版本,或者选最新的吧!

下载下来是一个zip,解压开得到一个文件夹,这样就算安装好了(我是放在d盘下面的:D:/apache-ant-1.6.4
)。

开始 --> 运行 --> D: --> cd apache-ant-1.6.4 --> bin --> ant -version

屏幕输出(会显示版本信息):

Apache Ant version 1.6.4 compiled on May 19 2005

如果不想每次都要先进入这个目录,可以配置环境变量,怎么配?和jdk的配法同理,不过ant就叫:ANT_HOME

先说一下,当敲“ant
”这个命令的时候,ant工具就会去找同目录下一个叫“build.xml
”的文件,也可以不叫build.xml这个名字,但是命令也就相应的变了,那就要去记一些复杂的参数了,所以在这点上我还是不去追求个性了。在build.xml文件里面就是写的怎么发布项目,实际中也没有谁要你去写这个东东的,会copy来改就ok了。看到这里或许也就清楚了用ant来发布项目打包要做什么,其实就是进入到项目目录下面,然后敲“ant”,就这么简单。下面写一个helloword来看看:

在d
盘下面新建一个:build.xml
,里面放:

<?xml version="1.0" encoding="UTF-8"?>
<project name="helloWorld" default="say">
<target name="say">
<echo message="Hello Word !!!"/>
</target>
</project>


然后:开始 --> 运行 --> D: --> ant (注意:build.xml是放在D盘的,所以也要进入到D盘)

屏幕会输出:

D:/>ant

Buildfile: build.xml

say:

[echo] Hello Word !!!

BUILD SUCCESSFUL

Total time: 0 seconds

---------------到这里对于一个开发人员来说,用ant来打包项目了解这么多也就行了,下面再介绍一个build.xml里面的东西的具体含义,以便改起来也得心应手!!!!!!!

<project name="HelloWorld" default="run" basedir=".">
</project>


ant的所有内容必须包含在这个里边,name是你给它取的名字,basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的事情。

<property name="src" value="src"/>


类似程序中的变量,为什么这么做想一下变量的作用

<target name="compile" depends="init">
</target>



你想做的每一件事情写成一个target ,它有一个名字,depends是它所依赖的target,在执行这个target
例如这里的compile之前ant会先检查init是否曾经被执行过,如果执行过则直接直接执行compile,如果没有则会先执行它依赖的
target例如这里的init,然后在执行这个target

编译:

<target name="compile" depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>


做jar包:

<target name="build" depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>


运行:

<target name="run" depends="build">
<java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>


删除生成的文件

<target name="clean">
<delete dir="${dest}" />
<delete file="${hello_jar}" />
</target>


这里显示了如何在一个target里边调用其他的target

<target name="rerun" depends="clean,run">
<ant target="clean" />
<ant target="run" />
</target>


其实这些东东都是很见名知意的,比如还有:

<war /> 打war包

<mkdir /> 新建文件夹

<copy /> 复制

等。再次申明,会改就ok
了!!!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: