Hi Gilles,
I can't say for sure that this environment variable takes precedence over anything in the pom.xml, there may be some setting that override it or chooses a specific JVM :-) I'm compiling and testing commons-io using Sun JDK and IBM JDK setting the environment variable in a console. I know two ways to make sure that it is using the desired JVM: - in another console, while maven is running, I execute "ps -ef | grep java" to make sure that it is using the desired JVM. Sounds boring (and maybe it is :-) but I'm already used to this way. - instead of "mvn clean test" use "mvn clean test -X". The -X flag turns Debug on. This way, in the beginning of the Maven output, you can see a lot of information about your environment (I use this flag in my Jenkins jobs too ;-). Below is an example excerpt using the IBM JVM. kinow@chuva:~/java/workspace/commons-io$ mvn clean test -e -X Apache Maven 3.0.4 (r1232337; 2012-01-17 06:44:56-0200) Maven home: /opt/java/apache-maven-3.0.4 Java version: 1.7.0, vendor: IBM Corporation Java home: /opt/java/ibm-java-x86_64-70/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.2.0-2-amd64", arch: "amd64", family: "unix" (...) Hope that helps Bruno P. Kinoshita http://kinoshita.eti.br http://tupilabs.com >________________________________ > From: Gilles Sadowski <gil...@harfang.homelinux.org> >To: dev@commons.apache.org >Sent: Wednesday, 13 June 2012 1:00 PM >Subject: Re: [Math] How to select a specific JDK ? > >On Wed, Jun 13, 2012 at 08:43:17AM -0700, Bruno P. Kinoshita wrote: >> I agree with James, Jenkins is a great choice for such tasks. >> >> That's what I do when I want to test a project with a different JVM, but >> have no time to set up Jenkins jobs. >> >> $ export JAVA_HOME=/opt/java/ibm... >> $ mvn clean test install > >OK. That's the answer to my question. The corollary is that I wasn't sure >that the "JAVA_HOME" setting would take precedence over anything specified >in the "pom.xml" and/or "settings.xml". > >Do you confirm that if I set > JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 >maven will use all the executables that are locate under > /usr/lib/jvm/java-7-openjdk-amd64/bin >and nothing else? > > >Thanks, >Gilles > >> Just my 0.02 cents :-) > >> >> Cheers >> >> >> Bruno P. Kinoshita >> http://kinoshita.eti.br >> http://tupilabs.com >> >> >> ----- Original Message ----- >> > From: James Carman <ja...@carmanconsulting.com> >> > To: Commons Developers List <dev@commons.apache.org> >> > Cc: >> > Sent: Wednesday, 13 June 2012 11:53 AM >> > Subject: Re: [Math] How to select a specific JDK ? >> > >> > You'd be better off using something like Jenkins for this. You could >> > set up different jobs to run your builds under different conditions >> > (windoze vs. linux, jdk7 vs. jdk6, etc.) >> > >> > >> > On Wed, Jun 13, 2012 at 10:47 AM, Gilles Sadowski >> > <gil...@harfang.homelinux.org> wrote: >> >> On Wed, Jun 13, 2012 at 03:05:13PM +0200, Xavier Detant wrote: >> >>> The byte code generated by the compiler is totally independent from the >> > JVM >> >>> that will be used to run it. >> >> >> >> Totally independent? Compiling with 1.7 and running with 1.6 will raise >> > this >> >> error: >> >> Unsupported major.minor version 51.0 >> >> >> >>> So I think the point is not «How to compile >> >>> using the right JDK?» but «How to run with using the right JVM?» Am I >> >>> wrong? >> >> >> >> It is both: compiling _and_ running the tests. >> >> >> >> I should be able to do all combinations, i.e.: >> >> 1. Compile with javac 1.6 and run with java 1.6 >> >> 2. Compile with javac 1.7 and run with java 1.7 >> >> 3. Compile with javac 1.6 and run with java 1.7 >> >> (and similarly with s/6/5/) >> >> >> >>> If so, this can't be done at compile time, so it can't be done >> > via >> >>> maven, unless you use antrun maven's plugin to create a ant task to >> > launch >> >>> your program. >> >> >> >> The point is to compile and then _run_ the unit tests, assuming that the >> >> code conforms to the syntax of Java 5, Java 6, and Java 7, respectively. >> >> >> >> In particular, if some source code is Java 5, it should be compatible >> >>with >> >> more recent versions of the Java language, thus be compilable with more >> >> recent implementations of javac. >> >> The ultimate goal is to check that the unit tests pass independently of >> >>the >> >> javac and java versions. >> >> >> >> >> >> Best regards, >> >> Gilles >> >> >> >>> >> >>> 2012/6/13 Gilles Sadowski <gil...@harfang.homelinux.org> >> >>> >> >>> > Hello. >> >>> > >> >>> > > >> >>> > > With maven, you can configure the compiler to compile in the >> > version you >> >>> > > want. >> >>> > > >> >>> > > Add this to the pom.xml and set the arguments as you which. >> >>> > > >> >>> > > <build> >> >>> > > <pluginManagement> >> >>> > > <plugin> >> >>> > > >> > <groupId>org.apache.maven.plugins</groupId> >> >>> > > >> > <artifactId>maven-compiler-plugin</artifactId> >> >>> > > <version>2.4</version> >> >>> > > <configuration> >> >>> > > >> > <encoding>UTF-8</encoding> >> >>> > > <source>1.6</source> >> >>> > > <target>1.6</target> >> >>> > > <compilerArguments> >> >>> > > <Xlint:-unchecked /> >> >>> > > </compilerArguments> >> >>> > > </configuration> >> >>> > > </plugin> >> >>> > > >> >>> > > See http://maven.apache.org/plugins/maven-compiler-plugin/ >> > for more >> >>> > > informations. >> >>> > >> >>> > I had seen that, but that cannot be the whole story (unless there >> > is some >> >>> > maven magic involved); indeed, how can maven differentiate >> >>> > java-6-openjdk-amd64 >> >>> > from >> >>> > java-6-sun >> >>> > (since both are Java 1.6)? >> >>> > >> >>> > I was thinking that there should be some environment variable(s) >> > whose >> >>> > setting would somehow activate the above configuration. >> >>> > >> >>> > >> >>> > Regards, >> >>> > Gilles >> >>> > >> >>> > > >> >>> > > >> >>> > > 2012/6/13 Gilles Sadowski >> > <gil...@harfang.homelinux.org> >> >>> > > >> >>> > > > On Wed, Jun 13, 2012 at 12:48:31PM +0200, Jochen >> > Wiedmann wrote: >> >>> > > > > Yes, that switch is called PATH (environment >> > variable). >> >>> > > > >> >>> > > > Do you mean that I should change the PATH variable just >> > to build >> >>> > Commons >> >>> > > > Math? >> >>> > > > I surely hope that there is a more flexible way. >> >>> > > > >> >>> > > > With "ant", all that's needed is to define >> > JAVA_HOME (another >> >>> > environment >> >>> > > > variable, but specific to the task at hand). >> >>> > > > >> >>> > > > > On Wed, Jun 13, 2012 at 12:19 PM, Gilles Sadowski >> >>> > > > > <gil...@harfang.homelinux.org> wrote: >> >>> > > > > > Hello. >> >>> > > > > > >> >>> > > > > > Are there command-line switches that will >> > select a specific JDK? >> >>> > > > > > I.e. I have several of them installed: >> >>> > > > > > >> >>> > > > > > $ ls -l /usr/lib/jvm >> >>> > > > > > total 36 >> >>> > > > > > lrwxrwxrwx 1 root root 24 Dec 17 11:04 >> > default-java -> >> >>> > > > java-1.6.0-openjdk-amd64 >> >>> > > > > > lrwxrwxrwx 1 root root 18 Jan 5 18:27 >> > java-1.5.0-gcj -> >> >>> > > > java-1.5.0-gcj-4.6 >> >>> > > > > > drwxr-xr-x 6 root root 4096 Jan 18 15:04 >> > java-1.5.0-gcj-4.4 >> >>> > > > > > drwxr-xr-x 6 root root 4096 Mar 7 17:33 >> > java-1.5.0-gcj-4.6 >> >>> > > > > > lrwxrwxrwx 1 root root 23 Aug 11 2010 >> > java-1.5.0-sun -> >> >>> > > > java-1.5.0-sun-1.5.0.22 >> >>> > > > > > drwxr-xr-x 10 root root 4096 Aug 11 2010 >> > java-1.5.0-sun-1.5.0.22 >> >>> > > > > > lrwxrwxrwx 1 root root 20 Dec 16 18:51 >> > java-1.6.0-openjdk-amd64 >> >>> > -> >> >>> > > > java-6-openjdk-amd64 >> >>> > > > > > lrwxrwxrwx 1 root root 20 May 3 14:00 >> > java-1.7.0-openjdk-amd64 >> >>> > -> >> >>> > > > java-7-openjdk-amd64 >> >>> > > > > > drwxr-xr-x 3 root root 4096 Jan 18 15:38 >> > java-6-openjdk >> >>> > > > > > drwxr-xr-x 7 root root 4096 Mar 7 17:29 >> > java-6-openjdk-amd64 >> >>> > > > > > drwxr-xr-x 3 root root 4096 Jan 18 15:38 >> > java-6-openjdk-common >> >>> > > > > > lrwxrwxrwx 1 root root 19 Jun 9 2011 >> > java-6-sun -> >> >>> > > > java-6-sun-1.6.0.26 >> >>> > > > > > drwxr-xr-x 8 root root 4096 Jan 18 15:47 >> > java-6-sun-1.6.0.26 >> >>> > > > > > drwxr-xr-x 7 root root 4096 Jun 5 17:12 >> > java-7-openjdk-amd64 >> >>> > > > > > drwxr-xr-x 3 root root 4096 Jun 5 17:12 >> > java-7-openjdk-common >> >>> > > > > > lrwxrwxrwx 1 root root 12 Jan 5 18:27 >> > java-gcj -> java-gcj-4.6 >> >>> > > > > > lrwxrwxrwx 1 root root 18 Apr 29 2010 >> > java-gcj-4.4 -> >> >>> > > > java-1.5.0-gcj-4.4 >> >>> > > > > > lrwxrwxrwx 1 root root 18 Nov 14 2011 >> > java-gcj-4.6 -> >> >>> > > > java-1.5.0-gcj-4.6 >> >>> > > > > > >> >>> > > > > > and I'd like to be able to say something >> > like >> >>> > > > > > -D...=/usr/lib/jvm/java-7-openjdk-amd64 >> >>> > > > > > so that maven will use the corresponding >> > compiler and JVM. >> >>> > > > > > >> >>> > > > > > Does the default configuration already cares >> > for this? If so, which >> >>> > > > are the >> >>> > > > > > command-lins options? >> >>> > > > > > >> >>> > > > > > If not, I guess that this should be defined in >> > a "profile" in >> >>> > > > > > "settings.xml". If so, could someone >> > post such a profile? >> >>> > > > > > >> >>> > > > > > >> >>> > > > > > Thanks, >> >>> > > > > > Gilles >> >>> > > > > > >> >>> > > > >> >>> > > > >> > --------------------------------------------------------------------- >> >>> > > > To unsubscribe, e-mail: >> > dev-unsubscr...@commons.apache.org >> >>> > > > For additional commands, e-mail: >> > dev-h...@commons.apache.org >> >>> > > > >> >>> > > > >> >>> > > >> >>> > > >> >>> > > -- >> >>> > > Xavier DETANT >> >>> > >> >>> > >> > --------------------------------------------------------------------- >> >>> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >>> > For additional commands, e-mail: dev-h...@commons.apache.org >> >>> > >> >>> > >> >>> >> >>> >> >>> -- >> >>> Xavier DETANT >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> > For additional commands, e-mail: dev-h...@commons.apache.org >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> > >--------------------------------------------------------------------- >To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >For additional commands, e-mail: dev-h...@commons.apache.org > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org