Intellij Idea社区版中的Tomcat


73

是否可以在Intellij Idea Community Edition中使用Tomcat服务器运行Web应用程序?

我试图找到有关它的信息,但没有取得任何成功。

Answers:


29

如果您使用的是maven,则可以使用以下命令mvn tomcat:run,但首先需要在pom.xml中将此结构添加到build标签中,如下所示:

<build>
    <finalName>mvn-webapp-test</finalName>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>${maven.compiler.plugin.version}</version>
              <configuration>
                  <source>1.6</source>
                  <target>1.6</target>
              </configuration>
          </plugin>
      </plugins>
  </build>

8
我在IntelliJ IDEA 13.1版本的“文件”->“设置”中没有看到“应用程序服务器”选项。如何启用它。
巴菲什2014年

4
如果不使用Maven,该怎么办?
Thomas S.

此配置还将支持调试吗?
Nikhil Sahu

1
@Bhavesh您是否在Intellij Idea社区版中实现了使用tomchat?
Elaman Aitymbet

1
@Elaman Aitymbet如果您使用的是Java8,则可能需要进行以下设置:maven.apache.org/plugins/maven-compiler-plugin/examples/…–
Jay Lin

45

Intellij社区不提供Java应用程序服务器集成。您的替代品是

  1. 购买Intellij许可证,
  2. 切换到Eclipse;)
  3. 安装Smart Tomcat插件https://plugins.jetbrains.com/plugin/9492
  4. 安装IDEA Jetty Runner插件https://plugins.jetbrains.com/plugin/7505
  5. 如其他答案所述,从Maven,Gradle等处运行应用程序服务器。

我亲自安装了Jetty Runner插件(Jetty对我来说很好,我不需要Tomcat),对此解决方案我感到满意。我不得不处理IntelliJ的想法-Jetty,尽管报告了异常


4
Smart Tomcat插件也很方便。
AnupamChugh '18年

谢谢,Smart Tomcat在多模块Maven项目中更好。
詹姆斯

我试图在Intellij中建立一个使用Jetty Runner的项目,但尚未成功,无论尝试使用什么URL,我总是遇到HTTP错误404,我怀疑Jetty Runner插件是否正常工作。我还尝试了Jetty Runner GitHub页面上的自述文件,但仍然没有问题。您有可以与我共享的项目吗?
IcyBrk

1
SmartTomcat不允许访问tomcat服务器,我们只能访问部署的war url。如果部署的实例需要与在同一雄猫上运行的其他服务(其他战争的微服务-diff项目)进行通信,则这是有问题的。最后,选项2对我有用。
PriyankaW

10

使用Maven尝试tomcat7-maven-plugin

  <build>
          <plugins>
              <plugin>
                  <groupId>org.apache.tomcat.maven</groupId>
                  <artifactId>tomcat7-maven-plugin</artifactId>
                  <version>2.2</version>
                  <configuration>
                      <path>/</path>
                      <contextFile>src/main/webapp/WEB-INF/config/app-config.xml</contextFile>
                      <mode>context</mode>
                      <charset>UTF-8</charset>
                      <warDirectory>target/${project.artifactId}-${project.version}</warDirectory>
                  </configuration>
              </plugin>
          </plugins>
  </build>

使用运行它 tomcat7:run-war

这里有更多目标


我使用“ tomcat:run-war -DskipTests”目标和localhost:8080 / main地址行,其中main是我的artifactId。但是不知道web.xml,它说:[WARNING]警告:选定的War文件包含一个WEB-INF / web.xml,它将被忽略(战争任务中缺少webxml属性,或者将ignoreWebxml属性指定为'true') 。
Alexmelyon


5

Tomcat(无头)可以与IntelliJ Idea-Community Edition集成。

分步说明如下:

  1. 添加tomcatX-maven-plugin到pom.xml

    <build>
        <plugins>
            <plugin>
                 <groupId>org.apache.tomcat.maven</groupId>
                 <artifactId>tomcat7-maven-plugin</artifactId>
                 <version>2.2</version>
                 <configuration>
                     <path>SampleProject</path>
                 </configuration>
            </plugin>
        </plugins>
    </build>
    
  2. 添加新的运行配置,如下所示:

    Run >> Edit Configurations >> + >> Maven
    
    Parameters tab ...
    Name :: Tomcat
    Working Directory :: Project Root Directory
    Command Line :: tomcat7:run
    
    Runner tab ...
    VM Options :: <user needed options>
    JRE :: <project needed>
    
  3. 直接从IntelliJ Run >> Run / Debug菜单以Run / Debug模式调用Tomcat

注意:虽然这被认为是使用IntelliJ(企业版)功能的Tomcat集成功能的一种黑客行为,但我认为这是将tomcat集成到IntelliJ Idea(社区版)的一种编程方式。



3

是的,这是可能的,而且相当容易。

  1. 在“运行”按钮附近,从下拉菜单中选择“编辑配置...”
  2. 在左侧,单击加号,然后在maven中将其重命名为“ Tomcat”。
  3. 对于命令行,输入“ spring-boot:run”
  4. 在“运行程序”选项卡下,为“ VM选项”输入“ -XX:MaxPermSize = 256m -Xms128m -Xmx512m -Djava.awt.headless = true”。注:应取消选中“使用项目设置”。
  5. 对于环境变量,请输入“ env = dev”
  6. 最后,单击“确定”。

