之前做项目,一直都是把本地的源码上传到svn,服务器是通过ant或者maven脚本来编译的生成项目的。每次都要单独登录接服务器进行项目的部署和发布,感觉特别繁琐。(特别是在有几套服务器的情况下,简直就是要抓狂……)

启动

其实以前在使用eclipse的时候就想在maven下使用插件进行远程部署,无耐,多次试验,都没有成功,IDE换到了idea自己也尝试了下,感觉配置要容易了许多,经过简单的也成功了,现在记录如下:

环境配置

在服务器上JDK、tomcat等的安装不是本教材的内容,安装步骤,请自行google或者百度。

1、验证tomcat是否正常



例如我的服务器地址就是192.168.110.52,看到如上我们熟悉的tomcat页面出现,tomcat的安装就OK了。

2、idea的远程部署

1)、服务器端的配置

找到我们安装的tomcat的目录:

eg:

root@node1:/usr/tomcat/apache-tomcat-8.0.26#

在bin目录下我们会发现好多命令的文件



这里我们进行远程发布需要在catalina.sh这个启动脚本中增加一些配置



这个配置可以参考idea的官网:https://www.jetbrains.com/help/idea/2016.1/run-debug-configuration-tomcat-server.html,这个具体的字符串如下,其实主要是启动jmx,

export CATALINA_OPTS="-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.port=1099

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false

-Djava.rmi.server.hostname=192.168.110.52"


export JAVA_OPTS="-Dcom.sun.management.jmxremote=

-Dcom.sun.management.jmxremote.port=1099

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false"

其中的1099号端口,你在配置前需要检查下,是否被占用,如果被占用,你需要换个其他端口;-Djava.rmi.server.hostname=192.168.110.52中的“192.168.110.52”这个ip就是你服务器的地址了。还有一个小细节,你需要注意下,在服务器的/etc/hosts中,192.168.110.52这个地址的映射做了没。

如上,服务端的配置基本上就ok,现在需要启动了,之前,我们启动tomcat的脚本可能是startup.sh,现在我们需要远程部署,启动脚本是catalina.sh啦,其实我们可以看下这个脚本的文件的内容,拉倒最后,我们可以看到:



在这个里面的已经很清楚了解释了各个命令,这里我们采用run命令启动:

bin/catalina.sh run > /dev/null 2>&1 &

其中“ > /dev/null 2>&1 &”是Linux中的命令:把标准输出和出错处理都放到回收站,这样就免得一大堆输出占领你的屏幕。

在用jps命令:



如此,启动成功了,当然,你也可以到你本地的浏览器中输入:”http://192.168.110.52:8080“能看到tomcat的启动成功界面。

2)、本地idea端配置

增加远程服务器





远程服务器的配置测试



下面我把服务器换到192.168.110.79:



可以看到远程的都成功了

接着就是其他的配置了:







最后选着ok

到了最后一步了,选择远程的tomcat:



点击run

结果如下:



