java – 使用Intellij构建战争并部署到Tomcat

前端之家收集整理的这篇文章主要介绍了java – 使用Intellij构建战争并部署到Tomcat前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的基本工作流是在我的基本目录下的终端mvn clean install.这将创建一个带有WAR文件的目标目录.我将该war文件复制到我的Tomcat的webapps目录中.

如果我做出改变,我显然必须重复这个繁琐的过程.我使用Intellij Ultimate 13.1.6,我知道可以通过基于this guide的IDE完成所有这些.

所以在我开始之前,我在我的基地运行mvn clean,删除目标目录.

现在开始我进入项目结构 – >人工制品并创建了一个新的Web应用程序:存档.我将其命名为project_name,默认情况下具有不同的输出目录(baseDir / out / artifacts / project_name对baseDir / target),我将所有的默认值都保留下来,然后按OK.

现在我去运行 – >使用以下settings编辑配置并创建新的本地Tomcat服务器

在“部署”选项卡中,我添加了在我的“启动之前”中构建的工件,如我的图片所示.很简单

但是,每当我通过Intellij运行服务器,它会成功启动,但没有部署任何内容.我得到错误

Artifact project_name:com.intellij.javaee.oss.admin.jmx.JmxAdminException:com.intellij.execution.ExecutionException:/Users/path/to/workspace/project_name/out/artifacts/project_name/project_name.war找不到网络模块.

而且我仔细检查我的目录,如同错误所见,没有任何东西被创建.甚至没有out目录.

我究竟做错了什么?我知道一个解决办法是回到终端,运行mvn clean install和所创建的.war文件,将其放入部署配置中.我觉得这更像是一个黑客,因为我仍然通过命令行执行,如果我没有它已经构建,我不能将目标设置为目录来查找战争文件.

任何帮助都不胜感激.

解决方法

你可以做的事情的清单,以验证出错的地方:

1)使用Build>手动构建工件构建文物.

2)验证工件是否在预期输出目录(out / artifacts / xxx)中.

3)如果没有,请转到文件>项目结构>文物

4)选择有问题的工件文件(在这种情况下为project_name).

5)验证输出目录是否正确.可以尝试自己创建这个目录,以防IntelliJ不这样做(虽然这会让我感到意外)

6)验证内容是否正确.

7)可选地,当您运行服务器时,选中“Build on make”始终具有最新版本的代码.

请注意,为了将WAR文件部署到Tomcat,您应该更喜欢使用分解的WAR.这使得部署/测试/调试显着更快.

猜你在找的Java相关文章