7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant Tips#7 Javaのビルド環境としてmaven3の環境をセットアップする

Last updated at Posted at 2014-07-28

##Vagrant Tipsのサマリページはこちら

この記事のサマリ

この記事に記載されたscriptを利用することで、さくっとmavenを触ってみることができるようになります。

対象読者

mavenって聞いたことあって、触れてみたいけど、環境構築が面倒だなぁという方

動作確認バージョン

vagrant versionの結果
Installed Version: 1.7.4

経緯

mavenの勉強をしておきたいなぁと思ったのです。

mavenとは

一昔前は、javaのビルドといえばAntを利用していましたが、今どきは依存関係が複雑になりAntでは構成管理を実現するのがが難しくなっています。そういった背景が有り、登場したのがmavenです。mavenを使えば煩雑になりがちなライブラリの管理を一元管理することができますし、色々なプラグインも提供されていてテストの自動化やデプロイなど、様々な事を簡単に実現できる、とても人気のあるビルドツールの一つです。
本稿では、vagrant上に、mavenのビルド環境を構築するためのTipsを紹介いたします。

maven環境をセットアップする

それでは、実際のVagrantfileと、mavenをセットアップするスクリプトを提示します。

Vagrantfile
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で取得するような方式にしています。

setup_maven.sh
#!/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です。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?