网站首页 > 开源技术 正文
在多系统协同开发时,经常需要在开发环境进行系统联调。传统方式是通过IDE工具启动系统工程,然后其他系统再通过开发主机的IP地址和端口进行联调。这种方式的效率较低,主要表现在:
由于IDE的系统工程正在运行,开发人员无法继续编写代码。
由于系统联调,开发人员无法调试和修改其他功能。
现在,将Docker容器和IDE工具相结合,便能较好地解决上述两个问题,有助于提升系统开发效率。本文将会使用两种比较流行的IDE工具:
基于Eclipse的Spring Tool Suite(STS)
IntelliJ IDEA
本文会分别通过这两种IDE工具建立SpringBoot的示例工程,然后为IDE工具配置Docker连接,最后将示例工程部署为容器化的服务。
一、环境描述
1. 开发机
操作系统:Windows 10 Enterprise
Java:build 1.8.0_144-b01
STS:spring-tool-suite-3.9.0.RELEASE-e4.7.0-win32-x86_64.zip
IntelliJ:ideaIU-2017.2.4.win.zip
DockerToolBox:17.07.0-ce
2. 联调机
操作系统:CentOS 7.3 Minimal
Docker:17.06.2-ce
Docker-Compose:1.16.1
基础设施:阿里云ECS主机
IP地址:172.17.245.110
二、建立示例工程
1. Spring Tool Suite
Step-1 访问菜单File → New → Spring Starter Project,打开新建工程窗口,如下图所示:
新建SpringBoot示例工程
保持默认配置项不变,然后点击Next按钮。
Step-2 指定新建工程的依赖关系,选择Web → Web,如下图所示:
设置工程依赖关系
然后点击Next按钮,进入站点信息配置窗口。
Step-3 保持站点信息不变,如下图所示:
设置示例工程的站点信息
然后点击Finish按钮,STS便会建立示例工程,并且下载相应的依赖关系。
Step-4 SpringBoot示例工程的目录结构,如下图所示:
示例工程的STS目录结构
接下来,新建一个控制器类,代码如下所示:
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String say() {
return "Hello World From Spring Tool Suite ...";
}
}
至此,STS工具的SpringBoot示例工程已经创建完毕了。工程启动之后,通过Web浏览器访问HelloController控制器,便能看到相应的提示信息。
2. IntelliJ IDEA
Step-1 在IntelliJ的启动窗口中,点击Create New Project按钮,如下图所示:
IntelliJ首页
Step-2 在新建工程窗口中,定义工程的SDK和工程类型,如下图所示:
新建SpringBoot示例工程
Step-3 点击Next按钮,进入工程元数据配置窗口,保持默认配置不变,如下图所示:
示例工程的元数据
Step-4 点击Next按钮,进入依赖关系配置窗口,选择Web依赖,如下图所示:
设置工程的依赖关系
Step-5 点击Next按钮,配置工程名和目录位置,如下图所示:
示例工程的名称和位置
Step-6 点击Finish按钮,IntelliJ便会建立示例工程,并且下载相应的依赖关系。SpringBoot示例工程的目录结构,如下图所示:
示例工程的IntelliJ目录结构
Step-7 接下来,新建一个控制器类,代码如下所示:
package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String say() {
return "Hello World From IntelliJ ...";
}
}
至此,IntelliJ工具的SpringBoot示例工程已经创建完毕了。工程启动之后,通过Web浏览器访问HelloController控制器,便能看到相应的提示信息。
三、配置Docker连接
1. Spring Tool Suite
Step-1 访问STS的Help → Install New Software...,打开插件安装窗口,然后将插件源指定为Eclipse的官方源,搜索关键字docker,找到Docker Tooling插件,如下图所示:
查找Docker Tooling插件
Step-2 安装Docker Tooling插件,安装完成之后需要重新启动STS,然后便能打开Docker Tooling的视图,如下图所示:
打开Docker Tooling视图
Step-3 在STS的Docker Explorer中新建Docker连接,配置如下图所示:
新建STS的Docker连接
至此,STS的Docker连接配置完毕!
2. IntelliJ IDEA
Step-1 访问File → Settings,打开全局配置窗口,然后点击Plugins菜单,在插件窗口中点击Install JetBrains plugin...按钮,如下图所示:
打开IntelliJ的插件窗口
Step-2 搜索关键字docker,找到Docker integration插件,然后点击Install按钮,如下图所示:
查找Docker Integration插件
Step-3 安装完成之后,需要重新启动IntelliJ,然后访问File → Settings,打开全局配置窗口,然后点击Build, Execution, Deployment菜单,点击其下属的Docker菜单,然后点击“+”号,如下图所示:
打开Docker配置窗口
Step-4 在新建Docker连接窗口中填写连接配置信息,如下图所示:
新建IntelliJ的Docker连接
至此,IntelliJ的Docker连接配置完毕!
四、部署容器化服务
0. 新建docker文件
Step-1 在示例工程的根目录新建Dockerfile文件,内容如下所示:
FROM java
COPY target/*.jar app.jar
RUN bash -c 'touch ./app.jar'
EXPOSE 8080
CMD ["java","-jar","app.jar"]
该文件用于构建示例工程的docker镜像,这个步骤同时适用于STS和IntelliJ!
Step-2 在示例工程的根目录新建docker-compose.yml文件,内容如下所示:
version: '3'
services:
demo:
build:
context: .
dockerfile: Dockerfile
image: demo-image:latest
container_name: demo-container
hostname: demo-container
expose:
- "8080"
ports:
- "8080:8080"
network_mode: "bridge"
该文件用于编排示例工程的docker容器,这个步骤同时适用于STS和IntelliJ!
1. Spring Tool Suite
Step-1 右键点击示例工程,在弹出菜单中选择Run As → 5 Maven Build,打开Maven配置和启动窗口,打包设置如下图所示:
STS的Maven打包配置
设置完成之后,点击Run按钮,Maven便会将示例工程打包为可执行jar包,存放在target目录中。
Step-2 访问Run → Run Configurations...,打开运行配置窗口,点击Docker Compose菜单,然后点击New launch configuration按钮,新建运行配置,如下图所示:
新建STS的运行配置
Step-3 配置完成之后,点击Run按钮,STS便会自动构建镜像,然后自动将示例工程的服务容器化部署至联调机。部署完成之后,便能在Docker Explorer中看到相应的docker镜像和容器,如下图所示:
Docker Explorer中的容器和镜像
其中,demo-container是运行示例工程对应的服务容器,demo-image:latest是基于示例工程构建的镜像,java:latest是示例工程镜像的基础镜像。
2. IntelliJ IDEA
Step-1 打开最右侧的Maven Projects窗口,然后忽略测试过程,访问demo → Lifecycle,双击其中的package项目,如下图所示:
IntelliJ的Maven打包配置
此时,Maven便会将示例工程打包为可执行jar包,存放在target目录中。
Step-2 访问Run → Edit Configurations...,点击“+”符号,然后在弹出的新增配置窗口中选择Docker Deployment,打开Docker部署配置窗口,配置信息如下图所示:
新建IntelliJ的运行配置
Step-3 运行配置完成之后,访问Run → Run,在弹出的运行菜单中选择demo-docker,IntelliJ将会自动打包、构建镜像和部署服务。部署完成之后,便能在Docker标签页中看到相应的docker镜像和容器,如下图所示:
Docker标签页中的容器和镜像
其中,demo-container是运行示例工程对应的服务容器,demo-image:latest是基于示例工程构建的镜像,java:latest是示例工程镜像的基础镜像。
五、验证
1. Spring Tool Suite
在Web浏览器的地址栏中访问http://172.17.245.110:8080/hello,若打开页面如下图所示,则表示STS将示例工程部署为容器化服务:
通过STS部署的容器化的Web服务
2. IntelliJ IDEA
在Web浏览器的地址栏中访问http://172.17.245.110:8080/hello,若打开页面如下图所示,则表示IntelliJ将示例工程部署为容器化服务:
通过IntelliJ部署的容器化的Web服务
六、总结
上述的配置方法完成之后,当开发者编辑完代码,想要部署联调环境时:
Spring Tool Suite:通过Maven打包,然后执行先前指定的Docker Compose运行配置。
IntelliJ IDEA:直接一键运行先前指定的Docker Compose配置。
此时,便能将SpringBoot工程方便快捷地部署为容器化服务!
猜你喜欢
- 2024-10-24 Java常用框架大全(java使用的框架)
- 2024-10-24 使用IntelliJ IDEA创建Spring Boot项目
- 2024-10-24 HikariCP为啥这么火?SpringBoot选它的原因?
- 2024-10-24 安装完STS插件后,如何用eclipse搭建springboot详解
- 2024-10-24 SpringBoot系列基础入门与MongoDB实现增删改查
- 2024-10-24 采用Springboot+ Layui开发的前后端分离物流后端项目源码分享
- 2024-10-24 springboot简介(介绍一下springboot)
- 2024-10-24 对Java开发人员的最有用的10个Eclipse插件
- 2024-10-24 Java知识体系最强总结(2021年最新版)
- 2024-10-24 数据分析体系开发环境搭建:搭建数据分析体系第十二篇
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)