IntelliJ Idea发布项目到tomcat的方法(包括发布war)

前言

最近在学习tomcat serverlet的开发,使用的开发工具也是比较常用的IntelliJ Idea,tomcat9,serverlet。开发一个helloworld的test webapp,并在idea环境下编译调试都很简单,但后面要面临一个web app发布的问题,即脱离idea环境单独将web app集成到tomcat环境下上线使用。

正文

开始按照网上一些文章去做,并没有完全成功,没有将所有的class都打包到war中,运行时出现exception。最后自己在它们的基础上找到了成功的方法,步骤很简单,亲测有效特此记录一下。

发布到tomcat的方法有两种,以我本地的webapp和路径为例:

方法1. 直接copy文件夹到webapps的目录下

在Idea中选择File——Project structure——Artifacts,然后如图操作

IntelliJ Idea发布项目到tomcat的方法(包括发布war)

一般情况下选中了from Modules只会有一个和工程名字一样的可选,选中它既可添加成功。

IntelliJ Idea发布项目到tomcat的方法(包括发布war)

然后在Build——Build Artifacts,然后选中刚添加的Module并build即可。

IntelliJ Idea发布项目到tomcat的方法(包括发布war)

这样最终会在project的目录下生成一个同名的文件目录:

C:\Users\×××××\IdeaProjects\FirstServerlet\out\artifacts\FirstServerlet_war_exploded

而我们目录FirstServerlet_war_exploded整个拷贝到tomcat的webapps目录下,就可以成功的访问我们自己webapp下的链接了。

直接localhost:8080/FirstServerlet_war_exploded这样访问,当然文件目录可以重命名的,只要做到访问的url中name一致就行。

方法2:打包war并发布

我个人觉得将整个项目打包成war发布会更好,这个打包工作直接在idea环境下就可以完成。除此之外肯定还有别的方法,只是我不知道而已。

开始的步骤和方法1都是一样的,File——Project structure——Artifacts,但是点击“+”号选择的条目不同。

IntelliJ Idea发布项目到tomcat的方法(包括发布war)

!!!这有一点要注意,必须要先添加方法1中的exploded条目,这里才有exploaded选项,否则只有empty!!!

然后同样的去build我们添加的这个artifacts即可。

IntelliJ Idea发布项目到tomcat的方法(包括发布war)

这样在目录C:\Users\liujianfeng\IdeaProjects\FirstServerlet\out\artifacts\unnamed3下面就可以看到一个war包,把其copy到tomcat的webapps目录下,就可以成功访问了,访问的url中的name也要和war包的名字保持一致。

小结

其实两个方法很简单,方法1是方法2的基础。这个很容易理解,方法1就是添加了这个web项目的exploaded,编译出来是一个没有打包的文件夹,而方法2就是将这个文件夹添加到war包中而已。

截至到2018-9-28,此方法都有效可用。