Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 2.1.0
-
Fix Version/s: Issues to be reviewed for 3.x
-
Component/s: None
-
Labels:None
-
Environment:Windows XP Professional (64-bit)
-
Complexity:Intermediate
Description
It looks like Maven can longer use environment variables with parenthesis e.g. ProgramFiles(x86). The attached pom.xml emits the following with Maven 2.1.0:
ProgramFiles(x86) = ${env.ProgramFiles(x86)}
With Maven 2.0.10 we correctly get the following:
ProgramFiles(x86) = C:\Program Files (x86)
This is a pain since ProgramFiles(x86) is standard environment variable on 64-bit Windows.
Issue Links
- is related to
-
MNG-3940
Interpolation of environment variables is not case-insensitive on Windows
-
I have no 64 bit box so can't try but I assume it's not the parenthesis but the casing of the variable name that causes troubles. Although env vars are case-insensitive on Windows, Maven stores them internally in java.util.Properties. To fix
MNG-3940, env vars are now stored using the upper-cased name. Hence I would expect that<echo message="ProgramFiles(x86) = ${env.PROGRAMFILES(X86)}"/>should work with Maven 2.1.0 (but not with Maven 2.0.10).
Until this is properly fixed, I guess we should at least better document the current behavior.
MNG-3940, env vars are now stored using the upper-cased name. Hence I would expect that<echo message="ProgramFiles(x86) = ${env.PROGRAMFILES(X86)}"/>