This page describes how to configure a Bamboo task to use a Maven executable. Apache Maven is a tool used for building and managing Java-based projects.
To configure a Maven task:
- Navigate to the Tasks configuration tab for the job (this will be the default job if creating a new plan).
- Click the name of an existing Maven task, or click Add Task and then a Maven option (e.g. Maven 2.x) to create a new task.
Complete the following settings:
Task Description A description of the task, which is displayed in Bamboo. Disable this task Check, or clear, to selectively run this task. Executable The Maven executable that is available to perform the task. The executable that you select will become one of the task's (and so, the job's) requirements.
Goal The Maven goal that Bamboo will execute. - You can use '
-D' to define one or more JVM parameters. For example,-Djava.awt.headless=truewill pass the parameter 'java.awt.headless' with a value of 'true'. - Multiple maven goals can be specified, separated spaces.
- You can include variables (see Using Global or Build-specific Variables).
Use Maven Return Code Select to have Bamboo skip log parsing. Build JDK The JDKs that are available to perform the task. The JDK that you select will become one of the task's (and so, the job's) requirements.
You can add other JDKs, if required.Override Project File (Optional: Maven 2.x and later only) The path to your Maven project file, relative to the working sub directory specified. If this is not specified, Maven will use the pom.xmlin the root of the working sub directory.Environment Variables (Optional) Additional system environment variables that you want to pass to your build. Note that existing environment variables are automatically available to the executable. You can also include Bamboo global or build-specific variables (see Using global, plan or build-specific variables).
Multiple variables should be separated with spaces. Parameters with spaces must be quoted (e.g MAVEN_OPTS="-Xms200m -Xmx700m").Working Sub Directory (Optional) An alternative subdirectory, relative to the job's root directory, where Bamboo will run the executable. The root directory contains everything checked out from the job's configured source repository. If you leave this field blank, Bamboo will look for build files in the root directory. This option is useful if your task has a build script in a subdirectory and the executable needs to be run from within that subdirectory. The build will produce test results Choose one of the following: Look in the standard test results directory or Specify custom results directories – Specify the alternative directory, relative to the root directory, where test results will be created. You can use Ant-style patterns such as **/test-reports/*.xml. Bamboo requires test results to be in JUnit XML format.For jobs that use CVS, the root directory is
<bamboo-home>/xml-data/build-dir/JOB_KEY/<cvs-module>.- You can use '
- Click Save.

7 Comments
Andrew Heald
Apr 13, 2012Small snag here with this. I have the following goal set up:
release:prepare --batch-mode -Dmaven.repo.local=/home/ci/maven-data/local-repos/${bamboo.buildKey} -Darguments="-DskipTests -Dmaven.repo.local=/home/ci/maven-data/local-repos/${bamboo.buildKey}"The final quote is stripped off the Maven command line resulting in an "unbalanced quote" error. Is there a way round this?
Andrew Heald
Apr 16, 2012A single quote solved the problem.
Anonymous
May 03, 2013Why is it required to specify "The build will produce test results"? The build will fail if no tests are found. IMO it would be nice if Bamboo would look in the test results directory, and if it finds nothing simply assume that this was a testless build.
James Dumay
Aug 12, 2013We've done it in this way because if the build was supposed to produce tests and its ability to break tests broke, the build would still pass successfully.
Anonymous
Aug 08, 2013Using ubuntu 12.04 . My mvn is at /usr/bin/mvn . Not able to add capability, Bamboo shows error.
James Dumay
Aug 12, 2013Thats because its symlinked. Run
ls -l /usr/bin/mvnto find its real location.Ben
Sept 25, 2013Would be nice if settings.xml could be stored without having to set up a full EBS Snapshot.
Or if this page linked to how to do that Configuring elastic instances to use the EBS that describes at least one way of setting up the settings.xml.