[ 
http://jira.codehaus.org/browse/MNG-4202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Bentmann closed MNG-4202.
----------------------------------

    Resolution: Not A Bug

Again, quoting 
http://www.bsdnewsletter.com/bsda-book/Recognize__44___view_and_modify_environmental_variables.html
bq. Most shells have their own internal variables, which should not be confused 
with global environment variables as they are not passed to newly started 
processes.
And {{HOSTNAME}} is such an internal shell variable (cf. 
http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#Bash-Variables).
 So the "extra special magic" you mention is your OS/shell, not Maven. Maven 
eventually invokes {{System.getenv()}}, what the JVM+OS don't provide here, 
isn't available for interpolation. So please fill any issue about HOSTNAME with 
the vendor of your JVM/OS, Maven isn't responsible for the underlying software 
stack it runs on.

Besides, a pristine shell yields this for me:
{noformat}
bbm:~ bentmann$ env | grep HOSTNAME
bbm:~ bentmann$ echo $HOSTNAME
bbm
{noformat}
and furthermore, the expression {{$\{env.HOSTNAME}}} gets available for 
interpolation of the POM as soon as I do
{noformat}
export HOSTNAME=$HOSTNAME
{noformat}


> Unable to resolve ${env.HOSTNAME}
> ---------------------------------
>
>                 Key: MNG-4202
>                 URL: http://jira.codehaus.org/browse/MNG-4202
>             Project: Maven 2 & 3
>          Issue Type: Bug
>    Affects Versions: 2.0.9, 2.0.10, 2.1.0
>         Environment: Mac OS X _Leopard_ 10.5.7 with JDK 1.5.0_16
> CentOS 5.2 with JDK 1.5.0_17 & 1.6.0_12
>            Reporter: Pete de Zwart
>            Assignee: Benjamin Bentmann
>            Priority: Critical
>
> Empirical test. Using the following POM, you will be able to resolve the 
> environment variable {{$FOO}}:
> {noformat}
> <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd";>
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>test</groupId>
>     <artifactId>test</artifactId>
>     <packaging>pom</packaging>
>     <version>1.1-SNAPSHOT</version>
>     <modules>
>       <module>${env.FOO}</module>
>     </modules>
> </project>
> {noformat}
> If we then assign the value {{BAR}} to {{$FOO}}, we can observer that the 
> environment has been set in the shell:
> {noformat}
> pdzw...@fosters:/tmp[18:57:46](1,0)$ export FOO=BAR
> pdzw...@fosters:/tmp[18:58:48](1,0)$ echo $FOO
> BAR
> {noformat}
> Now, running {{mvn clean}} using this POM, we expect that an exception will 
> be thrown regarding {{$PWD/BAR}} not existing:
> {noformat}
> [INFO] Scanning for projects...
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Error building POM (may not be this project's POM).
> Project ID: unknown
> Reason: Could not find the model file '/private/tmp/BAR'. for project unknown
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Trace
> org.apache.maven.reactor.MavenExecutionException: Could not find the model 
> file '/private/tmp/BAR'. for project unknown
>       at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:432)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:300)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: org.apache.maven.project.ProjectBuildingException: Could not find 
> the model file '/private/tmp/BAR'. for project unknown
>       at 
> org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1585)
>       at 
> org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:506)
>       at 
> org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200)
>       at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:632)
>       at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:515)
>       at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:588)
>       at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:419)
>       ... 11 more
> Caused by: java.io.FileNotFoundException: /private/tmp/BAR (No such file or 
> directory)
>       at java.io.FileInputStream.open(Native Method)
>       at java.io.FileInputStream.<init>(FileInputStream.java:106)
>       at 
> hidden.org.codehaus.plexus.util.xml.XmlReader.<init>(XmlReader.java:124)
>       at 
> hidden.org.codehaus.plexus.util.xml.XmlStreamReader.<init>(XmlStreamReader.java:67)
>       at 
> hidden.org.codehaus.plexus.util.ReaderFactory.newXmlReader(ReaderFactory.java:113)
>       at 
> org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1580)
>       ... 17 more
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: < 1 second
> [INFO] Finished at: Tue Jun 16 18:59:37 EST 2009
> [INFO] Final Memory: 1M/3M
> [INFO] 
> ------------------------------------------------------------------------
> {noformat}
> Excellent. Now, try this with {{$env.HOSTNAME}}, here is the POM:
> {noformat}
> <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd";>
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>test</groupId>
>     <artifactId>test</artifactId>
>     <packaging>pom</packaging>
>     <version>1.1-SNAPSHOT</version>
>     <modules>
>       <module>${env.HOSTNAME}</module>
>     </modules>
> </project>
> {noformat}
> Here is what is currently assigned to {{$HOSTNAME}}:
> {noformat}
> pdzw...@fosters:/tmp[19:00:10](1,0)$ echo $HOSTNAME
> Fosters.sydney.atlassian.com
> {noformat}
> No, run maven again, and we expect that the directory 
> {{$PWD/Fosters.sydney.atlassian.com}} does not exist:
> {noformat}
> [INFO] Scanning for projects...
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Error building POM (may not be this project's POM).
> Project ID: unknown
> Reason: Could not find the model file '/private/tmp/${env.HOSTNAME}'. for 
> project unknown
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Trace
> org.apache.maven.reactor.MavenExecutionException: Could not find the model 
> file '/private/tmp/${env.HOSTNAME}'. for project unknown
>       at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:432)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:300)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:585)
>       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: org.apache.maven.project.ProjectBuildingException: Could not find 
> the model file '/private/tmp/${env.HOSTNAME}'. for project unknown
>       at 
> org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1585)
>       at 
> org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:506)
>       at 
> org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200)
>       at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:632)
>       at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:515)
>       at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:588)
>       at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:419)
>       ... 11 more
> Caused by: java.io.FileNotFoundException: /private/tmp/${env.HOSTNAME} (No 
> such file or directory)
>       at java.io.FileInputStream.open(Native Method)
>       at java.io.FileInputStream.<init>(FileInputStream.java:106)
>       at 
> hidden.org.codehaus.plexus.util.xml.XmlReader.<init>(XmlReader.java:124)
>       at 
> hidden.org.codehaus.plexus.util.xml.XmlStreamReader.<init>(XmlStreamReader.java:67)
>       at 
> hidden.org.codehaus.plexus.util.ReaderFactory.newXmlReader(ReaderFactory.java:113)
>       at 
> org.apache.maven.project.DefaultMavenProjectBuilder.readModel(DefaultMavenProjectBuilder.java:1580)
>       ... 17 more
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: < 1 second
> [INFO] Finished at: Tue Jun 16 19:01:25 EST 2009
> [INFO] Final Memory: 1M/3M
> [INFO] 
> ------------------------------------------------------------------------
> {noformat}
> OOOOKKKAAAAY..... let's take a closer look at that shall we:
> {noformat}
> Reason: Could not find the model file '/private/tmp/${env.HOSTNAME}'. for 
> project unknown
> {noformat}
> And closer:
> {noformat}
> '/private/tmp/${env.HOSTNAME}'
> {noformat}
> Some extra special magic is going on there; I suspect that this specific 
> environment variable is being filtered out for some reason. So, let's try the 
> following:
> * {{${env.HOSTNAM}}}
> {noformat}
>  pdzw...@fosters:/tmp[19:06:53](1,146)$ cat pom.xml && HOSTNAM=$HOSTNAME mvn 
> clean
> <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd";>
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>test</groupId>
>     <artifactId>test</artifactId>
>     <packaging>pom</packaging>
>     <version>1.1-SNAPSHOT</version>
>     <modules>
>       <module>${env.HOSTNAM}</module>
>     </modules>
> </project>
> [INFO] Scanning for projects...
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Error building POM (may not be this project's POM).
> Project ID: unknown
> Reason: Could not find the model file 
> '/private/tmp/Fosters.sydney.atlassian.com'. for project unknown
> ...
> {noformat}
> * {{${env.HOSTNAMEE}}}
> {noformat}
> pdzw...@fosters:/tmp[19:07:31](1,146)$ cat pom.xml && HOSTNAMEE=$HOSTNAME mvn 
> clean
> <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd";>
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>test</groupId>
>     <artifactId>test</artifactId>
>     <packaging>pom</packaging>
>     <version>1.1-SNAPSHOT</version>
>     <modules>
>       <module>${env.HOSTNAMEE}</module>
>     </modules>
> </project>
> [INFO] Scanning for projects...
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Error building POM (may not be this project's POM).
> Project ID: unknown
> Reason: Could not find the model file 
> '/private/tmp/Fosters.sydney.atlassian.com'. for project unknown
> ...
> {noformat}
> * {{${env.HOSTNAMO}}}
> {noformat}
> pdzw...@fosters:/tmp[19:07:59](1,146)$ cat pom.xml && HOSTNAMO=$HOSTNAME mvn 
> clean
> <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/maven-v4_0_0.xsd";>
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>test</groupId>
>     <artifactId>test</artifactId>
>     <packaging>pom</packaging>
>     <version>1.1-SNAPSHOT</version>
>     <modules>
>       <module>${env.HOSTNAMO}</module>
>     </modules>
> </project>
> [INFO] Scanning for projects...
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Error building POM (may not be this project's POM).
> Project ID: unknown
> Reason: Could not find the model file 
> '/private/tmp/Fosters.sydney.atlassian.com'. for project unknown
> {noformat}
> Thanks for coming in today maven.

-- 
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

        

Reply via email to