Setting property in profiles is not evaluated for POM validation
----------------------------------------------------------------
Key: MNG-2632
URL: http://jira.codehaus.org/browse/MNG-2632
Project: Maven 2
Issue Type: Bug
Components: POM
Affects Versions: 2.0.4
Environment: WinXP
Reporter: Christoph Amshoff
There seems to be a problem concerning POM validation and setting properties in
profiles.xml: when I set a property in my profiles.xml it is not evaluated for
POM validation in a multi module build.
The details: My project C depends on module B, which itself is a child of
module A. Module A defines a system scope dependency like this:
{code}
<dependency>
<groupId>db2</groupId>
<artifactId>db2</artifactId>
<version>8.2</version>
<scope>system</scope>
<systemPath>${path.db2jar}</systemPath>
</dependency>
{code}
The path to db2.jar depends on the developer's machine and is specified in the
profiles.xml, toghether with other settings. Both A and B are building and
deploying fine.
Now, when I try to build C, it complains about missing definition for
'path.db2jar':
{code}
[WARNING] POM for '...B:pom:4.4.0-SNAPSHOT:compile' is invalid. It will be
ignored for artifact resolution. Reason:
Failed to validate POM
[DEBUG] Reason: Failed to validate POM
[DEBUG]
Validation Errors:
[DEBUG] For dependency Dependency {groupId=db2, artifactId=db2, version=8.2,
type=jar}: system-scoped dependency
must specify an absolute path systemPath.
{code}
I'm using a profiles.xml section like this one:
{code}
<profile>
<id>env-nb</id>
<activation>
<property>
<name>env</name>
<value>nb</value>
</property>
</activation>
<properties>
<path.db2jar>c:/programme/IBM/SQLLIB/java/db2java.zip</path.db2jar>
...
</properties>
</profile>
{code}
which is triggered by -Denv=nb, and this activation is working fine since
'help:effective-pom' is correctly showing me something like
{code}
<properties>
<path.db2jar>c:/programme/IBM/SQLLIB/java/db2java.zip</path.db2jar>
...
</properties>
{code}
So the profiles.xml seems to be evaluated correctly, but the property is not
used for validating the POM of dependent modules.
And yes, when I run Maven without the profiles.xml, but with specifying the
property on command line (like '-Dpath.db2jar=...'), all is working fine! But
that's not exactly what we want, since profiles are meant to encapsulate those
kind of settings...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira