You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Darryl L. Miles (JIRA)" <ji...@codehaus.org> on 2013/01/03 04:53:13 UTC

[jira] (MANTRUN-177) Ant properties not passed to maven 3.0.4

    [ https://jira.codehaus.org/browse/MANTRUN-177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=316523#comment-316523 ] 

Darryl L. Miles edited comment on MANTRUN-177 at 1/2/13 9:53 PM:
-----------------------------------------------------------------

'# Unix
MY_VARIABLE_ON_THIS_HOST=prd
export MY_VARIABLE_ON_THIS_HOST

'# Windows
set MY_VARIABLE_ON_THIS_HOST=prd

{{    <project>
     <properties>
      <filters.file>${env.MY_VARIABLE_ON_THIS_HOST}</filters.file>
     </properties>
    </project>}}

You can use the 'maven-enforcer-plugin' [ https://maven.apache.org/enforcer/maven-enforcer-plugin/usage.html ] to fail any Maven usage that does not setup the environment variable first.  There is <requireEnvironmentVariable>  but I'd use <requireProperty>  for ${filters.file} being a non-empty value, or better any one of the valid values <regex>^(pc|dev|test|prd)$</regex> info on this at https://maven.apache.org/enforcer/enforcer-rules/requireProperty.html

You can configure the environment variable in a place on each system that is globally picked up by all logged in users /etc/profile on Unix or System Properties on Windows.


Now you no longer need to tie your config to a 'hostname' which is an unrelated information, you also do not need an 'ANT' dependency if this is the only use.


                
      was (Author: dlmiles):
    '# Unix
MY_VARIABLE_ON_THIS_HOST=prd
export MY_VARIABLE_ON_THIS_HOST

'# Windows
set MY_VARIABLE_ON_THIS_HOST=prd

    <project>
     <properties>
      <filters.file>${env.MY_VARIABLE_ON_THIS_HOST}</filters.file>
     </properties>
    </project>

You can use the 'maven-enforcer-plugin' [ https://maven.apache.org/enforcer/maven-enforcer-plugin/usage.html ] to fail any Maven usage that does not setup the environment variable first.  There is <requireEnvironmentVariable>  but I'd use <requireProperty>  for ${filters.file} being a non-empty value, or better any one of the valid values <regex>^(pc|dev|test|prd)$</regex> info on this at https://maven.apache.org/enforcer/enforcer-rules/requireProperty.html

You can configure the environment variable in a place on each system that is globally picked up by all logged in users /etc/profile on Unix or System Properties on Windows.


Now you no longer need to tie your config to a 'hostname' which is an unrelated information, you also do not need an 'ANT' dependency if this is the only use.


                  
> Ant properties not passed to maven 3.0.4
> ----------------------------------------
>
>                 Key: MANTRUN-177
>                 URL: https://jira.codehaus.org/browse/MANTRUN-177
>             Project: Maven 2.x Antrun Plugin
>          Issue Type: Bug
>    Affects Versions: 1.7
>         Environment: Apache Maven 3.0.4 (r1232337; 2012-01-17 01:44:56-0700)
> Java version: 1.6.0_34, vendor: Sun Microsystems Inc.
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"
>            Reporter: Paul Gazda
>         Attachments: build.log, pom.xml_test
>
>
> I have a pom.xml that uses maven-antrun-plugin v 1.7 in phase "validate"
> to detect the run environment, and based on that set the appropriate
> filters file path as property "filters.file". exportAntProperties is set to
> true. The filters.file property is supposed to be used in the filters tag
> like this:
>   <build>
>       <filters>
>         <filter>${filters.file}</filter>
>       </filters>
>  .
>  .
>  .
> This worked when I was using maven 2.2.1, but since I upgraded to maven
> 3.0.4, the value for filters.file is no longer being passed to the <filter>
> tag.
> I have attached a test pom.xml I created to demonstrate the problem. If "mvn install" is run with maven 2.2.1, the value for ${filters.file} is passed to maven (the install will fail after this because it is a dummy test, but it is clear that the ${filters.file} value has been passed correctly). If I run it with maven 3.0.4, the value for ${filters.file} is not passed to maven. I have attached and the maven build log from the failed 3.0.4 "mvn install".

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira