我想编写一个脚本,它从目录中获取所有适配器的输入并并行构建适配器。我只想要一个通用脚本,它可以与每个移动的第一个代码一起构建适配器。
<target name="build-adapter">
<dirset id="check" dir="/Users/admin/Documents/workspace1/MyTime/adapters" includes="*"/>
<property name="test" refid="check"/>
<echo>${test}</echo>
<parallel>
<adapter-builder
folder="/Users/admin/Documents/workspace1/MyTime/adapters/${test}"
destinationfolder="/Users/admin/Documents/workspace1/MyTime/bin"
classpathref="base.path"/>
</parallel>
</target>
我正在抛出以下错误..
创建临时目录以构建适配器失败。
答案 0 :(得分:0)
您可能会收到此错误,因为该任务未找到任何适配器。我认为你无法找到所有适配器。
也许您可以提供适配器/路径列表并使用FOR循环:
答案 1 :(得分:0)
您的代码确实如下:
${test}
${test}
(/../Adapter1;/../Adapter2
)我相信带有parallel="true"
旗帜的ant-contrib的for task是你的朋友
修改强> 对我有用的Ant任务:
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<target name="build-adapter">
<echo>building adapter: ${adapter.path}</echo>
<basename property="adapter.name" file="${adapter.path}"/>
<adapter-builder folder="adapters/${adapter.name}" destinationfolder="${build.dir}"/>
</target>
<target name="build-adapters">
<foreach param="adapter.path" parallel="true" target="build-adapter">
<path>
<dirset dir="adapters" includes="*"/>
</path>
</foreach>
</target>
注意:
答案 2 :(得分:0)
它得到修复。我使用下面的代码来完成目标。
<target name="build-adapter-parallel">
<for param="check" parallel="true">
<path>
<dirset dir="/Users/admin/Documents/workspace1/MyTime/adapters" includes="*"/>
</path>
<sequential>
<echo> value of @{check}</echo>
<adapter-builder
folder="@{check}"
destinationfolder="/Users/admin/Documents/workspace1/MyTime/bin"
classpathref="base.path"/>
</sequential>
</for>
</target>