- 浏览: 219859 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
thebye85:
引用 另外一个需要注意的问题,就是SessionMap和隐藏对 ...
WebWork深度探索之Session -
lanxiaoshuang:
写的真好
说的都是概念——有关编程范式 -
lhz:
grep unique wc你需要的只是这么几个小工具而已
努力做个Pragmatic Programmer
提到Ant,你一定会想到它在自动构建方面有着举足轻重的地位,于我而言,也仅仅是将其作为一个自动构建的工具来使用。由于各个流行的IDE都内部集成了对Ant的强大支持,因此,我使用Ant的方式就真的简单得不能再简单了:在网上找一个build file,然后针对自己的project稍作修改。这样,我就可以在IDE窗口中拖动鼠标点两下,就可以很方便地完成 project的构建了。真的太简便了,简便得让我忽略了Ant的其他强大功能。不过,是金子总会发光的。这两天,我切实地体会到了Ant不仅仅可以极好地完成自动构建的工作,而且它还是一个十分顺手的工具,极大地提高工作效率。
事情的缘由是这样。Leader交给我了一项工作:在一个folder下面有很多以portlet结尾的文件,第一项任务就是要得到这些文件的列表;然后呢,在另外一个PageControlList. java文件中有一个Object[][]类型的变量,里面就应该装着这些文件的名字。第二项任务就是根据文件列表中的文件名在这个Object[][]变量中进行搜索,找出还有哪些文件名没有加入到这个变量中。 好了,工作任务就讲完了,是不是很简单呢?完全可以利用IDE的搜索功能一个一个去找的,不过这样做就真的是体力活了。如果Leader让我过一段时间在检查一遍,我不拿头撞墙才怪呢。看来是得找自动化一点的办法了。我一开始想到的就是自己写一段代码来搞定,但是面对着文件的操作就让人心烦。如果用Python的话,则无法利用那个PageControlList中的方法直接得到那个Object[][]的变量,又得自己写代码去找,真的划不来。正当我郁闷于无从下手的时候,我想起了Ant,想起了常用的build file中可以很简单地获得一个folder下面的文件,还可以轻松地对文件进行filter!好,就用它了。
由于需要完成的工作比较特殊,使用Ant本身自带的task是没有办法完成的,需要写一个自定义的task。写自定义的task也是很简单的,只要extend Ant的Task类,改写execute方法即可。我把自定义的task的名字定为list,大致的代码轮廓如下:
而在相应的XML文件中,通过taskdef引用这个自定义task,就可以在target中使用了。
定好了这个框架以后,就要考虑这个task需要什么样的参数了。由于是对文件的操作,FileSet(FileSet是Ant中定义的类型,实质是文件的集合)是必须的了,我们的check的target就会扩充成这样:
为了在List中获得fileset,我们就得在List中增加一个Vector类型的变量装fileset。
由于FileSet类型提供了很简便的方法获得文件列表,整个任务就变得十分简单了。 我们在execute方法中增加相应的处理代码:
在以上代码中,includedFiles这个字符串数组里存放着我需要的文件列表。让我头痛的文件列表操作的问题就这样轻松解决了,接下来的比较工作就是小菜一碟了。
感谢可爱的小蚂蚁,是它让我在无聊的工作中找到了一点点满足的乐趣。 :)
事情的缘由是这样。Leader交给我了一项工作:在一个folder下面有很多以portlet结尾的文件,第一项任务就是要得到这些文件的列表;然后呢,在另外一个PageControlList. java文件中有一个Object[][]类型的变量,里面就应该装着这些文件的名字。第二项任务就是根据文件列表中的文件名在这个Object[][]变量中进行搜索,找出还有哪些文件名没有加入到这个变量中。 好了,工作任务就讲完了,是不是很简单呢?完全可以利用IDE的搜索功能一个一个去找的,不过这样做就真的是体力活了。如果Leader让我过一段时间在检查一遍,我不拿头撞墙才怪呢。看来是得找自动化一点的办法了。我一开始想到的就是自己写一段代码来搞定,但是面对着文件的操作就让人心烦。如果用Python的话,则无法利用那个PageControlList中的方法直接得到那个Object[][]的变量,又得自己写代码去找,真的划不来。正当我郁闷于无从下手的时候,我想起了Ant,想起了常用的build file中可以很简单地获得一个folder下面的文件,还可以轻松地对文件进行filter!好,就用它了。
由于需要完成的工作比较特殊,使用Ant本身自带的task是没有办法完成的,需要写一个自定义的task。写自定义的task也是很简单的,只要extend Ant的Task类,改写execute方法即可。我把自定义的task的名字定为list,大致的代码轮廓如下:
public class List extends Task {
public void execute() { }
}
public void execute() { }
}
而在相应的XML文件中,通过taskdef引用这个自定义task,就可以在target中使用了。
<property name="prjroot" location="D:/fantasysoft/project" />
<property name="src.dir" location="${prjroot}/src/java" />
<property name="classes.dir" location="${prjroot}\web\WEB-INF\classes" />
<property name="commonroot" location="${prjroot}/common/" />
<target name="declare">
<taskdef name="list" classname="anttask.List" classpath="${classes.dir}" />
</target>
<target name="Check" depends="declare">
<list>
</list>
</target>
<property name="src.dir" location="${prjroot}/src/java" />
<property name="classes.dir" location="${prjroot}\web\WEB-INF\classes" />
<property name="commonroot" location="${prjroot}/common/" />
<target name="declare">
<taskdef name="list" classname="anttask.List" classpath="${classes.dir}" />
</target>
<target name="Check" depends="declare">
<list>
</list>
</target>
定好了这个框架以后,就要考虑这个task需要什么样的参数了。由于是对文件的操作,FileSet(FileSet是Ant中定义的类型,实质是文件的集合)是必须的了,我们的check的target就会扩充成这样:
<target name="Check" depends="declare">
<list>
<fileset dir="${commonroot}" casesensitive="yes">
<include name="**/*Portlet.xml"/>
</fileset>
</list>
</target>
<list>
<fileset dir="${commonroot}" casesensitive="yes">
<include name="**/*Portlet.xml"/>
</fileset>
</list>
</target>
为了在List中获得fileset,我们就得在List中增加一个Vector类型的变量装fileset。
private Vector filesets = new Vector();
public void addFileset(FileSet fileset) {
filesets.add(fileset);
}
public void addFileset(FileSet fileset) {
filesets.add(fileset);
}
由于FileSet类型提供了很简便的方法获得文件列表,整个任务就变得十分简单了。 我们在execute方法中增加相应的处理代码:
public void execute() {
String[] includedFiles = null;
for (Iterator iterator = filesets.iterator(); iterator.hasNext();) {
FileSet fs = (FileSet) iterator.next();
DirectoryScanner ds = fs.getDirectoryScanner(getProject());
includedFiles = ds.getIncludedFiles();
}
}
String[] includedFiles = null;
for (Iterator iterator = filesets.iterator(); iterator.hasNext();) {
FileSet fs = (FileSet) iterator.next();
DirectoryScanner ds = fs.getDirectoryScanner(getProject());
includedFiles = ds.getIncludedFiles();
}
}
在以上代码中,includedFiles这个字符串数组里存放着我需要的文件列表。让我头痛的文件列表操作的问题就这样轻松解决了,接下来的比较工作就是小菜一碟了。
感谢可爱的小蚂蚁,是它让我在无聊的工作中找到了一点点满足的乐趣。 :)
发表评论
-
在String的面前丢脸
2004-06-18 00:39 1221重返C++的世 ... -
Summary of function parameter
2004-07-14 02:33 1118对C++这位入 ... -
此Vector非彼Vector
2004-08-05 15:51 1005在学习STL的过程中,我发现了一个熟悉的面孔— ... -
模板——泛型和STL的基础
2004-08-07 01:01 1286所谓泛型,从字面上可以猜想,就是泛化的类型(型 ... -
让人头痛的Vector(提问篇)
2004-08-07 16:55 1196在写完了此Vector非彼Vector这篇随笔 ... -
我该怎样shuffle呢
2004-08-10 01:47 1100在STL的Algorithm中有着这样的一种算 ... -
WebWork初体验
2004-08-11 17:43 1227在这篇ASP.NET ... -
WebWork深度探索之盲人摸象
2004-08-12 23:54 1058昨天尝试着利用WebWork做了一个小功能[1 ... -
WebWork深度探索之号外
2004-08-14 09:03 998昨天开始对WebWork进行了一些初步的探索[ ... -
WebWork深度探索之标签库
2004-08-15 00:28 1490由于WebWork本身提供了一套自定义的标签库 ... -
什么是Law of Demeter
2004-08-15 14:22 1165今天一如昨日,继续对WebWork进行小打小闹 ... -
所谓的Dumb Question
2004-08-15 17:16 979为了能够更 ... -
WebWork深度探索之标签库(续)
2004-08-16 15:58 1080昨日对WebWork的标签库进行了小小的研究[ ... -
WebWork深入探索之初见端倪
2004-08-19 16:35 852使用WebWork进 ... -
建网站的小Tips
2004-08-20 23:58 981这几天都在忙着做一个小网站,从网页美工到后台处 ... -
URL与RequestDispatcher
2004-08-21 23:58 961今天照例继续自己的网站建设之旅,原本以为可以大 ... -
WebWork深度探索之Pitfall
2004-08-25 14:31 929在使用WebWork进行开发的过程中,她的种种 ... -
WebWork深度探索之Session
2004-08-26 15:38 1475昨天上午刚 ... -
搞笑的textarea标签
2004-08-31 18:17 1548很久没有用 ... -
两天四疑问
2004-09-03 10:56 9429月份的前两天,我仍然做着网站开发的工作。在开 ...
相关推荐
NULL 博文链接:https://xnbhnly.iteye.com/blog/1109967
jmeter+ant 持续集成build.xml文件,直接使用ant命令执行jmeter脚本文件,得到图形测试报告
ant的配置文件ant的配置文件ant的配置文件ant的配置文件
这是一套蚂蚁设计(Antdesign)组件的sketch文档,可用于设计和产品原型
主要介绍了Ant Design Pro 下实现文件下载的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这是一个ANT自编译的程序,可以在myeclipse下创建ant文件,根据代码配置,下载后直接可以用。
ANT文件详解 ant介绍 ANT 命令
第一次做jmeter+ant自动化接口测试,需要build文件,开始直接copy博客中的内容,格式不对,调试好久不成功;后发现在jmeter/extras文件夹中有一个build文件,copy出来根据需要修改下,成功了,特上传自选供大家使用...
ant +build.xml 文件Jenkins部署javaEE项目,助力成功自动化部署。ant +build.xml 文件Jenkins部署javaEE项目,助力成功自动化部署。ant +build.xml 文件Jenkins部署javaEE项目,助力成功自动化部署。ant +build.xml...
本压缩文件解压后生成的解压文件夹即文件用于博客《Ant——使用Ant构建简单Java项目》的试验,博客参见网址:http://blog.csdn.net/gaohuanjie/article/details/40144821
ant执行 target 前先判断文件是否存在,只有文件存在才执行。
直接使用flex的sdk生成swc文件,很繁琐,而且对于大项目来说,是个头痛的事情。ant在对java打包生成jar时,它优良的设计显露无疑,这里我们使用它,来生成swc,完成项目编译打包。
ant ant ant antant ant ant antant ant ant ant
该程序为Ant的扩展任务,在拷贝文本格式的文件的同时替换文件中的Ant表达式,类似于 ${property.name},属性值来自于Ant脚本加载的属性文件,如果没有属性文件中没有定义相关属性,那么保留原来的表达式;...
ant的介绍pdf文件 ant的介绍pdf文件 ant的介绍pdf文件
开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6...
ANT-build-xml文件详解 ANT-build-xml文件详解 ANT-build-xml文件详解
Ant Design 移动端设计规范,一个基于 Preact/React/React Native 的 UI 组件库,是 Ant Design 的移动规范的 React 实现,服务于蚂蚁及口碑无线业务。 image.png 特性 基于 Ant Design 移动设计规范。 规则化的...
org.apache.tools.ant.Main org.apache.tools.ant.Task org.apache.tools.bzip2.CRC org.apache.tools.ant.Target org.apache.tools.ant.Project org.apache.tools.zip.ZipFile org.apache.tools.zip.ZipLong ...
Ant 配置文件详解 Ant 各种详细配置应有尽有!!!