Maven
  1. Maven
  2. MNG-4123

still can't override properties in pom.xml with -D command line settings. regression?

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: 3.0-alpha-2
    • Fix Version/s: None
    • Component/s: Command Line
    • Labels:
      None
    • Environment:
      windows vista

      Description

      Hello...
      The original bug ( http://jira.codehaus.org/browse/MNG-1992
      ) was marked as fixed in 2.1.0, and 3.0-alpha-1

      I used a slightliy modifed version of the test case described in http://jira.codehaus.org/browse/MNG-3417
      to understand what I thought i was seeing...

      It still seems not to work as described in the original bug.

      I tried two things...

      1) tried resource filtering (running > mvn -Dtest.property='overridden' clean verify < and catting test.xt as described in the original bug report.
      same result.

      Then I tried updating my maven resources plugin to 2.3 – running with maven 3.0-alpha-2 (see modified pom.xml, below). Stil no luck.

      2) next i tried
      mvn -e -Dtest.result=haha help:effective-pom

      the property setting given for test.result was still default.

      So it seems like there are two failure modes . one for resource filtering, and one for interpolation process that does not involve filtering..
      or maybe they have they same root cause. In any case it seems not to work still (at least on windoze).

      thanks !
      -chris

      modified pom.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.test</groupId>
        <artifactId>test</artifactId>
        <version>1.0</version>
        <packaging>jar</packaging>
      
      
        <properties>
           <test.property>default</test.property>
           <test.include.pattern>*.txt</test.include.pattern>
        </properties>
        <profiles>
             <profile>
                  <id>test.profile</id>
                  <properties>
                     <test.property>profile</test.property>
                     <test.include.pattern>*.txt</test.include.pattern>
                  </properties>
              </profile>
        </profiles>
      
          <build>
           <pluginManagement>
              <plugins>
                            <plugin>
                                <artifactId>maven-resources-plugin</artifactId>
                                    <version>2.3</version>
                            </plugin>
      
              </plugins>
           </pluginManagement>
      
      
      
      
          <testResources>
             <testResource>
                 <directory>${basedir}/src/test/resources</directory>
                 <filtering>true</filtering>
                 <includes>
                     <include>${test.include.pattern}</include>
                 </includes>
             </testResource>
         </testResources>
         </build>
      </project>
      
      1. MNG-4123.zip
        0.9 kB
        Benjamin Bentmann

        Issue Links

          Activity

          chris bedford created issue -
          Benjamin Bentmann made changes -
          Field Original Value New Value
          Description Hello...
          The original bug ( http://jira.codehaus.org/browse/MNG-1992
           ) was marked as fixed in 2.1.0, and 3.0-alpha-1

          I used a slightliy modifed version of the test case described in http://jira.codehaus.org/browse/MNG-3417
          to understand what I thought i was seeing...

          It still seems not to work as described in the original bug.

          I tried two things...

           1) tried resource filtering (running > mvn -Dtest.property='overridden' clean verify < and catting test.xt as described in the original bug report.
                same result.

              Then I tried updating my maven resources plugin to 2.3 -- running with maven 3.0-alpha-2 (see modified pom.xml, below). Stil no luck.


           2) next i tried
               mvn -e -Dtest.result=haha help:effective-pom

              the property setting given for test.result was still default.


          So it seems like there are two failure modes (?) . one for resource filtering, and one for interpolation process that does not involve filtering..
          or maybe they have they same root cause. In any case it seems not to work still (at least on windoze).

          thanks !
           -chris

          modified pom.xml


          <?xml version="1.0" encoding="UTF-8"?>
          <project>
            <modelVersion>4.0.0</modelVersion>
            <groupId>com.test</groupId>
            <artifactId>test</artifactId>
            <version>1.0</version>
            <packaging>jar</packaging>


            <properties>
               <test.property>default</test.property>
               <test.include.pattern>*.txt</test.include.pattern>
            </properties>
            <profiles>
                 <profile>
                      <id>test.profile</id>
                      <properties>
                         <test.property>profile</test.property>
                         <test.include.pattern>*.txt</test.include.pattern>
                      </properties>
                  </profile>
            </profiles>

              <build>
               <pluginManagement>
                  <plugins>
                                <plugin>
                                    <artifactId>maven-resources-plugin</artifactId>
                                        <version>2.3</version>
                                </plugin>

                  </plugins>
               </pluginManagement>




              <testResources>
                 <testResource>
                     <directory>${basedir}/src/test/resources</directory>
                     <filtering>true</filtering>
                     <includes>
                         <include>${test.include.pattern}</include>
                     </includes>
                 </testResource>
             </testResources>
             </build>
          </project>



          Hello...
          The original bug ( http://jira.codehaus.org/browse/MNG-1992
           ) was marked as fixed in 2.1.0, and 3.0-alpha-1

          I used a slightliy modifed version of the test case described in http://jira.codehaus.org/browse/MNG-3417
          to understand what I thought i was seeing...

          It still seems not to work as described in the original bug.

          I tried two things...

           1) tried resource filtering (running > mvn -Dtest.property='overridden' clean verify < and catting test.xt as described in the original bug report.
                same result.

              Then I tried updating my maven resources plugin to 2.3 -- running with maven 3.0-alpha-2 (see modified pom.xml, below). Stil no luck.


           2) next i tried
               mvn -e -Dtest.result=haha help:effective-pom

              the property setting given for test.result was still default.


          So it seems like there are two failure modes (?) . one for resource filtering, and one for interpolation process that does not involve filtering..
          or maybe they have they same root cause. In any case it seems not to work still (at least on windoze).

          thanks !
           -chris

          modified pom.xml

          {code:xml}
          <?xml version="1.0" encoding="UTF-8"?>
          <project>
            <modelVersion>4.0.0</modelVersion>
            <groupId>com.test</groupId>
            <artifactId>test</artifactId>
            <version>1.0</version>
            <packaging>jar</packaging>


            <properties>
               <test.property>default</test.property>
               <test.include.pattern>*.txt</test.include.pattern>
            </properties>
            <profiles>
                 <profile>
                      <id>test.profile</id>
                      <properties>
                         <test.property>profile</test.property>
                         <test.include.pattern>*.txt</test.include.pattern>
                      </properties>
                  </profile>
            </profiles>

              <build>
               <pluginManagement>
                  <plugins>
                                <plugin>
                                    <artifactId>maven-resources-plugin</artifactId>
                                        <version>2.3</version>
                                </plugin>

                  </plugins>
               </pluginManagement>




              <testResources>
                 <testResource>
                     <directory>${basedir}/src/test/resources</directory>
                     <filtering>true</filtering>
                     <includes>
                         <include>${test.include.pattern}</include>
                     </includes>
                 </testResource>
             </testResources>
             </build>
          </project>
          {code}


          Hide
          Benjamin Bentmann added a comment -

          I can't reproduce the problem you mentioned in the issue title. Running "mvn help:effective-pom -D test.property=cli" on the attached project using Maven 3.0-alpha-2 outputs

          <properties>
            <!--
            NOTE: model properties get never overriden by system properties.
            However, system properties take precedence over model properties
            during interpolation.
            -->
            <test.property>default</test.property>
            <test.result>cli</test.result>
          </properties>
          

          The effective value of test.result is however known to be wrong when "mvn ... -P test" is invoked instead (see MNG-3900).

          Show
          Benjamin Bentmann added a comment - I can't reproduce the problem you mentioned in the issue title. Running "mvn help:effective-pom -D test.property=cli" on the attached project using Maven 3.0-alpha-2 outputs <properties> <!-- NOTE: model properties get never overriden by system properties. However, system properties take precedence over model properties during interpolation. --> <test.property> default </test.property> <test.result> cli </test.result> </properties> The effective value of test.result is however known to be wrong when "mvn ... -P test" is invoked instead (see MNG-3900 ).
          Benjamin Bentmann made changes -
          Attachment MNG-4123.zip [ 41106 ]
          Hide
          Benjamin Bentmann added a comment -

          About resource filtering: This is beyond the Maven core, so any issues with resources need to be filled against the Maven Resources Plugin.

          Show
          Benjamin Bentmann added a comment - About resource filtering: This is beyond the Maven core, so any issues with resources need to be filled against the Maven Resources Plugin.
          Benjamin Bentmann made changes -
          Resolution Cannot Reproduce [ 5 ]
          Status Open [ 1 ] Closed [ 6 ]
          Assignee Benjamin Bentmann [ bentmann ]
          Hide
          iamsteveholmes added a comment -

          I copied the example POM and my output shows:

          <properties>
          <test.include.pattern>*.txt</test.include.pattern>
          <test.property>default</test.property>
          </properties>

          Shouldn't the test.property show "cli"?

          -Steve

          Show
          iamsteveholmes added a comment - I copied the example POM and my output shows: <properties> <test.include.pattern>*.txt</test.include.pattern> <test.property>default</test.property> </properties> Shouldn't the test.property show "cli"? -Steve
          Hide
          Benjamin Bentmann added a comment -

          As said:

          NOTE: model properties get never overriden by system properties. However, system properties take precedence over model properties during interpolation.

          The CLI directive -D defines system properties which are kept separate from the <properties> defined in the POM. The system properties are merely the preferred data source during POM interpolation or plugin configuration. <properties> defined by profiles on the other hand override the properties in the POM, because these are the same kind of property sources.

          Show
          Benjamin Bentmann added a comment - As said: NOTE: model properties get never overriden by system properties. However, system properties take precedence over model properties during interpolation. The CLI directive -D defines system properties which are kept separate from the <properties> defined in the POM. The system properties are merely the preferred data source during POM interpolation or plugin configuration. <properties> defined by profiles on the other hand override the properties in the POM, because these are the same kind of property sources.
          Hide
          iamsteveholmes added a comment -

          I should mention I am using 2.1

          Show
          iamsteveholmes added a comment - I should mention I am using 2.1
          Hide
          chris bedford added a comment -

          Hi, Benjamin:
          thanks for your previous comments on this bug. I hope you don't mind this request to
          reopen this issue. I think reopening is warranted because at least two people have seen
          inconsistent behavior from what you reported you saw when you ran

          "mvn help:effective-pom -D test.property=cli"

          You see
          > <test.result>cli</test.result>

          in the output.

          I see: <test.result>default</test.result>

          If it helps I would be happy to package up a vmware image that contains my complete environment
          and allows you to repro the behavior i have observed in maven 2.1 (on both windows and Linux).

          I can't reproduce the problem you mentioned in the issue title. Running "mvn help:effective-pom -D test.property=cli" on the attached project using Maven 3.0-alpha-2 outputs

          <properties>
          <!--
          NOTE: model properties get never overriden by system properties.
          However, system properties take precedence over model properties
          during interpolation.
          -->
          <test.property>default</test.property>
          <test.result>cli</test.result>
          </properties>

          Show
          chris bedford added a comment - Hi, Benjamin: thanks for your previous comments on this bug. I hope you don't mind this request to reopen this issue. I think reopening is warranted because at least two people have seen inconsistent behavior from what you reported you saw when you ran "mvn help:effective-pom -D test.property=cli" You see > <test.result>cli</test.result> in the output. I see: <test.result>default</test.result> If it helps I would be happy to package up a vmware image that contains my complete environment and allows you to repro the behavior i have observed in maven 2.1 (on both windows and Linux). I can't reproduce the problem you mentioned in the issue title. Running "mvn help:effective-pom -D test.property=cli" on the attached project using Maven 3.0-alpha-2 outputs <properties> <!-- NOTE: model properties get never overriden by system properties. However, system properties take precedence over model properties during interpolation. --> <test.property>default</test.property> <test.result>cli</test.result> </properties>
          chris bedford made changes -
          Resolution Cannot Reproduce [ 5 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          Hide
          Benjamin Bentmann added a comment -

          We might want to start with a full debug log or your build, i.e.

          mvn help:effective-pom -D test.property=cli -X > debug.log
          
          Show
          Benjamin Bentmann added a comment - We might want to start with a full debug log or your build, i.e. mvn help:effective-pom -D test.property=cli -X > debug.log
          Benjamin Bentmann made changes -
          Attachment MNG-4123.zip [ 41141 ]
          Benjamin Bentmann made changes -
          Attachment MNG-4123.zip [ 41106 ]
          Benjamin Bentmann made changes -
          Link This issue is related to MNG-1992 [ MNG-1992 ]
          Benjamin Bentmann made changes -
          Resolution Cannot Reproduce [ 5 ]
          Status Reopened [ 4 ] Closed [ 6 ]
          Mark Thomas made changes -
          Project Import Sun Apr 05 08:49:45 UTC 2015 [ 1428223785911 ]
          Mark Thomas made changes -
          Workflow jira [ 12714474 ] Default workflow, editable Closed status [ 12754176 ]
          Mark Thomas made changes -
          Project Import Sun Apr 05 21:45:26 UTC 2015 [ 1428270326204 ]
          Mark Thomas made changes -
          Workflow jira [ 12952359 ] Default workflow, editable Closed status [ 12989706 ]
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Closed Closed
          50m 9s 1 Benjamin Bentmann 02/Apr/09 16:35
          Closed Closed Reopened Reopened
          20h 50m 1 chris bedford 03/Apr/09 13:25
          Reopened Reopened Closed Closed
          363d 18h 3m 1 Benjamin Bentmann 02/Apr/10 07:29

            People

            • Assignee:
              Benjamin Bentmann
              Reporter:
              chris bedford
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development