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) > > ---------- >
