Tomcat 8 integration with Maven

后端 未结 4 431
感情败类
感情败类 2020-12-25 15:25

It sounds like Eclipse (Kepler) does not have a proper plugin for Tomcat 8. I want to deploy my .war into Tomcat 8 and run it by Maven pom.xml file. Can anyone provide me st

相关标签:
4条回答
  • 2020-12-25 15:51

    For Tomcat 8, you should use cargo-maven2-plugin, which works for both maven 2 and maven 3. When configuration cargo plugin, make sure that the value for Container Id is "tomcat8x". Do NOT omit the "x" after tomcat8.

    0 讨论(0)
  • 2020-12-25 15:53

    Example of how to run your war with cargo & tomcat8

    mvn clean verify org.codehaus.cargo:cargo-maven2-plugin:run -Dcargo.maven.containerId=tomcat8x -Dcargo.maven.containerUrl=http://repo1.maven.org/maven2/org/apache/tomcat/tomcat/8.5.9/tomcat-8.5.9.zip
    

    If you want to add it to your pom

    <plugin>
      <groupId>org.codehaus.cargo</groupId>
      <artifactId>cargo-maven2-plugin</artifactId>
      <version>${cargo.version}</version>
      <configuration>
        <container>
          <containerId>tomcat8x</containerId>
          <zipUrlInstaller>
              <url>http://repo1.maven.org/maven2/org/apache/tomcat/tomcat/8.5.9/tomcat-8.5.9.zip</url>
          </zipUrlInstaller>
        </container>
      </configuration>
    </plugin>
    

    Then to run you war (if your pom is a war)

    mvn cargo:run
    

    To run with debug (memory options not necessary)

    <plugin>
      <groupId>org.codehaus.cargo</groupId>
      <artifactId>cargo-maven2-plugin</artifactId>
      <version>${cargo.version}</version>
      <configuration>
        <container>
          <containerId>tomcat8x</containerId>
          <zipUrlInstaller>
              <url>http://repo1.maven.org/maven2/org/apache/tomcat/tomcat/8.5.9/tomcat-8.5.9.zip</url>
          </zipUrlInstaller>
        </container>
        <configuration>
          <properties>
            <!-- <cargo.servlet.port>8200</cargo.servlet.port> -->
            <cargo.jvmargs>-Xmx2048m -Xms512m</cargo.jvmargs>
            <cargo.start.jvmargs>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000</cargo.start.jvmargs>
          </properties>
        </configuration>
      </configuration>
    </plugin>
    

    Then you need to create a remote debug configuration in your IDE on port 8000 (port by default if nothing specified)

    More commands here : https://codehaus-cargo.github.io/cargo/Maven2+plugin.html#Maven2plugin-TheCargoMavenpluginindetail

    0 讨论(0)
  • 2020-12-25 16:08

    Just in case you use a separate Tomcat local server. If you use embedded tomcat, this is not applicable.

    In your pom.xml, add the tomcat plugin. (You can use this for both Tomcat 7 and 8):

    pom.xml

    <!-- Tomcat plugin -->  
    <plugin>  
     <groupId>org.apache.tomcat.maven</groupId>  
     <artifactId>tomcat7-maven-plugin</artifactId>  
     <version>2.2</version>  
     <configuration>  
      <url>http:// localhost:8080/manager/text</url>  
      <server>TomcatServer</server>    *(From maven > settings.xml)*
      <username>*yourtomcatusername*</username>  
      <password>*yourtomcatpassword*</password>   
     </configuration>   
    </plugin>   
    

    tomcat-users.xml

    <tomcat-users>
        <role rolename="manager-gui"/>  
            <role rolename="manager-script"/>   
            <user username="admin" password="password" roles="manager-gui,manager-script" />  
    </tomcat-users>
    

    settings.xml (maven > conf)

    <servers>  
        <server>
           <id>TomcatServer</id>
           <username>admin</username>
           <password>password</password>
        </server>
    </servers>  
    

    * deploy/re-deploy

    mvn tomcat7:deploy OR mvn tomcat7:redeploy

    Tried this on (Both Ubuntu and Windows 8/10):
    * Jdk 7 & Tomcat 7
    * Jdk 7 & Tomcat 8
    * Jdk 8 & Tomcat 7
    * Jdk 8 & Tomcat 8

    Tested on Both Jdk 7/8 & Tomcat 7/8. (Works with Tomcat 8.5 Also, will test Tomcat 9 soon)

    Note:
    Tomcat manager should be running or properly setup, before you can use it with maven.

    0 讨论(0)
  • 2020-12-25 16:11

    Can you use the cargo pluygin instead, this works for me, deploying to tomcat8 :

                 <plugin>
                    <groupId>org.codehaus.cargo</groupId>
                    <artifactId>cargo-maven2-plugin</artifactId>
                    <version>1.4.8</version>
                    <configuration>
                        <container>
                            <containerId>tomcat8x</containerId>
                            <home>${env.CATALINA_HOME}</home>
                        </container>
                        <configuration>
                            <type>existing</type>
                            <home>${env.CATALINA_HOME}</home>
                        </configuration>
                        <deployables>
                            <deployable>
                                <groupId>com.yourcompany</groupId>
                                <artifactId>ROOT</artifactId>
                                <type>war</type>
                                <properties>
                                    <context>${project.build.finalName}</context>
                                </properties>
                            </deployable>
                        </deployables>
                        <deployer>
                            <type>installed</type>
                        </deployer>
                    </configuration>
                </plugin>
    
    0 讨论(0)
提交回复
热议问题