如何在centos命令行下搭建java开发环境?

一、背景

1.1 现状

我们是在公司内部网络里开发,与外网物理隔离。
通常是将代码从svn下载本机,进行编译、开发,通常编译工作比开发工作耗时还要长。

1.2 目前应对办法

后来我们把代码从svn上下载到开发联调服务器上。
开发联调服务是centos 8,虚拟机。
我们发现在服务器上编译快多了。
于是开发流程就变成了这样:

graph TB;
PC提交代码 -> 服务器端更新代码;

服务器端更新代码 -> 服务器端编译;

服务器端编译 -> 服务端打包运行;

二、问题

讲道理,这套办法确实提升了效率;但是既然上了服务器,为啥不直接在服务器上开发?

所以我们的问题是,如何在服务器的命令行下搭建java开发环境。
maven、svn、jdk这些已经安装好了。
vim也有,就是缺少一些IDE的智能提示等能力,有什么路子吗?图形界面不行。

阅读 2.9k
3 个回答

服务器的从 SVN 拉代码,编译到运行这个阶段是可以自动化完成的,只需要引入一个 jenkins (或者任意 CI 系统) 即可更高效率的实现这个这一条龙

然后在配置完之后,你在本地只要通过浏览器触发,或者 IDE 内插件触发一下即可进行拉代码->编译->运行一条龙

这个是比你设想的在远程上直接开发更实际的提升效率。

给你看个我本地的 IDE 的效果图

jenkins

至于你的本来问题,在服务器开发。我想既然你会问出这个问题,这里建议你仍然在本地进行。好处有:响应速度(废话),还有因为环境在本地,所以可以更加方便的 debug (打断点),做 profile 性能分析等等。虽然这些的确也都可以对一个远程的进程进行,但体验上是不如本地的。

但如果你坚持想要尝试一下直接 ssh 上去开发,那么 vim 配置一个语法提示之类的也的确不是不行,不过相信我,就 Java 开发而言,即使你的 vim 经过各种配置,但比起专业的 IDE 而言也更像是自虐。如果你真的是一个 vim 爱好者,那么不妨安装一个 IDE 的 vim 插件,一样可以享受 vim 的全键盘操控的乐趣。

然后即使如果服务端可以搭 GUI 环境,你也会面临远程带来的响应不及时的问题。因此我推荐开发仍然在本地进行。

(说句大白话的话就是,等到你熟悉了能 hold 住的时候,其实也就不会来抛出这个问题了)

讲道理,这套办法确实提升了效率;但是既然上了服务器,为啥不直接在服务器上开发?因为在服务器上开发和本地开发比起来麻烦很多,很少人会这样做;
如何在centos命令行下搭建java开发环境?可以通过idea的ssh功能,实际还是在本地开发,只是代码实时同步到服务器上,还有就是在服务器上安装idea远程到服务器上开发,但是都不推荐。

docker 模拟服务器环境开发环境

推荐问题