この記事のサマリ
この記事に記載されたscriptを利用することで、さくっとmavenを触ってみることができるようになります。
対象読者
mavenって聞いたことあって、触れてみたいけど、環境構築が面倒だなぁという方
動作確認バージョン
vagrant version
の結果
Installed Version: 1.7.4
経緯
mavenの勉強をしておきたいなぁと思ったのです。
mavenとは
一昔前は、javaのビルドといえばAntを利用していましたが、今どきは依存関係が複雑になりAntでは構成管理を実現するのがが難しくなっています。そういった背景が有り、登場したのがmavenです。mavenを使えば煩雑になりがちなライブラリの管理を一元管理することができますし、色々なプラグインも提供されていてテストの自動化やデプロイなど、様々な事を簡単に実現できる、とても人気のあるビルドツールの一つです。
本稿では、vagrant上に、mavenのビルド環境を構築するためのTipsを紹介いたします。
maven環境をセットアップする
それでは、実際のVagrantfileと、mavenをセットアップするスクリプトを提示します。
Vagrant::Config.run do |config|
config.vm.box = "centos64_6_5"
config.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box"
config.vm.provision "shell", path: "setup_jdk7.sh"
config.vm.provision "shell", path: "setup_maven.sh"
end
★setup_jdk.shは、
Vagrant Tips#2 Oracleのjdkをインストールさせるに記載しておりますので、そちらをご参照ください。
mavenをインストールさせるshellは、以下のように実装しました。apache-maven-3.3.9がダウンロード済みでなかったら、wgetで取得するような方式にしています。
#!/bin/bash
BASE_DIR="/vagrant"
PACKAGE_DIR="${BASE_DIR}/package"
MAVEN_MAJOR_VERSION=3
MAVEN_VERSION="${MAVEN_MAJOR_VERSION}.3.9"
MAVEN_TARGET_NAME="apache-maven-${MAVEN_VERSION}"
MAVEN_FILE_NAME="${MAVEN_TARGET_NAME}-bin"
ARCHIVED_MAVEN_FILE_NAME="${MAVEN_FILE_NAME}.tar.gz"
MAVEN_URL="http://ftp.riken.jp/net/apache/maven/maven-${MAVEN_MAJOR_VERSION}/${MAVEN_VERSION}/binaries/${ARCHIVED_MAVEN_FILE_NAME}"
# create dir
if [ ! -d ${PACKAGE_DIR} ]
then
mkdir -p ${PACKAGE_DIR}
else
echo "${PACKAGE_DIR} Is Already Exists So Need Not Create"
fi
# if "archived maven file" is noting
if [ ! -f ${PACKAGE_DIR}/${ARCHIVED_MAVEN_FILE_NAME} ]
then
echo "downloading maven file..."
wget ${MAVEN_URL} -O ${PACKAGE_DIR}/${ARCHIVED_MAVEN_FILE_NAME}
else
echo "${ARCHIVED_MAVEN_FILE_NAME} Is Already Exists So Need Not Wget"
fi
# gunzip "archived maven file"
if [ ! -d /usr/local/${MAVEN_TARGET_NAME} ]
then
echo "setup maven..."
cp -p ${PACKAGE_DIR}/${ARCHIVED_MAVEN_FILE_NAME} /tmp/${ARCHIVED_MAVEN_FILE_NAME}
tar -xvzf /tmp/${ARCHIVED_MAVEN_FILE_NAME} -C /tmp/
sudo mv /tmp/${MAVEN_TARGET_NAME} /usr/local/${MAVEN_TARGET_NAME}
sudo chown -R vagrant:vagrant /usr/local/${MAVE_FILE_NAME}
sudo ln -s /usr/local/${MAVEN_TARGET_NAME} /usr/local/maven
else
echo "/usr/local/${MAVEN_TARGET_NAME} Is Already Exists"
fi
sudo cat /etc/profile | grep "M2_HOME"
if [ "$?" -eq 1 ]
then
echo "M2_HOME is noting So append /etc/profile"
sudo echo 'export M2_HOME=/usr/local/maven' >> /etc/profile
sudo echo 'export M2=$M2_HOME/bin' >> /etc/profile
sudo echo 'export PATH=$M2:$PATH' >> /etc/profile
else
echo "M2_HOME is Already Appended"
fi
上記を配置して、vagrant upした後、「mvn --version」と入力し、「Apache Maven X.X.X~」のような文字列が表示されればOKです。