`
snoopy7713
  • 浏览: 1173168 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

ant中copy操作学习心得

    博客分类:
  • ant
阅读更多

Ant真是太方便了,以前都没注意到它。功能很强大,能创建数据库,配置服务器,部署发布应用……只需要写好build.xml文件,剩下的就交给ant来“安装”你的WEB应用了。

Appfuse 的第一个ant命令是ant new,其任务是建立一个新命名的project,少不了会复制很多文件。build.xml中也有很多copy操作,为了搞清楚ant new到底干了些什么事,还是先把copy操作了解一下。看了会ant的DOCS,网上也找了些文章,发现copy这部分都是一带而过,讲得很浅,于是我 就只有自己实验下,发现还有点收获。 ant版本为1.6.5。

1. 拷贝单个文件到指定目录下。
例:<copy todir="${basedir}/new" file="${basedir}/old/old1.txt1">
将${basedir}/old/old.txt文件拷贝到${basedir}/new下

2. 拷贝一批文件到指定目录下
例:<copy todir="${basedir}/new">
           <fileset dir="${basedir}/old">
              <include name="old1.txt" />
              <include name="old2.txt" />
              <exclude name="old8.txt" />
          </fileset>
       </copy>
      这里fileset定义的是原文件的组成形式,<include/>子属性表示包括,<exclude/>子属性表示排除,很简单,通过他们组合实现多文件的筛选,当然我这个例子用得很傻。比如
                <include name="appgen/**"/>
                <include name="ibatis/**"/>
                <exclude name="**/*.log"/>
      拷贝appget目录和ibatis目录下除了.log文件以外的其它所有文件和子目录。

      可 以把<fileset/>简写成<fileset dir="${basedir}/old" includes="old1.txt,old2.txt" />,includes可以理解成include的复数形式,包含多个文件时用逗号隔开,excludes也一样。

3. 拷贝一个目录到指定目录下
例:<copy todir="${basedir}/new">
           <fileset dir="${basedir}/old">
             <include name="appgen" />
             <include name="appgen/" />
             <include name=appgen/**" />
             <include name="appgen/***" />
           </fileset>
       </copy>
      同样使用<fileset/>属性,name指定目录名,不过这里要分两种情况,用<include/>子属性和不用<include/>子属性.
      若使用<include/>, 又要分三种情况
          若是“appgen”,则只会拷贝名为appgen的空目录过去,它里面的文件和子目录则不会拷贝。
          若是“appgen/”,或“appgen/**”,则会把整个appgen目录拷贝过去,包括里面的文件和子目录。
          若是“appgen/*”,则只会把该目录和该目录下第一级子目录的所有东西拷贝过去,而不会拷贝第二级和第二级以下的。注:“appgen/*”这儿是 一个*号,*号若大于两个,也跟一个*号是同样效果。比如“appgen/*”和“appgen/****”都只拷贝appgen目录下第一级子目录。

注:若appeng这个目录本身就是个空目录,无论怎么写,这个空目录都不会被拷贝。也就是说,copy操作不会产生创建空目录的作用,要想创建空目录,只有用mkdir。

      若不使用任何<include>属性,如
           <fileset dir="${basedir}/old">
           </fileset>
      则会拷贝${basedir}/old下的所有文件和子目录。

注:使用<exclude/>排除目录时,目录名必须写成“appgen/”或“appgen/**”形式,否则不会生效。

      以上是三种拷贝到目录的种类,注意如果计算机中没有todir指定的路径,ant将会自动创建这个路径。

4. 拷贝单个的文件:
〈copy tofile="old.txt" file="new.txt" /〉就这么简单就行了。
当然也可以写成
  <copy tofile="${basedir}/new/new.txt">
     <fileset dir="${basedir}/old" includes="old.txt" />
  </copy>
      这里includes就只能写一个文件,不能写上多个文件,因为不能将多个文件复制到一个文件中去,所以这样麻烦的写法是没有意义的。



      复 制肯定还要涉及到同名覆盖的问题,ant在copy类的API中说明:Files are only copied if the source file is newer than the destination file,这里的newer是指文件的修改时间,即使你在修改时文件内容没有任何变化,只是导致修改时间变了,ant同样会覆盖同名文件,也就是 说,ant不会检查文件内容。

      对于是复制目录的情况,由于目录没有修改时间,ant还是通过检查目录内文件的修改时间来决定是否覆盖的,若目录内某文件修改时间有变化,则会覆盖这个文件,而不是整个目录。

如果要强行覆盖,<copy/>有个overwrite属性,默认为false,改成true就行了。

分享到:
评论

相关推荐

    ANT全套资料20100322

    "ant使用笔记.ziw"和"Ant入门教程.ziw"是个人实践和学习心得,通常会包含作者在实际使用过程中遇到的问题及解决方案,对于解决实际问题非常有帮助。而".ziw"文件通常是知网或类似平台的下载格式,需要相应的阅读器...

    【数据库技术】MySQL MCP多通道协议实现与应用:高效数据库连接池管理及负载均衡使用案例分析

    内容概要:本文档介绍了MySQL MCP(MySQL Multi-Channel Protocol)的基本使用方法和常见案例。MySQL MCP提供高效的数据库连接池和负载均衡功能,支持读写分离、事务处理、批量操作以及连接池监控等功能。文档详细描述了如何安装和配置MySQL MCP,包括创建配置文件`mcp_config.json`,并通过多个使用案例展示了其功能。案例包括连接数据库、实现读写分离、处理事务、执行批量插入和监控连接池状态。此外,还介绍了高级用法如自定义负载均衡策略和故障转移处理,以及性能优化建议,如合理设置连接池大小、监控连接使用情况、设置合理的超时时间和使用预编译语句。; 适合人群:具备一定数据库操作基础,尤其是对MySQL有一定了解的研发人员和数据库管理员。; 使用场景及目标:①需要高效管理数据库连接的应用系统;②实现读写分离,提高数据库读取性能;③确保事务处理的完整性和一致性;④进行批量数据插入操作;⑤监控和优化连接池性能,防止连接泄漏;⑥配置自定义负载均衡策略和故障转移机制。; 其他说明:在实际应用中,用户可以根据具体需求灵活配置MySQL MCP,以优化数据库操作性能和稳定性。建议在使用过程中结合性能监控工具,定期检查连接池状态,并根据实际情况调整配置参数。

    哈工大大作业论文:hello的一生

    哈工大大作业论文:hello的一生

    前端压测工具:Vue3性能监控的Chrome插件开发.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Vue 3是一款备受瞩目的JavaScript框架,它采用了基于Proxy的响应式系统,显著提升了性能和调试能力。其Composition API带来了更高效的逻辑组织方式,使代码复用变得轻而易举。Tree-shaking支持让打包后的文件体积更小,进一步优化了应用性能。Vue 3还与TypeScript深度集成,提供了更完善的类型推导,让开发过程更加顺畅。无论是构建大型应用还是小型项目,Vue 3都能凭借其出色的性能和灵活的架构,帮助开发者高效完成任务,是现代Web开发的理想选择。

    visio_ppt矢量图素材-图标库1.0.pdf

    Visio学习相关文档

    COMSOL锂枝晶模型:多枝晶随机扰动生长与三种物理场分析助力锂电池研究

    内容概要:本文介绍了利用COMSOL软件对锂离子电池中锂枝晶的多枝晶随机扰动生长进行模拟的方法。通过相场、浓度场和电场三种物理场的综合分析,详细探讨了锂枝晶的生长过程及其对电池性能的影响。文章首先阐述了锂枝晶生长的重要性和研究背景,接着描述了模型的具体构建方法,包括参数设置、物理场定义以及模拟过程中的关键步骤。最后展示了模拟结果,并讨论了这些结果对于理解和优化锂离子电池的意义。 适合人群:从事锂离子电池研究的专业人士、材料科学家、物理学家及相关领域的研究人员。 使用场景及目标:适用于需要深入了解锂枝晶生长机理及其对电池性能影响的研究项目;旨在提高锂离子电池的安全性和使用寿命。 其他说明:文中提供的COMSOL代码示例可以帮助读者快速上手并进行相关实验验证。

    复刻-人工智能技术应用如何影响企业创新(2007-2023年).txt

    因文件较多,数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。样例数据及详细介绍参见文章:https://blog.csdn.net/T0620514/article/details/147962629

    基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)

    基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的Python代码及详细文档和PPT(高分项目)基于机器学习进行贷款中风险预测的P

    【数据库技术】MySQL数据库安装配置教程:涵盖Windows与Linux系统下的详细步骤及常见问题解决

    内容概要:本文档详细介绍了MySQL数据库在Windows和Linux系统上的安装与配置方法。对于Windows系统,涵盖了从下载、解压、配置环境变量、编写配置文件、安装服务、初始化数据库到更改密码和授权用户的完整流程。针对Linux系统,则推荐使用Docker进行安装,包括拉取镜像、运行容器、进入容器、查看容器IP地址以及增加远程访问权限等步骤。此外,还介绍了通过命令行和图形化工具(如MySQL Workbench和Navicat)连接MySQL数据库的方法。 适合人群:适合初学者和有一定经验的数据库管理员,特别是那些需要在不同操作系统环境中部署和管理MySQL数据库的技术人员。 使用场景及目标:①帮助用户掌握MySQL在Windows和Linux(基于Docker)两种环境下的安装配置;②指导用户完成MySQL的基本操作,如用户管理、权限分配和服务启动;③提供多种连接方式,确保用户能够顺利地通过命令行或图形界面工具访问和管理MySQL数据库。 阅读建议:由于文档内容较为详尽,建议读者按照实际操作系统环境选择性阅读相关章节,并在实践中逐步理解和掌握每个步骤的具体操作。同时,对于初次接触MySQL的用户,可以先尝试简单的命令行操作,再逐步过渡到使用图形化管理工具。

    Vue3错误边界处理:Sentry前端监控深度集成.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Vue 3是一款备受瞩目的JavaScript框架,它采用了基于Proxy的响应式系统,显著提升了性能和调试能力。其Composition API带来了更高效的逻辑组织方式,使代码复用变得轻而易举。Tree-shaking支持让打包后的文件体积更小,进一步优化了应用性能。Vue 3还与TypeScript深度集成,提供了更完善的类型推导,让开发过程更加顺畅。无论是构建大型应用还是小型项目,Vue 3都能凭借其出色的性能和灵活的架构,帮助开发者高效完成任务,是现代Web开发的理想选择。

    AC DC混合微电网Simulink模型:功率控制与双向变换器研究及应用

    内容概要:本文详细介绍了基于MATLAB 2021b的AC DC混合微电网Simulink模型的设计与实现。该模型涵盖了交直流混合微电网、AC DC双向功率变换器和功率控制等关键组件。文中探讨了AC DC混合微电网的概念及其重要性,特别是在整合可再生能源方面的优势。通过Simulink建模,实现了对微电网中能量的高效管理和分配,包括对不同能源的调度、负载响应和能量存储系统的管理。此外,还讨论了模型的实际应用场景和未来的发展方向。 适合人群:从事电力系统研究、微电网设计与仿真、可再生能源集成等相关领域的研究人员和技术人员。 使用场景及目标:①用于研究和分析AC DC混合微电网的运行特性;②支持实际工程项目的规划和实施;③探索提高能源利用效率的方法。 其他说明:该模型适用于MATLAB 2021b版本,模型较大,需要较高的计算资源。

    运用Visio绘制建筑平面图01——软件介绍.pdf

    Visio学习相关文档

    QListWedget控件使用指南

    qlistwidget使用指南

    水彩插画儿童美术教学课件素材模板.pptx

    水彩插画儿童美术教学课件素材模板

    基于COMSOL的土石混合体孔隙渗流与细颗粒迁移运动的多场多相耦合数值仿真

    内容概要:本文探讨了利用COMSOL软件对土石混合体中孔隙渗流条件下细颗粒迁移运动的数值仿真研究。研究对象主要集中在河流、堤防等水利工程中的土石混合体,重点在于细颗粒在孔隙水流动下的侵蚀、移动和沉积现象。文中详细介绍了如何在COMSOL中构建土石混合体的几何和物理模型,设定相关参数和边界条件,进而模拟细颗粒的迁移路径及其速度。此外,还讨论了多场(如渗流场、变形场、应力场、损伤场)和多相介质(如土颗粒集合体、块石、空隙、孔隙)之间的耦合作用,以及骨架结构变形对整个系统稳定性的影响。最终,通过对仿真结果的分析,揭示了细颗粒迁移运动的基本规律,为预测和评估土石混合体的稳定性和结构安全性提供了理论支持。 适合人群:从事岩土工程、水利水电工程及相关领域的科研工作者和技术人员。 使用场景及目标:适用于需要深入了解土石混合体内部力学特性及长期性能变化的研究项目,旨在提高对复杂环境下土石混合体行为的理解,从而优化工程设计方案并确保施工质量。 其他说明:本研究不仅限于理论探讨,还包括实际应用案例分析,强调了数值仿真工具在解决现实世界问题时的重要性和实用性。

    气象数据可视化2.rar

    可视化大屏,大数据,毕业设计,mysql数据库

    【Three.js基础学习】36.particles-morphing-shader

    实现粒子运动切换效果 着色器的应用

    视频剪辑工具:Vue3+FFmpeg的浏览器端.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Vue 3是一款备受瞩目的JavaScript框架,它采用了基于Proxy的响应式系统,显著提升了性能和调试能力。其Composition API带来了更高效的逻辑组织方式,使代码复用变得轻而易举。Tree-shaking支持让打包后的文件体积更小,进一步优化了应用性能。Vue 3还与TypeScript深度集成,提供了更完善的类型推导,让开发过程更加顺畅。无论是构建大型应用还是小型项目,Vue 3都能凭借其出色的性能和灵活的架构,帮助开发者高效完成任务,是现代Web开发的理想选择。

    数据同步策略:Vue3+ServiceWorker的离线缓存.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Vue 3是一款备受瞩目的JavaScript框架,它采用了基于Proxy的响应式系统,显著提升了性能和调试能力。其Composition API带来了更高效的逻辑组织方式,使代码复用变得轻而易举。Tree-shaking支持让打包后的文件体积更小,进一步优化了应用性能。Vue 3还与TypeScript深度集成,提供了更完善的类型推导,让开发过程更加顺畅。无论是构建大型应用还是小型项目,Vue 3都能凭借其出色的性能和灵活的架构,帮助开发者高效完成任务,是现代Web开发的理想选择。

Global site tag (gtag.js) - Google Analytics