为了与ant配合使用,我创建了带有一些常见模板sql脚本的模板目录结构。
我在目录名,文件名和文件中使用了属性名。
例如,模板的根目录为:
“ $ {application.name}-部署-$ {release.buildid}”
文件名称为:
“ $ {application.name} _install.sql”
以及sql脚本中使用的属性。
我想通过扩展所有使用的属性来复制此模板目录。
我该怎么做,最好/最快/更少代码的方式是什么?
答案 0 :(得分:1)
我已经设法通过下面的Ant xml解决了我的问题。
如果有人有更好的方法,请把它置于这种威胁之中。
<target name="expand_filename">
<loadresource property="tofile">
<propertyresource name="file"/>
<filterchain>
<expandproperties/>
</filterchain>
</loadresource>
<move file="${file}" tofile="${tofile}"/>
</target>
<target name="start">
<dirset id="deploy" dir="../Templates/Deploy_template">
<depth max="0"/>
</dirset>
<propertyregex property="template_dir"
input="${toString:deploy}"
regexp=";"
replace=""/>
<loadresource property="deploy_dir">
<propertyresource name="template_dir"/>
<filterchain>
<expandproperties/>
</filterchain>
</loadresource>
<copy todir="../${deploy_dir}">
<fileset dir="../Templates/Deploy_template/${template_dir}"/>
<filterchain>
<expandproperties/>
</filterchain>
</copy>
<foreach param="file" inheritall="true" target="expand_filename">
<path>
<fileset dir="../${deploy_dir}" includes="*$*{*}*"/>
</path>
</foreach>
</target>