⑴ 关于ant的搜索并处理文件
<fileset dir="${frame.dir}" includes="**/a.cfg" casesensitive="true">
</fileset>
扩展程序读取a.cfg
⑵ Ant读取文本中的一行
凑合使用XmlProperty
⑶ ant 查找文件中是否含有某字符串
如何判断一个文件里面是否有特定的字符串
比如我有一个temp文件。
如果内容含有Hello Would则echo “Hello Would”
如果内容不含有Hello Would则echo “Hello China”
⑷ ant 怎么删除文件里模糊匹配的内容
用fileset 来过滤要删掉的目录和文件
<delete verbose="true" includeemptydirs="true">
<fileset dir="${buildDir}">
<include name="**/*"/>
</fileset>
</delete>
注:includeemptydirs 的意思是就算文件夹是空的,也同样删除。
这样就会避免使用像
<delete dir="build">
</delete>
这样就会把build文件夹以及下面的所有子目录一起删掉。很多时候父目录是没有必要每次都删了重建的,只要清空这个文件夹就好了。
⑸ 如何在Ant中使用逻辑判断比如判断文件是否存在
好久不写ant脚本了,最近两天在用ant做web应用的安装部署脚本,为了实现web服务器的多版本兼容,必然要使用逻辑判断,比如我要判断是安装在weblogic8上还是weblogic9上,而在ant中处理逻辑判断真是麻烦,只能作用于task,要利用property来做判断,使用available来设置property。例如:
<?xml version="1.0" encoding="GB2312"?>
<project name="weblogic ant task" default="build">
<target name="detect.file" >
<condition property="fileIsExists" >
<and>
<available file="c:/123.txt"/>
</and>
</condition>
</target>
<target name="echoDemo" if="fileIsExists" depends="detect.file">
<echo message="hello ant"/>
</target>
<target name="build">
<antcall target="echoDemo"/>
</target>
</project>
上面判断一个文件,如果存在的话 fileIsExists 就为true,echoDemo这个task在执行前会先判断fileIsExists 是否为true如果不为true就不执行了。c盘下面有123.txt的话会打印hello ant 否则不会打印。
这里面还有一个小陷阱,我习惯使用antcall,不喜欢使用depends,但是使用antcall的话就会有问题,例如我最开始这么写的,就不行。
<?xml version="1.0" encoding="GB2312"?>
<project name="weblogic ant task" default="build">
<target name="detect.file">
<condition property="fileIsExists">
<and>
<available file="c:/123.txt"/>
</and>
</condition>
</target>
<target name="echoDemo" if="fileIsExists">
<echo message="hello ant"/>
</target>
<target name="build">
<antcall target="detect.file"/>
<antcall target="echoDemo"/>
</target>
</project>
使用antcall的话在echoDemo这个task执行的时候fileIsExists这个属性永远不为true,即便在执行完detect.file后它已经为true了,但是它不会被传递到下一个task,没用深入研究过ant,所以具体内部实现还不了解。
下面是ant的官方参考文档
更复杂的可以参考
http://ant.apache.org/manual/CoreTasks/conditions.html
⑹ Java的Ant文件是什么如何创建
ant文件是build.ant。我也有用这个生成固定规格文件用的,我是用它生成数据库脚本用,挺方便的
你在项目里面就有新建ant文件那个东西,new--》其他---》搜索ant然后建立就好了
给你看个样本
<?xml version="1.0" encoding="GB2312"?>
<!-- ======================================================================
2013-01-30
project:数据库脚本
description:生成数据库脚本包用的Ant脚本
====================================================================== -->
<project name="SQLscript" default="default">
<property name="FILE_NAME_RESOURCE" value="resource_tmrpt.sql" />
<property name="FILE_NAME_INIT" value="init_tmrpt.sql" />
<!-- 创建数据库资源 -->
<property name="TMRPT_TABLE_SCRIPT" value="./03_Table" />
<property name="TMRPT_SEQUENCE_SCRIPT" value="./08_sequence" />
<property name="TMRPT_FUNCTION_SCRIPT" value="./07_function" />
<property name="TMRPT_PROCEDURE_SCRIPT" value="./02_procere" />
<property name="TMRPT_JOB_SCRIPT" value="./05_job" />
<!-- 初始化数据 -->
<property name="TMRPT_DATA_SCRIPT" value="./01_data" />
<target name="default" depends="init,resource_tmrpt,init_tmrpt" description="">
</target>
<target name="init">
<tstamp>
<format property="TODAY" pattern="yyyyMMdd" locale="cn" />
</tstamp>
<delete file="${FILE_NAME_RESOURCE}"></delete>
<delete file="${FILE_NAME_INIT}"></delete>
</target>
<!-- resource_tmrpt Script -->
<target name="resource_tmrpt">
<concat destfile="${FILE_NAME_RESOURCE}" append="true" fixlastline="true">
<fileset dir="${TMRPT_TABLE_SCRIPT}" casesensitive="false">
<include name="*.SQL" />
</fileset>
</concat>
<concat destfile="${FILE_NAME_RESOURCE}" append="true" fixlastline="true">
<fileset dir="${TMRPT_SEQUENCE_SCRIPT}" casesensitive="false">
<include name="*.SQL" />
</fileset>
</concat>
<concat destfile="${FILE_NAME_RESOURCE}" append="true" fixlastline="true">
<fileset dir="${TMRPT_FUNCTION_SCRIPT}" casesensitive="false">
<include name="*.SQL" />
</fileset>
</concat>
<concat destfile="${FILE_NAME_RESOURCE}" append="true" fixlastline="true">
<fileset dir="${TMRPT_PROCEDURE_SCRIPT}" casesensitive="false">
<include name="*.SQL" />
</fileset>
</concat>
<concat destfile="${FILE_NAME_RESOURCE}" append="true" fixlastline="true">
<fileset dir="${TMRPT_JOB_SCRIPT}" casesensitive="false">
<include name="*.SQL" />
</fileset>
</concat>
</target>
<!-- init_tmrpt Script -->
<target name="init_tmrpt">
<concat destfile="${FILE_NAME_INIT}" append="true" fixlastline="true">
<fileset dir="${TMRPT_DATA_SCRIPT}" casesensitive="false">
<include name="*.SQL" />
</fileset>
</concat>
</target>
</project>
这个就是某些后缀的文件在固定目录里面生成到同一个脚本里面,我这个是生成到resource_tmrpt.sql和init_tmrpt.sql
⑺ ant 编译忽略某个java类
以前了解过一点
<!--fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径,
通过id可以指定这个文件的名称,在使用的时候进行直接的引入
include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件
-->
<fileset id="src.path" dir="src">
<include name="**/*.*"/>
<!--<exclude name="**/*.java"/>-->
</fileset>
⑻ 怎么装滤镜和ant格式的文件
把已经下载完的滤镜-剪切-
然后到Photo
Shop
图标上点右键然后再点击-查找目标-在Photo
Shop
文件夹里单击-预置-然后把下载完的滤镜粘贴到文件夹里的滤镜里就OK了!!!!
你照这个方法去试试!!
⑼ ant脚本文件的时候,如何忽略空文件
可以通过includeEmptyDirs:用于指定是否复制空目录文件。默认为true。
< todir="${basedir}/new" includeEmptyDirs="false">
<fileset dir="${basedir}/old" >
<include name="appgen" />
<include name="appgen/" />
<include name=appgen/**" />
<include name="appgen/***" />
</fileset>
</>
通过这个属性,只要是空路径的文件都不会被复制。