If your are using CCNet 1.5 o 1.6, you should use "Include" preprocessor
element to include external files and "define" preprocessor element to
define common properties.

review:
http://confluence.public.thoughtworks.org/display/CCNET/Configuration+Preprocessor

2011/10/6 Chris <[email protected]>

> To ask a different way, how can I setup cc.net so I define common
> varialbes in one file, and reuse them in other files?
>
> On Oct 6, 1:00 pm, Chris <[email protected]> wrote:
> > I know this is possible since the ccnet site has multiple projects
> > showing in its build page. However, when I try to set mine up I get
> > the exception below. I have my ccnet.config file set up this way.
> >
> > <?xml version="1.0"?>
> >
> > <!-- Add a project in this section -->
> > <!DOCTYPE
> >         variables [
> >                 <!ENTITY Test SYSTEM "file:C:\My Projects\Product
> Assurance Group
> > \Build Scripts\CruiseControl\Bradley A3\DTT\test_ccnet_build.xml">
> >                 <!ENTITY CxxTest SYSTEM "file:C:\My Projects\Product
> Assurance Group
> > \Build Scripts\CruiseControl\CxxTest\ccnet_build.xml">
> > ]>
> >
> > <cruisecontrol xmlns:cf="urn:ccnet.config.builder">
> >         <!-- Add the project here; uncomment the project to build
> >         -->
> >         &CxxTest;
> >         &Test;
> > </cruisecontrol
> >
> > Yes each project's ccnet_build.xml file has the stproject defined
> > since one is a clone of the other. Do I have to rename the variables I
> > have to alleviate this?
> >
> > [CCNet Server:ERROR] INTERNAL ERROR: Symbol 'stproject' already
> > defined
> > ----------
> > ThoughtWorks.CruiseControl.Core.Config.Preprocessor.EvaluationException:
> > Symbol
> > 'stproject' already defined
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.Utils.ThrowException(E
> > xceptionFactory factory, String fmt, Object[] args)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.PreprocessorEnvironmen
> > t._CheckAlreadyDefined(String name)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.PreprocessorEnvironmen
> > t._DefineTextSymbol(String name, String value, Boolean isExplicit)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Elem
> > entProcessor._DefineFromAttributes(XElement element)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defi
> > neProcessor.Process(XNode node)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor._ProcessPpElement(XElement element)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor._ProcessElement(XElement element)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor.Process(XNode node)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor._ProcessNonPpElement(XElement element)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor._ProcessElement(XElement element)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor.Process(XNode node)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor._ProcessNonPpElement(XElement element)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor._ProcessElement(XElement element)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ElementProcessors.Defa
> > ultProcessor.Process(XNode node)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ConfigPreprocessor.<Pr
> > eProcess>b__1(XNode node)
> >    at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
> >    at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.Preprocessor.ConfigPreprocessor.Pre
> > Process(XmlReader input, XmlWriter output, XmlUrlResolver resolver,
> > Uri inputUri
> > )
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.DefaultConfigurationFileLoader.Crea
> > teXmlValidatingLoader(FileInfo configFile)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.DefaultConfigurationFileLoader.Atte
> > mptLoadConfiguration(FileInfo configFile)
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.DefaultConfigurationFileLoader.Load
> > (FileInfo configFile)
> >    at
> > ThoughtWorks.CruiseControl.Core.Config.FileConfigurationService.Load()
> >    at
> >
> ThoughtWorks.CruiseControl.Core.Config.FileWatcherConfigurationService.Loa
> > d()
> >    at
> > ThoughtWorks.CruiseControl.Core.Config.CachingConfigurationService.Load()
> >    at
> > ThoughtWorks.CruiseControl.Core.CruiseServer..ctor(IConfigurationService
> > c
> > onfigurationService, IProjectIntegratorListFactory
> > projectIntegratorListFactory,
> >  IProjectSerializer projectSerializer, IProjectStateManager
> > stateManager, IFileS
> > ystem fileSystem, IExecutionEnvironment executionEnvironment, List`1
> > extensionLi
> > st)
> >    at
> > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.CreateLocal(String
> > con
> > figFile)
> >    at
> > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.CreateRemote(String
> > co
> > nfigFile)
> >    at
> > ThoughtWorks.CruiseControl.Core.CruiseServerFactory.Create(Boolean
> > remote,
> >  String configFile)
> >    at ThoughtWorks.CruiseControl.Core.ConsoleRunner.LaunchServer()
> >    at ThoughtWorks.CruiseControl.Core.ConsoleRunner.Run()
> >    at ThoughtWorks.CruiseControl.Console.AppRunner.Run(String[] args,
> > Boolean us
> > esShadowCopying)
> > ----------
>

Reply via email to