> Let me throw out a different idea.  Why not add propertyfiles, akin
> to the way they're done in Ant?  It's a different approach, but it
> solves many of the same problems.

I may have missed something earlier in this discussion, but property files are already 
supported using the <include> task.  I use a system property file and project property 
files, then use <include> to read them in.  This lets me abstract out much of system 
and project-specific settings.

I based this off the approach in Hatcher and Loughran's _Java Development with Ant_.

Snippets below.  Excuse me if I've completely missed what you were talking about.

------------>%------------>%------------>%------------>%------------

<?xml version="1.0" ?>
<!--

    NantSystemProperties.xml

    This file contains properties set specifically for a developer's system.
    Generally, these are directory, library and tool locations.

-->

<configuration>
    <!-- =================================================================== -->
    <!-- Global build settings                                               -->
    <!-- =================================================================== -->
    <!-- Root of all .NET projects -->
    <property name="root.dir" value="c:\projects\dotnet" />


    <!-- =================================================================== -->
    <!-- Tools                                                               -->
    <!-- =================================================================== -->
    <property name="nunit" value="c:\program files\nunit 2.1\bin" />
    <property name="nant-contrib" value="C:\utils\nant\nantcontrib-0.85-20040717\bin" 
/>
    <!-- Note this is **NOT** the fxcop GUI execuatable!! -->
    <property name="fxcopcmd-exe" value="C:\Program Files\Microsoft FxCop 
1.30\fxcopcmd.exe" />


    <!-- =================================================================== -->
    <!-- Libraries                                                           -->
    <!-- =================================================================== -->
    <!-- Root of all libraries -->
    <property name="lib.home" value="c:\projects\lib" />

    <!-- Lucene -->
    <property name="lucene.dir" value="${path::combine(lib.home, 
'lucene.net\1.3.rc3-001\Release')}" />


</configuration>

------------>%------------>%------------>%------------>%------------

<?xml version="1.0" ?>
<!--

    NantProperties.xml

    This file contains properties set specifically for a project or solution.
    Generally, these are output and temp directories, version numbers.
    
    This file also includes project-specific build targets which get included (pulled)
    into the master build file.

-->
<project name="BlackHawk2">
        <!-- =================================================================== -->
        <!-- Global build settings                                               -->
        <!-- =================================================================== -->
        <property name="build.root" value="..\build" />
        <property name="build.dir" value="${path::combine(build.root,'dist\project')}" 
/>
        <property name="build.doc.dir" value="${path::combine(build.root,'docs')}" />
        <property name="build.report.dir" 
value="${path::combine(build.root,'reports')}" />

...... cruft deleted ......
</project>

------------>%------------>%------------>%------------>%------------

<?xml version="1.0" ?>
<project name="myProject" default="test">

<!--
        ===================================================================
        NAnt build file for project.
        
        Most specific settings and tasks should be located in the NAntProperties.xml 
file.
        ===================================================================
-->

    <!-- Read in system info such as envrionment variables -->
    <sysinfo />

    <!-- Load properties specific to current developer's system.  (File locations, 
etc.) -->
    <include buildfile="${sys.env.HOME}/NantSystemProperties.xml" />

    <!-- Load properties specific to current project. (Leaving file as 
"NantProperties.xml" lets
        this build file work abstractly)
    -->
    <include buildfile="NantProperties.xml" />

...... cruft deleted ......

</project>


-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to