Maven is a dependency management system that also packages builds.
Please ensure that you have installed and configured maven. You can obtain maven here: http://maven.apache.org/download.cgi
Once installed, run mvn -v
to verify your install and $PATH
configuration. The output should look something like this:
[colabug:/Users/colabug/Documents/Career/Books] mvn -v
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 11:22:22-0400)
Maven home: /usr/local/bin/apache-maven-3.1.1
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.7.5", arch: "x86_64", family: "mac"
Here is some of my environment set-up (zsh):
export ANDROID_HOME=/usr/bin/android-sdk-macosx
export M2_HOME=/usr/local/bin/apache-maven-3.1.1
export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$M2_HOME/bin:$PATH"
You specify which libraries you'd like to use in the pom.xml
file, which lives at the root level in your project.
<dependencies>
<!--Unit testing-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
Anything from maven central (http://maven.org) is fair game. These libraries are downloaded for you and stored away in your ~/.m2/repository
directory.
Note: It's possible to point to other repositories and/or host your own. That's outside of the scope of this class.
When you run mvn clean install
, you are running the entire build lifecycle, including tests. It uses the build plugins that you specify to build a particular type of application.
It's handy for adding scripts, continuous integration, and other hooks into your build process.
Further Reading:
- Maven in 5 Minutes http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html