by Blyde Liu
本文参考了多个优秀博客的文章,若文章引用需要授权,请联系guowei.liu@foxmail.com,我会第一时间与您沟通,对您造成的不便,敬请原谅。
最近刚入职,还在搭建Java web本地开发环境,发现在Mac上搭有很多文件权限问题,也考虑到和生产环境的差异,也是因为自己有那么点“系统洁癖”,所以就自己动手搭Vagrant环境了。
本地开发环境需求
- Centos 7
- JDK 7
- Maven 3
- Tomcat 7
创建虚拟机操作系统
- 下载安装 稳定版VirtualBox
下载地址:https://www.virtualbox.org/wiki/Downloads - 安装 Vagrant
下载地址:https://www.vagrantup.com/ 根据提示一步步安装。 - 下载系统镜像
在init vagrant时可以直接添加系统镜像,考虑到国内的网速情况,建议先使用下载工具下载好系统镜像。
你可以根据你服务器的环境来选择。 http://www.vagrantbox.es/
本文使用的系统镜像是:CentOS 7.0 x64 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box - 添加系统镜像到 Vagrant
假设我们下载的镜像存放路径是 ~/Download/centos-7.0-x86_64.box,在终端里输入:
vagrant box add centos7 ~/Download/centos-7.0-x86_64.box
centos7是我给这个box取的名字,你完全可以根据你的习惯来命名。 - 初始化环境
创建一个开发目录(比如:~/vagrant),你也可以使用已有的目录,切换到开发目录里,用 centos7 镜像初始化当前目录的环境:
~$ cd ~/vagrant
~/vagrant$ vagrant init centos7
初始化完成之后,当前目录生成Vagrantfile,这是vagrant的配置文件,可以修改这个配置文件对操作系统进行个性化的定制,比如网络连接方式,共享的目录等。文件中的配置项都有详细的注释。 - 配置vagrant信息
config.vm.network "private_network", ip: "192.168.33.10"
设置虚拟机系统的私有网络地址,vagrant的三种网络连接方式差异请自行谷歌搜索
config.vm.synced_folder ".", "/workspace"
设置共享文件,把本文件所在文件夹路径,即~/vagrant 映射成虚拟机操作系统中的/workspace路径。你完全可以根据你的习惯设置共享目录。 - 启动vagrant
~/vagrant$ vagrant up
此步骤一定要在原目录(本文是~/vagrant)下进行,上命令触发vagrant根据Vagrantfile初始化操作系统 通过SSH连接操作系统
~/vagrant$ vagrant ssh
Last login: Sat Jul 16 20:41:27 2016 from 10.0.2.2
Welcome to your Vagrant-built virtual machine.恭喜你
安装开发工具
- JDK 7
先自行谷歌搜索安装配置JDK7,后期会考虑增加此教程。 - Maven 3
请参考http://blog.csdn.net/u010183402/article/details/51916926,虽然系统不同,但步骤相同。 - Tomcat 7
我在启动tomcat时中发现很多诸如文件读写执行权限的问题和centos7防火墙的设置问题,如果大家遇到此类问题请先自行谷歌搜索,后期会考虑增加此教程。
测试开发环境
打开Tomcat目录并启动Tomcat
tomcat$ sh bin/startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat
Using CATALINA_HOME: /usr/local/apache-tomcat
Using CATALINA_TMPDIR: /usr/local/apache-tomcat/temp
Using JRE_HOME: /usr/local/java/jdk1.7.0_79/jre
Using CLASSPATH: /usr/local/apache-tomcat/bin/bootstrap.jar:/usr/local/apache-tomcat/bin/tomcat-juli.jar
Tomcat started.测试tomcat启动情况
tomcat$ curl http://localhost:8080
<!DOCTYPE html> <html lang="en"> <head> <title>Apache Tomcat/7.0.70</title> <link href="favicon.ico" rel="icon" type="image/x-icon" /> <link href="favicon.ico" rel="shortcut icon" type="image/x-icon" /> <link href="tomcat.css" rel="stylesheet" type="text/css" /> </head> <body> ···
- 关闭centos 7 的防火墙(简单粗暴的方法)
$ sudo systemctl stop firewalld.service
- 在Mac浏览器中访问tomcat欢迎页面
输入http://[your_centos7_ip]:8080,上文设置的私有网络地址是192.168.33.10,即访问url应该是:http://192.168.33.10:8080 - 恭喜你
当你在Mac的浏览器中能正常访问tomcat欢迎页面,恭喜你本地开发环境配置成功啦! - 新的挑战
下回将介绍如何使用github+maven+tomcat 创建并部署一个简单的webapp项目。
打包分发
当配置好开发环境后,可以打包环境,然后拿到任何地方都能用。
~/vagrant$ vagrant package
打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。