环境搭建(后端)--缪东旭

复制于 miaodx 的博客,因不存在转载功能,只能复制了~

项目环境搭建 -- 后端

主要内容:Intellij+SpringMVC+Docker_tomcat+Jenkins_CI

声明

这节博客有些“碎碎念”,主要是今晚不准备写新的程序,如果想要节省时间,请直接参考下面的三/四篇文章:

使用IntelliJ IDEA开发SpringMVC网站(一)开发环境

Docker自动部署Apache Tomcat,文末有原文链接。

jenkins+maven+svn构建项目,及远程部署war包到tomcat上

比第三篇更详细一些的:

「Jenkins+Git+Maven+Shell+Tomcat持续集成」经典教程

非常感谢原作者们。

缘由

本项目(可看做原要求的一种形式,即以小组形式完成),简单地说,以小组方式完成一个“小学生四则运算程序”,题目来源于邹欣的构建之法 中 1.1 节程序员阿超与学校老师的故事(莫名地想到了渔夫与金鱼),使用 Java Web 来做乍看起来可以说是有些“太重了”,但要做到整个小组都参与进来,并没有其他特别好的方法(如果有的话,请告诉我 :>)。

当然,因为需求有变化的可能,所以使用较为成熟的技术还是有更多保障的。

另外,组员们都没有正式做过类似的项目,而今年另一门课程“软件开发基础”也会讲到 Java 开发(Design Patterns 等),可以说使用 Java 开发算是一举多得。

如此可以将整个项目分为前端与后端两部分,本文记录一下后端的环境搭建。

真正的缘由

本科学 Java 时因为受到类似于 Java “执行慢”、“笨重”、“有重大设计缺陷”等等说法的误导以及在课上没有跟上老师飞快的讲授节奏还有自己的懒惰,所以学得很不好。可是后来发现其实现实中 Java 能做的东西是非常多的,所谓执行效率,就目前的硬件来说,除非在特定领域(图像、视频处理,硬件控制,高时序要求等)并不会那么明显。其他的诸多好处就不再赘述。

开发环境

Intellij 是目前最好的 Java 开发环境(如有异议,请把它当作“PHP 是最好的编程语言”)

Spring

The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.

算是目前业界正在广泛使用的框架,当然,还是应该有数据持久化框架的,不过这个先不介绍(Hibernate 与 Mybatis 还没确定使用哪个)。

请移步 使用 IntelliJ IDEA 开发 SpringMVC 网站(一)开发环境,建议一步步看下去,非常好。

... ... ... >>> <<< >>>

大概需要半个多小时对应着搞完。

其实开发环境的配置就结束了 ~

当然,在后面你可能需要一台机器上启动多个 Tomcat,由于原博客有迁移的迹象,现复制如下。

如果需要在一台机子上启动多个Tomcat服务器,在默认设置下肯定会发生端口冲突。为实现这个效果,只需修改conf子目录中的server.xml文件即可。共需修改三处:
(1).修改http访问端口(默认为8080端口):

(2).修改Shutdown端口(默认为8005端口):

(3).修改JVM启动端口(默认为8009端口):

然后,也许还需要看一下 intellij 热部署的方式,这里不再给出链接。

部署

从很久之前就非常、非常、非常讨厌重装系统,进行各种配置没有太大问题,但时隔一年半载再次配置就无法忍受了。所以,对虚拟化一直很感兴趣,装过无数虚拟机。在看到 docker 后无比兴奋,目前的想法是如何把每个 windows 程序做成类似于此,不再为重装或迁移系统而费脑筋(打包软件 Cameyo 并不好用)。

与上面类似,还是推荐一篇文章:

Docker自动部署Apache Tomcat

写的非常好,不过我还是要进行一些更新。

本人使用的是 tomcat8.

1.tomcat-users.xml 中

<role rolename="manager-gui"/>
<role rolename="manager-gui"/>

很明显是重复的,根据原文件(tomcat 解压后的 tomcat-users.xml)的说明以及在不进行配置尝试在网页页面进入“Manager App”按钮,并选择取消,会发现有建议的更改方式,具体如下:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>

<role rolename="manager-gui"/> 
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>   
<role rolename="manager-status"/>


<user username="yourusername" password="yourpassword" roles="manager-gui,manager-script,manager-jmx,manager-status"/>    

</tomcat-users>

2.原 Dockerfile 中 ADD settings.xml /usr/local/tomcat/conf/ 并不太清楚是为何,所以,不再添加。

3.想要远程部署,需要添加 manager.xml 到指定目录,反映到 Dockerfile 就是添加:

ADD manager.xml /usr/local/tomcat/conf/Catalina/localhost/

具体的,可以参见我写好的一个 dockerfile

远程部署与持续集成

Tomcat 按前面 docker 容器构建即可。

想要持续集成与远程部署,这里选择 Jenkins,因为 VPS 有限,所以部署在本地(官方提供了 docker)。

参见教程:

jenkins+maven+svn构建项目,及远程部署war包到tomcat上

以及

「Jenkins+Git+Maven+Shell+Tomcat持续集成」经典教程

事实证明很爽,毕竟是只需将代码提交到 github 便可以自动编译部署。我的一个 demo

原文地址:https://www.cnblogs.com/msec2016/p/environment_backend.html