Maven 1
  1. Maven 1
  2. MAVEN-1147

<maven:maven/> tag should be able to inherit at least a subset of variables.

    Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 1.0-rc1
    • Fix Version/s: None
    • Component/s: jelly/ant integration
    • Labels:
      None
    • Environment:
      Windows 2000, J2SDK 1.4.2
    • Number of attachments :
      3

      Description

      The maven:maven jelly tag should be able to inherit at least a subset of the invoker's environment in order to do controlled override of properties set in build/project properties.

      Either by using something like <ant inherit="true"/> or by context or hierarchial naming convention of properties, ie:
      my.prop1=a
      my.prop2=b
      your.prop1=c
      ...
      <maven:maven inherit="my.*"/>

      1. maven-HEAD.patch
        3 kB
        Kristopher Brown
      2. maven-jelly-tags-HEAD.patch
        8 kB
        Kristopher Brown
      3. maven-jelly-tags-MAVEN-1_0_1-BRANCH.patch
        8 kB
        Kristopher Brown

        Activity

        Hide
        Kristopher Brown added a comment -

        After chatting on the dev mailing list, I came up with the following example to illustrate that the context is not passed through to maven invocations resulting from maven:maven and maven:reactor.

        In order to allow context variables to be passed through it was discussed adding a tag to support pushing through of specific variables rather than the whole context, hence the creation of maven:contextVariable which takes two arguments, 'var' for the name to store the value under, and 'value' for the value to add. I've added the line to the example below inside the reactor tag - to test behaviour prior to changes - comment it out.

        <goal name="example:ensure-properties">
        <j:if test="$

        {empty(exampleProp)}

        ">
        <i:ask question="Please enter some text for exampleProp?"
        answer="exampleProp"/>
        </j:if>
        <maven:param-check value="$

        {exampleProp}" fail="true" message="'exampleProp' must be specified"/>
        </goal>

        <goal name="example:goal"
        prereqs="example:ensure-properties"
        description="Goal">
        <attainGoal name="example:goal-current-project"/>
        </goal>

        <goal name="example:goal-mp"
        prereqs="example:ensure-properties"
        description="Goal for the multiproject set">
        <maven:pluginVar var="multiprojectIncludes" plugin="maven-multiproject-plugin" property="maven.multiproject.includes"/>
        <maven:pluginVar var="multiprojectExcludes" plugin="maven-multiproject-plugin" property="maven.multiproject.excludes"/>
        <maven:pluginVar var="multiprojectBasedir" plugin="maven-multiproject-plugin" property="maven.multiproject.basedir"/>

        <maven:reactor basedir="${multiprojectBasedir}"
        banner="Running example for:"
        postProcessing="true"
        goals="example:goal-current-project"
        includes="${multiprojectIncludes}"
        excludes="${multiprojectExcludes}"
        ignoreFailures="false">
        <maven:contextVariable var="exampleProp" value="${exampleProp}

        "/>
        </maven:reactor>
        </goal>

        <goal name="example:goal-current-project"
        description="Calls the goal for current project, use example:goal or example:goal-mp rather than this goal directly">
        <maven:param-check value="$

        {exampleProp}" fail="true" message="'exampleProp' must be specified"/>
        <ant:echo>exampleProp is ${exampleProp}

        </ant:echo>
        </goal>

        Show
        Kristopher Brown added a comment - After chatting on the dev mailing list, I came up with the following example to illustrate that the context is not passed through to maven invocations resulting from maven:maven and maven:reactor. In order to allow context variables to be passed through it was discussed adding a tag to support pushing through of specific variables rather than the whole context, hence the creation of maven:contextVariable which takes two arguments, 'var' for the name to store the value under, and 'value' for the value to add. I've added the line to the example below inside the reactor tag - to test behaviour prior to changes - comment it out. <goal name="example:ensure-properties"> <j:if test="$ {empty(exampleProp)} "> <i:ask question="Please enter some text for exampleProp?" answer="exampleProp"/> </j:if> <maven:param-check value="$ {exampleProp}" fail="true" message="'exampleProp' must be specified"/> </goal> <goal name="example:goal" prereqs="example:ensure-properties" description="Goal"> <attainGoal name="example:goal-current-project"/> </goal> <goal name="example:goal-mp" prereqs="example:ensure-properties" description="Goal for the multiproject set"> <maven:pluginVar var="multiprojectIncludes" plugin="maven-multiproject-plugin" property="maven.multiproject.includes"/> <maven:pluginVar var="multiprojectExcludes" plugin="maven-multiproject-plugin" property="maven.multiproject.excludes"/> <maven:pluginVar var="multiprojectBasedir" plugin="maven-multiproject-plugin" property="maven.multiproject.basedir"/> <maven:reactor basedir="${multiprojectBasedir}" banner="Running example for:" postProcessing="true" goals="example:goal-current-project" includes="${multiprojectIncludes}" excludes="${multiprojectExcludes}" ignoreFailures="false"> <maven:contextVariable var="exampleProp" value="${exampleProp} "/> </maven:reactor> </goal> <goal name="example:goal-current-project" description="Calls the goal for current project, use example:goal or example:goal-mp rather than this goal directly"> <maven:param-check value="$ {exampleProp}" fail="true" message="'exampleProp' must be specified"/> <ant:echo>exampleProp is ${exampleProp} </ant:echo> </goal>
        Hide
        Kristopher Brown added a comment -

        Patch to maven project to provide methods to allow a map of variables to be passed into a context when attainGoals is called

        Show
        Kristopher Brown added a comment - Patch to maven project to provide methods to allow a map of variables to be passed into a context when attainGoals is called
        Hide
        Kristopher Brown added a comment -

        Patch to maven-jelly-tags to provide a contextVariable tag for adding variables to contexts spawned from maven and reactor tags.

        Show
        Kristopher Brown added a comment - Patch to maven-jelly-tags to provide a contextVariable tag for adding variables to contexts spawned from maven and reactor tags.
        Hide
        Kristopher Brown added a comment -

        Patch to maven-jelly-tags to provide a contextVariable tag for adding variables to contexts spawned from maven and reactor tags.

        Show
        Kristopher Brown added a comment - Patch to maven-jelly-tags to provide a contextVariable tag for adding variables to contexts spawned from maven and reactor tags.
        Hide
        Kristopher Brown added a comment -

        I created patches for maven-jelly-tags for both the 1.0.1 BRANCH and HEAD as I was unable to test the HEAD patch.

        Show
        Kristopher Brown added a comment - I created patches for maven-jelly-tags for both the 1.0.1 BRANCH and HEAD as I was unable to test the HEAD patch.
        Hide
        Michael Osipov added a comment -

        Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014 if you're wondering why this issue was closed out.

        Show
        Michael Osipov added a comment - Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014 if you're wondering why this issue was closed out.

          People

          • Assignee:
            Unassigned
            Reporter:
            Jan-Helge Bergesen
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: