How can i set up an environment variable (in other words internally accessible by System.getenv("APP_HOME")
in a pom file?
APP_HOME=/path/home
I realize i can set it up in .profile
, but wonder if pom can do the same trick.
Per bmargulies's suggestion below, i tried the following, without luck
<build> <finalName>KvpStore</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <includes> <include>**/*Test*.java</include> </includes> <environmentVariables> <APP_NAME>blah_blah</APP_NAME> <------------------------ </environmentVariables> </configuration> </plugin> </plugins> </build>
To refer to environment variables from the pom. xml, we can use the ${env. VARIABLE_NAME} syntax. We should remember to pass the Java version information via environment variables.
Note that if you want to use Maven, you need to have Java installed and an environment variable set up. Open Google and search for maven download.
M2_HOME is used by Maven, and again it tells the program where to find Maven installation. PATH is not suitable for that purpose, because it may contain many directories not related to Java or Maven.
Some plugins, like surefire, let you set them. There's no way, in general, in the pom.
The doc for surefire is is here. Surefire will set environment variables for the duration of the run of the tests, not for anything else. And you have to make surefire fork.
In the configuration ...
<configuration> <forkMode>always</forkMode> <environmentVariables> <var1>val1</var1> </environmentVariables> </configuration>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With