Joe*_*oey 25 java tomcat web-applications intellij-idea maven
我的基本工作流程mvn clean install在我的基本目录的终端中.这将创建一个带有WAR文件的目标目录.我将该war文件复制到我的Tomcat的webapps目录中.
如果我做出改变,我显然必须重复这个单调乏味的过程.我正在使用Intellij Ultimate 13.1.6,我知道可以通过基于本指南的IDE完成所有这些工作.
所以在我开始之前,我mvn clean在我的基础上运行,删除了目标目录.
现在开始我进入项目结构 - >工件并创建一个新的Web应用程序:存档.我将它命名为project_name,默认情况下它有一个不同的输出目录(baseDir/out/artifacts/project_name vs baseDir/target),我将所有内容保留为默认值并点击确定.
现在我转到Run - > Edit Configurations并使用以下设置创建一个新的Local Tomcat Server
在部署选项卡中,我添加了在我的图片中看到的在Before发布之前构建的工件.非常直截了当.
但是,每当我通过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 not found for the web module.
我仔细检查我的目录,如错误中所示,没有创建任何内容.甚至没有out目录.
我究竟做错了什么?我知道一个解决方法是返回终端,运行mvn clean install并使用创建的.war文件,将其放入部署配置中.我觉得这更像是一个黑客攻击,因为我仍然通过命令行执行它,如果我没有它已经构建,我不能将目标设置为查找war文件的目录.
任何帮助表示赞赏.
xav*_*ert 31
您可以做的事情清单,以验证出错的地方:
1)使用Build> Build工件手动构建工件.
2)验证工件是否在预期的输出目录中(out/artifacts/xxx).
3)如果没有,请转到文件>项目结构>工件
4)选择有问题的工件文件(在本例中为project_name).
5)验证输出目录是否正确.(可选)尝试创建此目录,以防IntelliJ不这样做(虽然这会让我感到惊讶)
6)验证内容是否正确.
7)(可选)选中"Build on make",以便在运行服务器时始终部署最新版本的代码.
请注意,要将WAR文件部署到Tomcat,您应该更喜欢使用爆炸的WAR.这使得部署/测试/调试速度明显加快.
当我尝试使用Run启动应用程序时出现此错误.问题是由于某种原因,即使在选择Build-> Build Artifacts之后也没有部署WAR文件.解决方案:我关闭了Idea然后重新导入项目并选择作为战争爆炸的工件.这次部署有效.
我遇到了这个问题,原因是在项目结构中,Artifacts 的输出目录实际上并不存在:
解决方案:
File -> Project Structure
我遇到了同样的问题,上述解决方案都没有解决问题。在此分享,以防其他人遇到同样的问题。
在我的例子中,Tomcat 服务器配置为在 18099 而不是 1099 上运行 JMX 端口。因此,该工件从未部署,因为 IntelliJ Tomcat 配置中默认使用的 JMX 端口是 1099。
将其更改为 18099 或删除特定的 Tomcat 配置解决了该问题。
底线:如果您希望部署工件,请确保 IntelliJ 中配置的 JMX 端口与 Tomcat 服务器实际使用的 JMX 端口匹配。
| 归档时间: |
|
| 查看次数: |
69665 次 |
| 最近记录: |