最简单的方法是使用父项测试的依赖关系。
为此,请务必将<project>
名称属性与其文件名保持同步(确定这不是严格意义上的必要,但会极大地提高脚本的可读性和可维护性)。
所以在集结共portlet.xml中:
<project
name="build-common-portlet" <-- note the name
...
>
<target name="test">
<echo message="Calling parent test target"/>
...
</target>
</project>
这样,你可以这样做:
<project name="some-portlet" basedir="." default="deploy">
<import file="../build-common-portlet.xml" />
<target name="test"
depends="build-common-portlet.test" <-- note parent specification
>
<echo message="do foo"/>
RUN TEST FROM PARENT HERE
</target>
</project>
>>在回复评论
如果你想在做父母的测试之前做一些工作,在父母的测试之前创建一个新的目标并且依赖它:
<project name="some-portlet" basedir="." default="deploy">
<import file="../build-common-portlet.xml" />
<target name="copy-jars">
<echo message="copying jars"/>
</target>
<target name="test"
depends="
copy-jars,
build-common-portlet.test
"
/>
</project>
这不会让父测试先运行吗?在我的情况下,这将失败,因为瓶子的复制不会发生。我也不想修改父项,因为超过此项目包括父文件。 (我有一个解决方案,至少它看起来像,在下面的答案) – nheid
@ nheid。我提供了一个回答您评论的样本。 –
我喜欢这种方法比明确调用父目标更好!为我工作! –