commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles Sadowski <gil...@harfang.homelinux.org>
Subject Re: [Math] How to select a specific JDK ?
Date Wed, 13 Jun 2012 16:00:11 GMT
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 <james@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
> > <gilles@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 <gilles@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 
> > <gilles@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
> >>>  > > > > <gilles@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-unsubscribe@commons.apache.org
> >>>  > > > For additional commands, e-mail: 
> > dev-help@commons.apache.org
> >>>  > > >
> >>>  > > >
> >>>  > >
> >>>  > >
> >>>  > > --
> >>>  > > Xavier DETANT
> >>>  >
> >>>  > 
> > ---------------------------------------------------------------------
> >>>  > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> >>>  > For additional commands, e-mail: dev-help@commons.apache.org
> >>>  >
> >>>  >
> >>> 
> >>> 
> >>>  --
> >>>  Xavier DETANT
> >> 
> >>  ---------------------------------------------------------------------
> >>  To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> >>  For additional commands, e-mail: dev-help@commons.apache.org
> >> 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > For additional commands, e-mail: dev-help@commons.apache.org
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> For additional commands, e-mail: dev-help@commons.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message