用Ant来打包
Eclipse内置了Ant。Ant是一种类似于批处理程序的软件包,它主要繁琐的工作是编写和调试自动处理脚本(一个XML文件),但只要有了这个脚本,我们就可以一键完成所有的设定工作。
~;F\^1S1H!w5B.|6g0本节还是以myswt这个应用程序项目的打包为例,用Ant来完成“编译->打成JAR包->复制项目引用库->复制本地化文件swt-win32-3063.dll->输出API文档”这五步。
2QX4s N.c|01、在myswt项目根目录下,创建最主要的build.xml文件
~,H E*m`+HD0<?xml version="1.0"?>
n_+`AB0<project name="myswt project" default="api_doc">51Testing软件测试网X+Mzx$V!e0W
<!-- 定义目录变量 -->
0\8Ib&K2b0<property name="src.dir" value="src" />51Testing软件测试网!hx-{8ZWF
<property name="bin.dir" value="bin" />51Testing软件测试网 R'K$S9\#Riq
<property name="eclipse_plugins.dir" value="c:/eclipse/plugins" />51Testing软件测试网#c?T6N(V
<property name="dist.dir" value="d:/dist" />51Testing软件测试网m2d L,C"kh
<property name="doc.dir" value="/${dist.dir}/api" />
d;E3{#}X5h PBJg0<property name="swt.dll" value="/swt-win32-3063.dll" />51Testing软件测试网1Tp`j{*d
<!-- 定义编译文件时所引用的库 -->51Testing软件测试网7dGB;P*u}!K
<path id="master-classpath">51Testing软件测试网-Pz6A/aP7c]d
<fileset dir="${eclipse_plugins.dir}" id="project_lib">51Testing软件测试网%k6{ a@C
<include name="org.eclipse.ui.workbench_3.0.1/workbench.jar"/>
4F AO,xe0<include name="org.eclipse.swt.win32_3.0.1/ws/win32/swt.jar"/>
[%Z[Vl m;AB0<include name="org.eclipse.jface_3.0.0/jface.jar"/>51Testing软件测试网{$A;J2f`1@O
<include name="org.eclipse.osgi_3.0.1/osgi.jar"/>51Testing软件测试网mF3NKD
<include name="org.eclipse.osgi_3.0.1/core.jar"/>
W_|$Y']!U,c0<include name="org.eclipse.osgi_3.0.1/resolver.jar"/>
EQ&V!p9_n&A0<include name="org.eclipse.osgi_3.0.1/defaultAdaptor.jar"/>
Hv/e5Q }Z2?0<include name="org.eclipse.osgi_3.0.1/eclipseAdaptor.jar"/>
s+Dk S*x0Iu0<include name="org.eclipse.osgi_3.0.1/console.jar"/>51Testing软件测试网9Y F5yV:L8O${$}E
<include name="org.eclipse.core.runtime_3.0.1/runtime.jar"/>
j-y,G5g/x8~0<include name="org.eclipse.jface.text_3.0.1/jfacetext.jar"/>
]q"B ]fn q:Y8q0<include name="org.eclipse.ui.workbench.compatibility_3.0.0/compatibility.jar"/>
HM6{0w2fOK$k0</fileset>51Testing软件测试网6^+u{)S(n~
</path>51Testing软件测试网$j0iQ8S6_ [.f
51Testing软件测试网#@a|X'KC)eX&K
<!-- 首任务(空)-->51Testing软件测试网]_1n/Ts0^;Q(?
<target name="init"/>51Testing软件测试网w,X:]2U.b
<!-- 编译 -->
0u4`f2E+W$W&Pl0<target name="compile" depends="init">51Testing软件测试网e P{cNH!D
<delete dir="${bin.dir}"/>51Testing软件测试网 g%?7Yx6b:D;X$f _7r
<mkdir dir="${bin.dir}"/>
/m j0Y*NE+j)Wsyd0<!--编译源程序-->
Z;HR h | ^jc0<javac srcdir="${src.dir}" destdir="${bin.dir}" target="1.4">
u l2jT*?0V0<classpath refid="master-classpath"/>
&CA+_h;},co2EN0</javac>
,t`QYF.L0<!--复制图标目录-->51Testing软件测试网:]$a`&Tk&Qh}3RI
<mkdir dir="${bin.dir}/icons"/>51Testing软件测试网w JU(w#{P Y
<copy todir="${bin.dir}/icons">
v2x-r4k_8u!IL;E0<fileset dir="icons"/>
d6{1]3zyd { lG0</copy>51Testing软件测试网6N"O]8c.QO
</target>51Testing软件测试网1^%v"~CP| RZa1e
<!-- 打包 -->
;J(H)LP6yB)uC0<target name="pack" depends="compile">
#^ht7R^`]0<!-- bin目录压缩成JAR包 -->
'\,~"Wmar;WlYZz/_i0<delete dir="${dist.dir}"/>51Testing软件测试网:Gt7\3Z\3_"y
<mkdir dir="${dist.dir}" />
9ab$},e3s0D*e|0<jar basedir="${bin.dir}" destfile="${dist.dir}/myswt.jar" manifest="ant_manifes.txt">
)Hs%A]5_0]Mt5]%Dg\G0<exclude name="**/*Test.*" />
m9rxNwhsyp0<exclude name="**/Test*.*" />51Testing软件测试网Z'FHK]^
</jar>
O2^ `2s7o%yx3l!nl Z0<!-- 复制用到的库 -->
\c0h:~HN6[&|0<mkdir dir="${dist.dir}/lib" />
+U w$`*m ^(LB0<copy todir="${dist.dir}/lib">
T)H'_uA*B5w,oj0<fileset refid="project_lib"/>51Testing软件测试网%|y5Tl&v;goT_
</copy>
B$@:_ tO7@0<!-- 复制本地化文件 -->
l EU cyd*a-?0<copy todir="${dist.dir}" file="${swt.dll}"/>51Testing软件测试网Qj#k?*?3J+c
</target>
By(NG8Qu$A0<!-- 输出api文档 -->
$ct ]9~+u}5p}0<target name="api_doc" depends="pack">