idea部署项目到远程tomcat的更多相关文章

  1. 部署项目到远程tomcat的413 Request Entity Too Large报错处理

    当项目jar包过多时,部署项目会报错而错误原因很清楚了,文件太大了. 因为用了nginx代理,而nginx默认文件大小有限,所以需要设置nginx上传文件大小限制 client_max_body_si ...

  2. Jenkins进阶-部署Web项目到远程tomcat(7)

    之前讲到的是如何构建一个项目,并且将代码进行编译.打包,那么打包完成最后的结果就需要发布到应用服务器,将项目部署成功.在之前的项目中我们采用的shell脚本来部署,下面讲解通过Jenkins部署web ...

  3. Jenkins部署Web项目到远程tomcat(通过jenkins插件)

    之前讲到的是如何构建一个项目,并且将代码进行编译.打包,那么打包完成最后的结果就需要发布到应用服务器,将项目部署成功.在之前的项目中我们采用的shell脚本来部署,下面讲解通过Jenkins部署web ...

  4. IntelliJ IDEA自动部署项目至远程服务器与传统部署项目至远程服务器的区别

    每次开发Java项目时,对于所有Java开发人员来说,最枯燥的不是修改代码,而是实时将自己的代码上传至远程服务器,进行测试或者部署,本人最初开发也是这样,通过使用Xshell 5,WinSCP等工具对 ...

  5. 一劳永逸部署项目:通过tomcat加载环境变量

    一劳永逸部署项目:通过tomcat加载环境变量 转载自:https://blog.csdn.net/u010414666/article/details/46499953 一.说明 项目中经常会用到x ...

  6. 使用maven命令进行打包,部署项目到远程仓库

    如果要部署项目到远程仓库, 方法一:配置pom.xml: <distributionManagement> <repository> <id>releases< ...

  7. Jenkins部署Web项目到远程tomcat

    1.填加插件Deploy to container Plugin. 2.在构建任务中填加构建后操作.并做如下配置: WAR/EAR files:是war包的相对路径,如target/xxx.war c ...

  8. 使用IDEA部署项目到远程服务器

    1.选择Tools -> Deployment -> Configuration... 2.配置连接信息,Linux服务器一般都选择SFTP 3.配置本地上传文件路径.远程上传文件路径 4 ...

  9. linux(Centos系统)部署项目(vue+nginx+tomcat)

    条件,在服务器安装好tomcat,nginx; 安装nginx命令:# yum install nginx 启动Nginx命令:# systemctl start nginx.service 给权限 ...

随机推荐

  1. Java Marker Interface

    先看看什么是标记接口?标记接口有时也叫标签接口(Tag interface),即接口不包含任何方法. 在Java里很容易找到标记接口的例子,比如JDK里的Serializable接口就是一个标记接口. ...

  2. jquery图片切换插件jquery.cycle.js参数详解

    转自:国人的力量 blog.163.com/xz551@126/blog/static/821257972012101541835491/ 自从使用了jquery.cycle.js,我觉得再也不用自己 ...

  3. Python爬虫二

    常见的反爬手段和解决思路 1)明确反反爬的主要思路 反反爬的主要思路就是尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现;浏览器先请求了地址url1,保留了cookie在本地,之后请求地址u ...

  4. STM32CUBEMX入门学习笔记1:软件的简单介绍

    STM32CUBEMX是ST公司设计的一款免费软件,软件可以通过其官网下载.现在已经下载到.通过STM32CUBEMX可以完成从单片机选型,程序初始化,中断配置……工作.并生成对应的"HAL ...

  5. 使用nohup+& 踩到的坑

    首先分清楚nohup与&: &是指在后台运行一般在执行命令后,都会显式的在前台执行,当Ctrl+C后进程回宕掉,但是 在命令后加&,即使Ctrl+C,程序还在进行,但是,当关闭 ...

  6. build.xml: 21: Class not found: javac1.8

    在eclipse里运用ant时经常碰到class not found的错误提示,从而编译失败,其实是eclipse中本身的ant版本太老造成该的,但我今天安装的ant是1.8.4,感觉已经很新了,但编 ...

  7. HDU 5489 Removed Interval DP 树状数组

    题意: 给一个长度为\(N\)的序列,要删除一段长为\(L\)的连续子序列,问所能得到的最长的\(LIS\)的长度. 分析: 设\(f(i)\)表示以\(a_i\)结尾的\(LIS\)的长度,设\(g ...

  8. 一张图展示:用两个栈来实现一个队列,完成队列的Push和Pop操作

    一  基本思路 将s1作为存储空间,以s2作为临时缓冲区. 入队时,将元素压入s1. 出队时,将s1的元素逐个“倒入”(弹出并压入)s2,将s2的顶元素弹出作为出队元素,之后再将s2剩下的元素逐个“倒 ...

  9. C语言总结(5)

    一.函数的定义: 函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数.例如:scanf(),printf()为库函数,cylinder(),fact()为自定义函数. 函数定义的一般形式: ...

  10. 通过FEDERATED存储引擎同步两实例间的表数据

    需求情景:实例1中A库中的三个视图是实例2中的B库所依赖的,B需要A库中三个视图的实时数据. 方案:通过FEDERATED来完成跨势力的查询FEDERATED存储引擎表只会创建表结构,不会存储表数据, ...