Gentoo Archives: gentoo-java

From: "Jörg Schaible" <joerg.schaible@×××.de>
To: gentoo-java@l.g.o
Subject: [gentoo-java] Re: Re: Maven from source - version 2.x or 3.x ?
Date: Thu, 26 May 2011 16:07:12
Message-Id: irltpn$nh3$1@dough.gmane.org
In Reply to: Re: [gentoo-java] Re: Maven from source - version 2.x or 3.x ? by Robert Burrell Donkin
Robert Burrell Donkin wrote:

> On Wed, May 25, 2011 at 5:09 PM, Jörg Schaible > <joerg.schaible@×××.de> wrote: >> Hi Robert, > > Hi Jörg > >> Robert Burrell Donkin wrote: > > <snip> > >>> maven seems to be moving towards requiring specific core versions for >>> builds. some projects i develop require maven 2, some maven 3. i >>> manage this situation with a set of custom scripts and installations >>> independent of gentoo. i expect other developers now work in a similar >>> way. (same goes for jdks.) the gentoo java stuff just gets in my way >>> now for development. >> >> Why? I have emerged maven:1.0, maven:1.1, maven:2.0, maven:2.2 and >> maven:3.0. I've selected my default version with eselect. However, I can >> use any of those versions at the same time: >> >> /usr/bin $ ls -lGgo m*v*n* >> lrwxrwxrwx 1 34 Jan 22 14:07 maven-1.0 -> /usr/share/maven- >> bin-1.0/bin/maven >> lrwxrwxrwx 1 34 Jan 22 14:07 maven-1.1 -> /usr/share/maven- >> bin-1.1/bin/maven >> lrwxrwxrwx 1 7 Jul 19 2010 mvn -> mvn-3.0 >> lrwxrwxrwx 1 32 Apr 30 2010 mvn-2.0 -> >> /usr/share/maven-bin-2.0/bin/mvn lrwxrwxrwx 1 32 Apr 30 2010 mvn-2.2 >> -> /usr/share/maven-bin-2.2/bin/mvn lrwxrwxrwx 1 32 Mar 10 18:17 >> mvn-3.0 -> /usr/share/maven-bin-3.0/bin/mvn >> >> All that eselect effectively does is to switch the unversioned link. You >> may call any of those scripts (well, you should not have set MAVEN_HOME >> at all, the Maven start script will do this for you anyway). > > eselect edits the symlinks. this switches the maven version for the > entire system. i want to be able to switch maven (and ant and java) > versions for just a terminal. is there some way to make this work with > eselect?
Defining aliases? Or use prepend a terminal specific directory to the path where you define your own symlinks. export PATH=~/tmp/term-1:$PATH ls ~/tmp/term-1 mvn -> /usr/bin/mvn-2.2 jar -> /usr/lib/jvm/sun-jdk-1.6/bin/jar java -> /usr/lib/jvm/sun-jdk-1.6/bin/java javac -> /usr/lib/jvm/sun-jdk-1.6/bin/javac javah -> /usr/lib/jvm/sun-jdk-1.6/bin/javah For Ant you might create your own slotted ebuilds (maybe as ant-bin to separate from the one provided with Gentoo) and use symlinks again. I am quite sure you can create a little helper script that sets up such links for the current terminal when you provide the version for those packages as argument. Cheers, Jörg