tags:

views:

188

answers:

3

I have a set of folders with build.xml and sql scripts (one folder per database schema). I have a build.xml at the root level. I want to set the values of server, port, userid, password etc... in the root level build.xml and pass it to the build.xml in each of the folders. How can I do that?

+2  A: 

This way:

<ant antfile="sub/build.xml" inheritall="true"/>
rodrigoap
A: 

The <ant> task does what you need:

Runs Ant on a supplied buildfile. This can be used to build subprojects.

By default, all of the properties of the current project will be available in the new project.

So you just need to invoke <ant antfile="dir/build.xml"/>. No need to set the inheritAll attribute, it defaults to true.

skaffman
A: 

If you want a more fine-grained control you can set inheritall to false and pass individual properties as nested elements of <ant> task.

E.g.

<ant antfile="sub/build.xml" inheritall="false">
  <property name="server" value="server.foo.bar"/>
  <property name="port" value="1234"/>
  ...
</ant>

Also, <ant> task accepts <propertyset> nested element, so you can bundle several properties together and just pass a single property set.

Alexander Pogrebnyak