使用宏生成Ant任务
我一直在寻找从顶级宏生成ANT目标的可能性 详情: 我们有异基因构建系统。ANT+IVY用作顶层(继承的solutin,不能更改)。有些项目是通过MSBuild构建的,通过exec任务从ANT调用。对于这些项目中的每一个,至少有两个对msbuild的不同调用(为了简洁起见,用宏包装),一个在“build”目标中,一个在“clean”中。其中两个仅在“目标”参数上不同。所以我在猜测,如果有这样的可能性: 扩展节点:使用宏生成Ant任务,ant,target,macrodef,Ant,Target,Macrodef,我一直在寻找从顶级宏生成ANT目标的可能性 详情: 我们有异基因构建系统。ANT+IVY用作顶层(继承的solutin,不能更改)。有些项目是通过MSBuild构建的,通过exec任务从ANT调用。对于这些项目中的每一个,至少有两个对msbuild的不同调用(为了简洁起见,用宏包装),一个在“build”目标中,一个在“clean”中。其中两个仅在“目标”参数上不同。所以我在猜测,如果有这样的可能性: 扩展节点: <extensionpoint name="build-ext-point"
<extensionpoint name="build-ext-point" />
<extensionpoint name="clean-ext-point" />
<target name="build" depends="build-ext-point" />
<target name="clean" depends="clean-ext-point" />
我的魔法宏:
<macrodef name="msbuild-proj" />
<attribute name="project" />
<sequential>
<target name="@{project}-build" >
<msbuild project="@{project}" target="Build" />
</target>
<target name="@{project}-clean" >
<msbuild project="@{project}" target="Clean" />
</target>
</sequential>
</macrodef>
如何使用:
<msbuild-proj project="CPP-proj" />
谢谢
附言:是的,我知道我可以定义那些被覆盖的构建和清理,或者通过extpoint,或者其他什么。问题实际上是我是否可以删除一些代码重复
UPD:我会自己回答这个问题。在这一点上,没有这种可能性。主要是因为目标类是任务容器,而不是任务。因此,不能将其放入容器中。所以我想我会写一些可扩展的任务。ANT有两种机制来构建模块化构建 首先,我认为您的主要问题是如何为您的构建构建“扩展点”?以下ANT任务旨在从另一个生成文件导入通用生成逻辑:
- $antu HOME/lib
- $HOME/.ant/lib
对于那些感兴趣的人:那个URI似乎不适合我。如果你还在,你能提供一个新的指针吗?(我正在尝试设置两个宏,结果成功了。不幸的是,我收到的投诉无法以工会的孩子的身份出现,工会希望围绕其扩张展开……这不是我对现代宏扩展器的期望。