Maven 2 & 3
  1. Maven 2 & 3
  2. MNG-4379

Properties defined in parent POM and used in systemPath element cause POM validation warnings and dependencies ignoration - compilation error

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 2.1.0, 2.2.1
    • Fix Version/s: 3.0-alpha-6
    • Component/s: POM
    • Labels:
      None
    • Environment:
      Windows Vista 32
    • Complexity:
      Intermediate
    • Testcase included:
      yes
    • Number of attachments :
      1

      Description

      In parent POM of some "common_jar" module we have property definition:

      <properties>
      <WEBSPHERE_HOME>$

      {env.WAS7_HOME}

      </WEBSPHERE_HOME>
      </properties>

      then in child module "common_jar" we use this property

      <!-- WebSphere 7 libraries-->
      <dependency>
      <groupId>com.ibm.ws</groupId>
      <artifactId>webservices.thinclient</artifactId>
      <version>7.0.0</version>
      <systemPath>$

      {WEBSPHERE_HOME}

      /runtimes/com.ibm.ws.webservices.thinclient_7.0.0.jar</systemPath>
      <scope>system</scope>
      </dependency>

      Next we use this "common_jar" as dependency for our "other module":

      <dependency>
      <groupId>our_company.common</groupId>
      <artifactId>common_jar</artifactId>
      <version>1.0-SNAPSHOT</version>
      </dependency>

      but unfortunatelly this "other module" can not be compiled because of

      [WARNING] POM for 'our_company.common:common_jar:pom:1.0.102:compile' is invalid.

      Its dependencies (if any) will NOT be available to the current build.

      This causes that the libraries from "common_jar" are not available to "other module" and therefore "other module" can not be compiled.

      If I replace the WEBSPHERE_HOME's property in "common_jar"'s parent POM with absolute path then "other module" compiles OK. So it seems that it can not read environment properties in "common_jar" from "other module". Module "common_jar" compiles OK under all circumstances (there is no problem with this property in systemPath).

      Other thing is that in parent of "other module" there is also a property WEBSPHERE_HOME defined which points to the same directory as WEBSPHERE_HOME in "common_jar" parent POM (simple copy paste by project creation), but it seems that does not affect the issue. There was no problem with this configuration (setup) in Maven 2.0.10. Problem started with Maven 2.1.0 and continues with Maven 2.2.1. We can not use Maven 2.0.10 due to old version of Maven-Eclipse plugin which is generatin wrong ".settings" for EAR project.

      For test case to run please modify WEBSPHERE_HOME property and WS libraries dependency in "common_jar" and its parent POM.

        Issue Links

          Activity

          Hide
          Harald Entner added a comment - - edited

          Same thing with Windows XP and RH Enterprise Linux 5.

          It works fine when running the parent pom, but fails when running one of the childs.

          [WARNING] POM for 'de.xxx:xxxCommon:pom:1.0-SNAPSHOT:compile' is invalid.
          Its dependencies (if any) will NOT be available to the current build.
          
          Show
          Harald Entner added a comment - - edited Same thing with Windows XP and RH Enterprise Linux 5. It works fine when running the parent pom, but fails when running one of the childs. [WARNING] POM for 'de.xxx:xxxCommon:pom:1.0-SNAPSHOT:compile' is invalid. Its dependencies ( if any) will NOT be available to the current build.
          Hide
          Benjamin Bentmann added a comment -

          Fixed in r895245.

          The problem is that environment variables are not available during dependency resolution. You could work around this by setting an equally named JVM system property via MAVEN_OPTS=-Denv.WAS7_HOME=%WAS7_HOME%.

          Show
          Benjamin Bentmann added a comment - Fixed in r895245 . The problem is that environment variables are not available during dependency resolution. You could work around this by setting an equally named JVM system property via MAVEN_OPTS=-Denv.WAS7_HOME=%WAS7_HOME% .
          Benjamin Bentmann made changes -
          Field Original Value New Value
          Fix Version/s 3.0-alpha-6 [ 15996 ]
          Resolution Fixed [ 1 ]
          Assignee Benjamin Bentmann [ bentmann ]
          Status Open [ 1 ] Closed [ 6 ]
          Benjamin Bentmann made changes -
          Link This issue is duplicated by MNG-4545 [ MNG-4545 ]

            People

            • Assignee:
              Benjamin Bentmann
              Reporter:
              Tomas Szabo
            • Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: