Hi,
I want to create a hierarchy of included
configuration files, where each level of the hierarchy adds
information.
eg. I want to have the following directory
structure :
examples
mono
1.0
Tutorials
WebApp
in each directory I would want to have both a build
file and a config file.
The buildfile in each directory would do an include
of the config file in the same directory.
And the config file in each directory would do an
include of the config file in the parent directory and add specific
configuration information on it's level.
For example :
in the examples\mono\1.0 directory, the
nant.config would contain :
<!-- Include parent configuration file
-->
<include buildfile="../nant.config" failonerror="true" /> <!-- Set runtime version --> <property name="project.runtime.version" value="1.0" readonly="false" /> in the examples\mono directory, the
nant.config would contain :
<!-- Include parent configuration file -->
<include buildfile="../nant.config" failonerror="true" /> <!-- Set runtime configuration --> <property name="project.runtime.config" value="mono" readonly="false" /> so for the buildfile in the examples\mono\1.0 directory, the following
properties would be available :
<property name="project.runtime.version" value="1.0"
readonly="false" />
<property name="project.runtime.config" value="mono"
readonly="false" />
and if I was to decide that the project.runtime.config for all examples in the examples\mono directory should be mono-something, then I would only have to change the nant.config file in the examples\mono directory, and all underlying buildfiles would automatically get the updated property value. So what I want is to be able to have each level manage only it's own
configuration properties, but Nant currently does not allow recursive
includes. Right now, I get the following exception :
[NAnt.Task:include Generated Exception - [] <>]
Exception: SourceForge.NAnt.BuildException Message: D:\CVS\log4net\examples\mono\nant.config(4,3): Recursive includes are not allowed. Source: NAnt.Core at SourceForge.NAnt.Tasks.IncludeTask.InitializeTask(XmlNode taskNode) at SourceForge.NAnt.Task.InitializeElement(XmlNode elementNode) at SourceForge.NAnt.Element.Initialize(XmlNode elementNode) at SourceForge.NAnt.Project.CreateTask(XmlNode taskNode, Target target) at SourceForge.NAnt.Project.CreateTask(XmlNode taskNode) at SourceForge.NAnt.Project.InitializeProjectDocument(XmlDocument doc) at SourceForge.NAnt.Tasks.IncludeTask.ExecuteTask() at SourceForge.NAnt.Task.Execute() at SourceForge.NAnt.Project.InitializeProjectDocument(XmlDocument doc) at SourceForge.NAnt.Tasks.IncludeTask.ExecuteTask() at SourceForge.NAnt.Task.Execute() BUILD FAILED D:\CVS\log4net\examples\mono\nant.config(4,3): Recursive includes are not allowed. Try 'nant -help' for more information I never have circular references so I don't see why this shouldn't be
possible.
Can anyone comment on this ?
Thanks,
Gert
|
- Re: [nant-dev] recursive includes Gert Driesen
- Re: [nant-dev] recursive includes Ian MacLean
- Re: [nant-dev] recursive includes Ian MacLean
- Re: [nant-dev] recursive includes Gert Driesen