准备好按运行时,如果转到“ localhost:8080 / <page_name>”,则会看到您的页面。

我的pom.xml文件与Spring官方教程“使用Spring MVC服务Web内容”相同

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-serving-web-content</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.2.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

7
他特别要求运行JavaEE应用程序而不是Spring Boot应用程序。
杰迪先生

但是,对于Spring Boot应用程序而言,它的工作原理就像一个魅力。无需使用此方法安装任何tomcat插件。实际上,其他答案中提到的tomcat插件都不适合我的Spring Boot应用程序。
Epiphany27 '18

2

Maven插件和嵌入式Tomcat是可用的解决方法(我喜欢第二个更好的方法,因为您可以调试),但是实际的Web服务器集成仅在intelij付费版本中可用。


0

您可以将tomcat插件与gradle一起使用。有关更多信息,请单击此处

apply plugin: 'tomcat'

dependencies {
    classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:1.2.4'
}

[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

[tomcatRun, tomcatRunWar, tomcatStop]*.stopPort = 8090
[tomcatRun, tomcatRunWar, tomcatStop]*.stopKey = 'stfu'
tomcatRunWar.contextPath = "/$rootProject.name"
tomcatRunWar.ajpPort = 8000

if (checkBeforeRun.toBoolean()) {
    tomcatRunWar { dependsOn += ['check'] }
}

0

我用杰伊·林的回答。强烈推荐。

如果您以前从未使用过Maven,并且不想深入研究它:遵循Jay Lin的回答,但也可以这样做:

  1. 右键单击您的项目名称->添加框架支持-> Maven。

  2. 然后从此处http://maven.apache.org/install.html安装Maven 。按照它说的做,运行命令。

  3. 然后从这里https://mvnrepository.com安装spring-boot 。

  4. 然后按照错误消息进行操作-也许您需要安装其他内容(只需在Google上搜索它,然后mvnrepository.com就会出现)。要安装,请使用以下命令:

    mvn install:install-file -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile=path

path下载jar文件的位置替换,用mvnrepository.com的信息替换版本,组和工件ID。

  1. 我遇到的其他错误:

我必须在src / main / java中创建一个类(System.out.println在main中使用简单命令),然后<start-class>main.java.Hello</start-class><properties>中添加标记pom.xml。顺便说一句,pom.xml当您从我的答案中执行第一个操作时,应该会出现-复制粘贴杰伊·林的代码到那里。

我遇到的另一个错误是与JAVA_HOME变量和版本信息有关的。为什么它认为jdk是第7版,而我却说它是第8版。因此,我将java版本标记更改<properties>为this <java.version>1.7</java.version>

现在工作正常!大家好运。


0

如果使用Gradle,可以尝试以下脚本:https : //github.com/Adrninistrator/IDEA-IC-Tomcat。此脚本将为Web应用程序生成文件,创建Tomcat实例,启动Tomcat并加载Web应用程序。


您的脚本没有自述文件。请更新您的脚本以帮助其他人开始使用它。
Avi

谢谢。我添加了一个README.md和一个输出英语的runTomcat-en.gradle脚本。
Adrninistrator


0

好了,问题已经回答了,但是我在这里写的只是我的观察,这样社区中的其他同伴可以节省一些时间。我尝试使用Intellij communit版中的嵌入式tom-cat运行spring-mvc项目。

我首先尝试使用Gradle tom-cat插件,但是我所面对的问题是tomcat服务器仅启动一次,之后从第二次启动开始,构建抱怨说容器已经在运行。Web上有很多关于此的开放线程,对于某些线程来说,它对大多数人来说都是可行的(几乎90%的Web线程让我伤脑筋,也面临着容器第二次无法启动的问题。分辨率不存在。

在浪费了很多时间之后,我终于决定切换到maven tom-cat插件,并使用gradle和VOILA进行与maven相同的spring-mvc设置!它在短时间内就奏效了。

长话短说,如果您要在intellij社区版中设置spring-mvc项目,请考虑使用maven tomcat插件。

希望这可以帮助人们在各种Web论坛上进行数小时的探索。


0

我认为Maven安装不正确。与...核对 mvn --v

要么

请在安装maven之前检查env变量中的maven主页路径,或者您已经创建了此项目。


-1

我正在使用intellij CE创建WAR,并使用tomcat Deployment Manager在外部部署战争。这适用于测试应用程序,但是我仍然找不到调试它的方法。

  1. 打开cmd和当前目录到tomcat / bin。
  2. 您可以使用批处理文件start.bat和shutdown.bat启动和停止服务器。
  3. 现在,使用intellij中的mvn目标构建您的应用程序。
  4. 打开localhost:8080 / **您的端口号可能不同。
  5. 使用此tomcat应用程序部署该应用程序。如果遇到身份验证错误,则需要在conf / tomcat-users.xml下设置凭据。


-2
VM :-Djava.endorsed.dirs="C:/Program Files/Apache Software Foundation/Tomcat 8.0/common/endorsed" 
    -Dcatalina.base="C:/Program Files/Apache Software Foundation/Tomcat 8.0"  
    -Dcatalina.home="C:/Program Files/Apache Software Foundation/Tomcat 8.0" 
    -Djava.io.tmpdir="C:/Program Files/Apache Software Foundation/Tomcat 8.0/temp" 
    -Xmx1024M
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.