Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
2.0, 2.0.1
-
None
-
None
-
Linux
Description
I have a profile specified in the pom.xml of a project. It is inteded to be activated based on the presence or absence of a file, using the <file> profile activator.
The profiles are simple:
<profile>
<id>metis</id>
<activation>
<file><missing>${basedir}/../build.properties</missing></file>
</activation>
<build>
<filters><filter>${basedir}/../build.properties.metis</filter></filters>
</build>
</profile>
<profile>
<id>dev</id>
<activation>
<file><exists>${basedir}/../build.properties</exists></file>
</activation>
<build>
<filters><filter>${basedir}/../build.properties</filter></filters>
</build>
</profile>
The problem comes in with ${basedir} – it isn't being expanded for purposes of evaluating the file. It's trying to look for a file named "${basedir}/../build.properties", rather than "/home/joe/projectX/projY/../build.properties"; as a result, the "missing" directive is always true, and the dev profile is never activated. When the filter path is evaluated, the ${basedir} property is evaluated, however.