1.war与 war exploded
在使用IDEA开发项目的时候,部署Tomcat或jetty的时候通常会出现下边的情况,选哪一个呢,先了解下两个的区别
war模式:将web工程以war包的形式上传到服务器
war exploed模式:将web工程以当前文件夹的位置关系上传到服务器
(1)war模式这种可以称之为是发布模式,war模式先打成war包,然后再发布到Tomcat的ROOT下。所以选择这个模式后,你再看下你的tomcat的root文件夹下,是刚打成的项目。再发布;
(2)war exploded模式只编译生成target,直接把当前的target文件夹的位置关系上传到服务器文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
2.热部署
在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。
如果修改代码,看到效果,每次都需要重新发布服务,次数多了难免会烦。我用的是Jrebel插件,就是可以帮助我们热部署代码,不用每次都重新打包、部署。网上没找到激活码,最后淘宝9块钱买了个激活码。
填写server,邮箱随便填,valid表示激活成功。
在Run EditConfiguration里,修改配置。选中要部署的项目,重启应用
此时修改html里的内容,保存后,直接刷新浏览器,可以看到修改立刻生效了
PS:如果修改JS后,页面没有刷新,是因为浏览器里有缓存,清理下缓存即可
3.远程发布
一般公司会有自己的项目脚手架与部署服务,按照说明可以完成项目发布。如果没有或者想自己发布呢?可以打成war包,使用tomcat或jetty容器进行发布。
(1 )buildwar包,file - project structure ,默认为1选择,2选择输出目录(build的war包可以在这个路径下获取),3重命名为ROOT.war。4创建 manifest(选择target目录即可
(2) Build - build artifacts -选择xx.war,去target目录下即可获取到ROOT.war
4.测试发布
(1)将war包放到到jetty目录下 /Users/xx/software/jetty/webapps
(2)返回到jetty目录下。执行java -jar start.jar 或/usr/local/java8/bin/java -jar start.jar &(后台执行),然后浏览器输入localhost:8080
(3)在服务器操作基本一样,如果8080端口被其他程序占用,可以修改start.ini文件下的port(默认是8080,已被注释),启动服务后,ip:8080即可访问