Wrong Maven2 environment variables
Asked by Lukas Br?ckner:

Hello,

I am running the latest Bamboo version 3.3 on a ubuntu 10.10 64bit.

Today I tried to add a Maven2 job to a build plan but I am struggling with some configuration.

First of all, Bamboo 3.3 seems to have a bug with the Maven2 executable: When specifying the correct build path in the capabilities (for me /usr/bin/mvn) the job will try to execute /usr/bin/mvn/bin/mvn . I figured "/bin/mvn" is somehow hardcoded so I changed the build path to just "/usr" and that worked.

However, now I'm struggling with the M2_HOME directive. In the logs I see that Bamboo is setting them to "/usr"

```
MAVEN2_HOME=/usrJAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26M2_HOME=/usrPATH=/usr/lib/jvm/java-6-sun-1.6.0.26/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
```

which results in

```
25-Okt-2011 15:14:50 	Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/classworlds/Launcher25-Okt-2011 15:14:50 	Caused by: java.lang.ClassNotFoundException: org.codehaus.classworlds.Launcher25-Okt-2011 15:14:50 	        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)25-Okt-2011 15:14:50 	        at java.security.AccessController.doPrivileged(Native Method)25-Okt-2011 15:14:50 	        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)25-Okt-2011 15:14:50 	        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)25-Okt-2011 15:14:50 	        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)25-Okt-2011 15:14:50 	        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)25-Okt-2011 15:14:50 	Could not find the main class: org.codehaus.classworlds.Launcher.  Program will exit.
```

This is obviously wrong. But I do not find how to make bamboo change that environment variable. My correct maven2 home is /usr/share/maven2. Or is this possibly another wrongly hardcoded thing like the build path?

Thanks for your help,  
Lukas


Answers:
author: Przemek Bruski
body: The Maven task is supposed to work with an unmodified Maven distribution as downloaded from <http://maven.apache.org/> .

It won't work with Mavens repackaged by distribution maintainers.

comments: author: Lukas Br?ckner
body: Thanks for the tip.

Is this somewhere noted in the documentation? I could not find anything about that, this is definitely an important information!


author: Ravish Bhagdev
body: Not sure what you mean by this. I have same problem, it uses /usr/share/maven2/bin/mvn/bin/mvn

When I point the maven executable path to /usr/share/maven2/bin/mvn

Why does it add /bin/mvn at the end on its own? This is not quite annoying.

If you are not going to allow setting this property, why have it at all?


author: Lukas
body: Hi everyone,

I am struggling with the exact same problem. Is this still an issue in the configuration? I have my maven installation in usr/local/sbin/mvn. However, bin/mvn will always be concatenated to the path.

I am running Bamboo 4.4.2 on Ubuntu 10.04.4. Any help would be very much appreciated.

Cheers, Lukas


author: dpham23
body: As a workaround instead of using maven built in task

I just call maven from as a script task.


author: dpham23
body: I'm also facing the exact same issue on. Is there a workaround?

Oracle Linux Server release 6.5 and Bamboo 5.8.1


author: David Di Blasio
body: This still seems to be an issue...


author: Lukas Br?ckner
body: just to be clear. running the command manually from the bamboo user works. Setting the M2_HOME directive for the user does not change anything as it is overridden by bamboo as the first snippet is the log with

... using extra environment variables:

prepended.


Tags: maven