首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Ant与批处理(win环境)学习札记(2)

2012-12-26 
Ant与批处理(win环境)学习笔记(2)在《Ant与批处理(win环境)学习笔记》中学习了Ant的一些基础知识,这期继续深

Ant与批处理(win环境)学习笔记(2)
在《Ant与批处理(win环境)学习笔记》中学习了Ant的一些基础知识,这期继续深入学习
——————————Ant常用task————————————————————————
1、使用classPath
  

   <target>      <javac>        <classpath refid="project.class.path"/>      </javac>   </target>

2、设置classpath
<classpath id="project.class.path">      <pathelement path="${classpath}"/>      <fileset dir="lib">         <include name="**/*.jar"/>      </fileset>      <pathelement location="classes"/>        <dirset dir="build">          <include name="apps/**/classes"/>          <exclude name="apps/**/*Test*"/>        </dirset>        <filelist refid="xxx"/>   </classpath>


3、 输出信息
输出文本信息使用echo;  输出xml使用echoxml; 引入文件使用import

4、 拷贝文件 
<copy file="myfile.txt" tofile="yourfile.txt"/>
copy的属性有:
file、 dir、fileset等;
copydir:拷贝目录

5、 删除文件
<delete file="xxx"/>
delete属性有file、dir
deletetree:删除文件目录树

6、 剪切文件
<move todir="xxx">
  //被剪切的东西
</move>

7、 重命名
<rename src="xxx" dest="yyyy"/>

8、建立临时文件
<tempfile property="xxx" destDir="yyy" suff=".xml"/>

9、 touch的使用
<touch file="myfile" datetime="xxx"/>

10、 Condition的使用[color=blue][/color]
有<and>、<or>、<not>等tag,示例如下:
 <condition property="isLinuxButNotRedHat">      <and>         <os family="Linux"/>         <not>          <os family="RedHat"/>         </not>      </and>   </condition>


11、 替换replace
replace、replacefilter

12、 调用chmod
示例:
   <chmod perm="go-rwx" type="file">      <fileset dir="/web">        <include name="xxx"/>        <exclude name="yyy"/>      </fileset>   </chmod>


13、 设置Property
有如下一些情况:
设置属性name-value;读取属性文件中的配置:<property file="xxx.properties"/>
读取网络中的property-set:
<property url="xxx..."/>;读取环境变量:<property environmen="xxx"/>

13、 建立目录
<mkdir dir="xxx"/>

14、 打jar包
<jar destfile="${dist}" basedir="xxx"/>

15、 打ear包
<ear destfile="build/myapp.ear" appxml="src/metadata/application.xm">
   <fileset> dir="build" includes="*.jar, *.war"/>
</ear>

16、 执行程序
<target name="help">
   <exec exectuable="cmd">
      <arg value="/c"/>
      <arg value="ant.bat"/>
      <arg value="-p"/>
   </exec>
</target>

17、 运行jar包
   <java classname="test.Main">      <arg value="-h"/>      <classpath>         <pathelement location="dist/test.jar"/>         <pathelement path="/xxxx/yyy.jar"/>      </classpath>   </java>

疑问:
location与path的区别?
path可以用于指向存在多个文件的位置,而location只能指向单个的文件或目录。另外path可以被设定id,供其它的path或classpath引用。如:<path id="main-classpath">,而location则没有。

18、 制作Javadoc
... ...

19、 定义一个新的task类库
   <taskdef name="myjavadoc" classname="xxxxx"/>

20、 运行sql
   
   <sql>     driver="xxxx"     url="yyy"     userid="sa"     password="123456">     insert into table test_table values(1,2,3);     truncate table some_other_table;   </sql>


21、 Filter的使用
<filter token="xxx" value="yyy"/>

22、还有一些常用的task如发送邮件、解压缩
  例子略去... ...

23、 antcall
调用target,DoSomethingelse:
 <target name=default">     <antcall target="doSomethingelse">       <param name="param1" value="value"/>     </antcall>     <target name="doSomethingelse">       <echo message="Hello World"/>     </target>   </target>


在target中还可以使用if...else类的控制流程

————————Ant中使用CVS的示例————————————
<?xml version="1.0" encoding="UTF-8"?>   <project>      <project name="cvsroot" value=":pserver:yaoxxxx"/>      <project name="basedir" value="xxx"/>      <project name="cvs.password" value=":yyyy"/>      <project name="cvs.passfile" value="zzzz"/>      <target name="initpass">         <cvspass cvsroot="${cvsroot}" password="${cvs.password}" passfile="${cvs.passfile}"/>      </target>      <target name="checkout" depends="initpass">         <cvs cvsroot="${cvsroot}" command="checkout" cvsrsh="ssh" package="myproject"         dese="${distdir}" passfile="${cvs.passfile}"/>      </target>   </project></xml>


Ant的学习就此告一段落,平时多看看开源项目的build.xml,翻翻ant docs。这是一个积累的过程... ... 我积累呀我积累呀!!!

——————————家庭作业
1、 使用Eclipse集成Ant
2、 使用Ant构建tomcat的源码
3、 使用Ant结合Junit进行自动化测试

热点排行