Bamboo allows you to isolate Maven (2.x or later only) executables on an agent-specific basis. If you configure repository isolation for a particular Maven executable capability, each agent that uses this executable will have its own private Maven 2.x artifacts directory, thereby allowing you to avoid these jar and dependency file corruptions. Each isolated repository directory has the path:
$BAMBOO_HOME/.m2/AGENT-${agendid}/repository
You may want to configure repository isolation for Maven executables, if you run multiple Maven executables on one server machine which run under the same user account on that server, but belong to different Bamboo agents. In this case, the agents will use the same default Maven artifacts directory: $HOME/.m2/repository (or %USERPROFILE%\.m2\repository for Windows-based servers). This is the directory to which Maven dependency jars are downloaded and where project artifacts are installed during the "install" phase of a Maven build.
Hence, problems can arise if Bamboo uses these multiple Maven executables simultaneously. For example, if multiple agents on a single computer, each with a different Maven executable capability, start to run Maven builds simultaneously from the queue, the different Maven executables may attempt to download the same dependency to the same artifacts directory location, resulting in corruption of the downloaded jar and dependency files.
On this page:
Before you begin:
To configure a new local server Maven capability with repository isolation:
Screenshot above: Maven Executable
Screenshot above: Maven Repository Isolation
2 Comments
Barry Nijkamp
Nov 14, 2011This option disappeared in 3.3?
PiotrA
Dec 01, 2011Unfortunately yes, due to regression it had disappeared. But it should be back in 3.4 - BAM-10104