Re: Re: Maven from source - version 2.x or 3.x ?

Jörg Schaible <[email protected]> Thu, 26 May 2011 18:06:15 +0200
Newsgroups gmane.linux.gentoo.java
Message-ID <[email protected]>
Robert Burrell Donkin wrote:

> On Wed, May 25, 2011 at 5:09 PM, J=C3=B6rg Schaible
> <[email protected]> wrote:
>> Hi Robert,
>=20
> Hi J=C3=B6rg
>=20
>> Robert Burrell Donkin wrote:
>=20
> <snip>
>=20
>>> 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 simila=
r
>>> 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 c=
an
>> 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. Y=
ou
>> may call any of those scripts (well, you should not have set MAVEN_HOM=
E
>> at all, the Maven start script will do this for you anyway).
>=20
> 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 pat=
h=20
where you define your own symlinks.

export PATH=3D~/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=20
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=20
links for the current terminal when you provide the version for those=20
packages as argument.

Cheers,
J=C3=B6rg