Our build file uses the user.name property to let developers customize
property values.  We then use -D to override user.name when doing builds for
dev/production servers.  When using any version of Ant before 1.8.2 this
works without issue.  With 1.8.2, user.name won't be overridden with what we
passed on the command line via -D.  Other non-system properties can
be successfully overridden via -D.  I did some searching in the release
notes and didn't see any changes that would cause this to happen.  Is this a
known issue? Is there a way to get the old behavior back in 1.8.2?

Thanks,

Nate

Here is a simple build file to test with:

<?xml version="1.0"?>
<project name="anttest" default="test" basedir=".">

    <!-- Override user.name for other properties to be loaded with a
-Duser.name=blah -->
    <echo message="using properties for user.name: ${user.name} loading prop
file: properties/${user.name}.properties"/>
    <property file="properties/${user.name}.properties"/>

    <property name="someprop" value="setInBuild"/>

    <target name="test">
        <echo message="user.name = ${user.name}"/>
        <echo message="java.vendor = ${java.vendor}"/>
        <echo message="someprop = ${someprop}"/>
    </target>

</project>

Reply via email to