[
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