You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by isaacsteele <is...@zoominfo.com> on 2009/09/14 16:16:50 UTC
build dependencies and executing independent targets in the same
project
I'm relatively new to Ant and have an issue. I am using cruisecontrol and
ant to build our projects.
I have a build file with targets A, B, C and D.
C is dependent on B and A, likewise B is dependent on A.
D, however, is independent of all of them.
I want to be able to call C (which is my test target), then call D after C
regardless of whether the test target passes or fails. I'm using <subant>
within C and currently, when a test fails, it exits the build.xml and fails
the build without having run target D. (And without C being a dependencies
of D, even if it passes, D is not run I'm required to put a default target
in my project.)
So my questions are:
1) Is this possible--that I execute a target at the end of a build
regardless of failure?
2) What should my default target be (if I have two independent targets that
should be built)?
3) I know I could use <failonerror> in subant and then make D dependent on
C, but then the build isn't marked as failed when finished. (If there is a
way to fail a build with a test error after using <failonerror=false>, then
that might be the easiest thing.)
Thanks for your help.
--
View this message in context: http://www.nabble.com/build-dependencies-and-executing-independent-targets-in-the-same-project-tp25436635p25436635.html
Sent from the Ant - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: build dependencies and executing independent targets in the same project
Posted by Stefan Bodewig <bo...@apache.org>.
On 2009-09-14, isaacsteele <is...@zoominfo.com> wrote:
> Apologies about placing it in this question in the wrong forum, should I copy
> the post and re-submit it there?
No, just please remember doing so in the future.
> I'm using subant because it is calling my tests for multiple projects in
> multiple directories:
> <target name="test">
> <subant>
> <fileset dir="../../" includes="**/build.xml" excludes="**/abc/build.xml,
> **/xyz/build.xml">
> <target name="test"/>
> </subant>
> </target>
I see.
> If there is a better way to do this (with with the junit task), I'd love to
> use it, but I don't know how at this point.
You could use one big junit task and different batchtests, but that
would probably defeat your subant based build system.
It would probably be a good idea to add an errorProperty attribute to
the <ant> family of tasks so you could specifiy failOnError="false"
errorProperty="tests.failed" and have <fail if="tests.failed"/> after
your target D has finished.
Suddenly we are on-topic for the dev list ;-)
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: build dependencies and executing independent targets in the
same project
Posted by isaacsteele <is...@zoominfo.com>.
Apologies about placing it in this question in the wrong forum, should I copy
the post and re-submit it there?
I'm using subant because it is calling my tests for multiple projects in
multiple directories:
<target name="test">
<subant>
<fileset dir="../../" includes="**/build.xml" excludes="**/abc/build.xml,
**/xyz/build.xml">
<target name="test"/>
</subant>
</target>
This calls ~15 different build.xml files for projects that I want to test
that I built previously my overall project build.xml.
If there is a better way to do this (with with the junit task), I'd love to
use it, but I don't know how at this point.
Stefan Bodewig wrote:
>
> [Isaac, this really is a qiestion for the user list, not the dev list
> which is about the development of Ant itself, not developing with Ant.]
>
> On 2009-09-14, isaacsteele <is...@zoominfo.com> wrote:
>
>> 1) Is this possible--that I execute a target at the end of a build
>> regardless of failure?
>
> Not out of the box, no. There are patches to enable this and I think
> I've even seen somebody implement a BuildListener that will invoke a
> target in the *finished event (which sounds dangerous given that the
> project instance thinks the build is over).
>
>> 2) What should my default target be (if I have two independent targets
>> that
>> should be built)?
>
> Probably something like <target name="do-all-of-it" depends="C,D"/>
>
>> 3) I know I could use <failonerror> in subant and then make D dependent
>> on
>> C, but then the build isn't marked as failed when finished.
>
> In the part I've snipped, you said C would fail if a test failed. do
> you really need subant at all? If not, then make <junit> set a property
> instead of making the build fail and later use <fail/> if that property
> has been set.
>
> Stefan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
> For additional commands, e-mail: dev-help@ant.apache.org
>
>
>
--
View this message in context: http://www.nabble.com/build-dependencies-and-executing-independent-targets-in-the-same-project-tp25436635p25442452.html
Sent from the Ant - Dev mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org
Re: build dependencies and executing independent targets in the same project
Posted by Stefan Bodewig <bo...@apache.org>.
[Isaac, this really is a qiestion for the user list, not the dev list
which is about the development of Ant itself, not developing with Ant.]
On 2009-09-14, isaacsteele <is...@zoominfo.com> wrote:
> 1) Is this possible--that I execute a target at the end of a build
> regardless of failure?
Not out of the box, no. There are patches to enable this and I think
I've even seen somebody implement a BuildListener that will invoke a
target in the *finished event (which sounds dangerous given that the
project instance thinks the build is over).
> 2) What should my default target be (if I have two independent targets that
> should be built)?
Probably something like <target name="do-all-of-it" depends="C,D"/>
> 3) I know I could use <failonerror> in subant and then make D dependent on
> C, but then the build isn't marked as failed when finished.
In the part I've snipped, you said C would fail if a test failed. do
you really need subant at all? If not, then make <junit> set a property
instead of making the build fail and later use <fail/> if that property
has been set.
Stefan
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org