如何防止IntelliJ更改CATALINA_BASE

时间:2019-02-15 00:27:19

标签: tomcat intellij-idea

我正在Eclipse上在Tomcat上运行一个Web应用程序,但是我正在切换为使用IntelliJ而不是Eclipse。由于某些原因,使用IntelliJ时,我的CATALINA_BASE与我的CATALINA_HOME相比显示了不同的路径(根据日志):

14-Feb-2019 16:14:31.171 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         C:\Users\schmoejoe\.IntelliJIdea2018.3\system\tomcat\Unnamed_myapp
14-Feb-2019 16:14:31.171 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         C:\myapp\apache-tomcat-9.0.8

在我的运行/调试配置中,我在C:驱动器上指定本地tomcat的路径(即CATALINA_HOME)。但是正如您在上方看到的那样,日志在不同的路径 C:\ Users \ ... \。IntelliJIdea2018.3 \ system \ tomcat \ Unnamed_its 中显示了我的CATALINA_BASE。

为什么IntelliJ将我的CATALINA_BASE更改为不同于CATALINA_HOME?我有什么办法可以防止这种情况发生?

我问的一个原因是我的日志现在转到该其他路径,而不是我希望它们到达的位置(我的实际tomcat目录)。也许这就是IntelliJ的Tomcat集成的工作方式?但是一个缺点是它似乎使我无法从Tomcat bin \ startup.bat运行我的应用程序。

1 个答案:

答案 0 :(得分:1)

是的,您可以指示CATALINA_BASECATALINA_HOME中。

但是通常的做法是使用外部基本文件夹。这样可以使原始Tomcat文件夹保持原始状态。通过多个可能正在使用Tomcat的项目,这也使内部管理更加容易。每个项目都有自己的基本文件夹,可以将各自的内容整齐地分开。

无论哪种方式,都可以在配置IntelliJ来了解Tomcat时指定基本文件夹。在Preferences> Build, Execution, Deployment> Application Servers中查找。单击+图标按钮,使用IntelliJ设置Tomcat的新配置,显示下图所示的对话框。点击Tomcat base directory字段中的文件夹图标,以选择您预先配置的基本文件夹。

screenshot of <code>Preferences</code> > <code>Build, Execution, Deployment</code> > <code>Application Servers</code> > <code>Tomcat home directory</code>.

请注意,在我的示例屏幕中,我是自己的练习。我将Tomcat放在Unix / macOS主文件夹的顶部。我为各个项目的基础文件夹创建了一个名为apache-tomcat-base的文件夹,因此该文件夹按字母顺序邻接Tomcat文件夹。然后,我使用Unix风格的命名来嵌套一个项目特定的文件夹,以避免出现问题(没有SPACE字符,简单,简短),例如在这里看到的example_app。如果我正在使用不同版本的Tomcat,例如9.0.14(不常见),则可能会进一步嵌套版本号命名的文件夹。

CRUCIAL::很遗憾,IntelliJ拒绝配置此外部基本文件夹。 NetBeans会自动为我执行此操作,这让我很受宠。但是在IntelliJ中,尽管已经花钱购买了Ultimate edition以获得Application Server支持功能,但我必须手动配置基本文件夹。有关此问题,请参见my Question

  1. 进入Tomcat文件夹,复制conf文件夹。
  2. 粘贴到我们创建的嵌套基础文件夹中。

enter image description here

最后,为您的Web应用设置一个Run/Debug Configuration。使用IntelliJ右上角的“运行和调试”图标旁边的弹出菜单,访问接下来显示的对话框。请注意Application server字段,在该字段中,我们选择了我们如上所述建立的IntelliJ-Tomcat配置。

Screenshot of “Run/Debug Configuration > Tomcat Server > Run external Tomcat” dialog box

奖金提示:避免使用After launch复选框。令人讨厌的错误导致我的Web应用程序在Tomcat中重新启动。只需手动切换到网络浏览器,为您的localhost:8080 URL保留一个书签。