ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Reeves" <CRee...@medfusion.net>
Subject RE: Parsing task
Date Thu, 13 Feb 2003 19:21:27 GMT
Thanks to everyone for the advice. Here's my final solution, for the
curious... I'm not completely thrilled with it, but it works (see below
for the original issue).

<project name="blah" basedir="." default="dev">

<!--
========================================================================
======== -->
<!-- Target: init -->
<!--
========================================================================
======== -->

<target name="init">

	... Set properties ...

</target>


<!--
========================================================================
======== -->
<!-- Target: all -->
<!--
========================================================================
======== -->

<target name="all" depends="init, etc., ...">

	...

</target>


<!--
========================================================================
======== -->
<!-- Target: dev -->
<!--
========================================================================
======== -->

<target name="dev" description="Build distribution for development">

	<echo message="Building distribution for development"/>
	<property name="build.type"			value="dev"/>
		
	<ant target="all" inheritAll="true"/>

</target>
    
    
<!--
========================================================================
======== -->
<!-- Target: stage -->
<!--
========================================================================
======== -->

<target name="stage" description="Build distribution for stage">

	<echo message="Building distribution for stage"/>
	<property name="build.type"			value="stage"/>

	<ant target="all" inheritAll="true"/>
				
</target>
    
    
<!--
========================================================================
======== -->
<!-- Target: prod -->
<!--
========================================================================
======== -->

<target name="prod" description="Build distribution for production">

	<echo message="Building distribution for production"/>
	<property name="build.type"			value="prod"/>

	<ant target="all" inheritAll="true"/>

</target>



<!--
========================================================================
======== -->
<!-- Target: build -->
<!--
========================================================================
======== -->

<target name="build" description="Build distribution">

	...

	<copy 	file="${etc.dir}/${build.type}.${project.name}.conf" 
			tofile="${dist.dir}/conf/${project.name}.conf">
	</copy>

	...

</target>



> -----Original Message-----
> From: Chris Reeves [mailto:CReeves@medfusion.net]
> Sent: Tuesday, February 11, 2003 1:44 PM
> To: user@ant.apache.org
> Subject: Parsing task
>
>
> I've been searching for a task that would do a little parsing for
> me...it seems I've seen this sort of thing before, but that may have 
> been a dream...
>
> I have two ant xml files for my project - one builds the project
> (build.xml), one runs the executable (run.xml) produced by the build; 
> this second file is simply bundled with the distribution.
>
> It works great - except that the properties in the run.xml must be
> changed on a per-environment basis (dev, stage, prod). And I only need

> to change a couple of lines.
>
> So, I'd like to have something like:
>
> <!-- ========== mail properties ========== -->
>
> <dev>
> <property name="to.address"
> value="devuser@nowhere.com"/>
> <property name="from.address" value="devappthingy@nowhere.com"/>
> <property name="smtp.server"
> value="myserver.nowhere.com"/>
> </dev>
>
> <stage>
> <property name="to.address"
> value="devuser@nowhere.com"/>
> <property name="from.address" value="stageappthingy@nowhere.com"/>
> <property name="smtp.server"
> value="myserver.nowhere.com"/>
> </stage>
>
> <prod>
> <property name="to.address"
> value="produser1@nowhere.com, produser1@nowhere.com"/> <property
> name="from.address" value="appthingy@nowhere.com"/>
> <property name="smtp.server"
> value="myserver.prod.nowhere.com"/>
> </prod>
>
> The end product should contain only the xml relevant for the
> environment it was built for.
>
> Also, I know I could run ant with a specific target that sets these
> properties, but that means that all properties for all env's would be 
> on each system.
>
> I suppose I could use xslt to alter the file, but it seems there
> should be something easier. I scoured the Hatchet/Loughran book, but 
> didn't find what I was looking for. Any ideas?

Mime
View raw message