Tomcat Maven Plugin使用

Apache Tomcat 的 Maven 插件提供了 goal,实现将 Apache Tomcat servlet 容器整合进 WAR 项目。你可以通过 Apache Maven 运行 WAR 项目而无需部署 WAR 文件到 Apache Tomcat 的实例。

详见下面网站:

源码:

svn 路径:

http://svn.apache.org/repos/asf/tomcat/maven-plugin/trunk/

功能:

  • 支持 Apache Tomcat7
  • 构建一个可执行的 War/Jar

使用

自从版本 2.0-beta-1以后, tomcat mojos 更名为 tomcat6 和 tomcat7,使用配置如下:

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat6-maven-plugin</artifactId>
      <version>2.3-SNAPSHOT</version>
    </plugin>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.3-SNAPSHOT</version>
    </plugin>
  </plugins>
</pluginManagement>

或者添加 groupId 到你的 settings.xm

 <pluginGroups>
    ....
    <pluginGroup>org.apache.tomcat.maven</pluginGroup>
    ....
 </pluginGroups>

在 tomcat 发布不显示项目名称

配置如下

<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
    <configuration>
    <path>/</path>
    </configuration>
</plugin>

Context Goals

部署 WAR 项目

在 tomcat:deploy 部署后,再次部署 WAR 执行:

mvn package tomcat6/7:redeploy

在执行 tomcat:exploded 后,再次部署 WAR 执行:

mvn war:exploded tomcat6/7:redeploy

在执行 tomcat:inplace 后,再次部署 WAR 执行:

mvn war:inplace tomcat6/7:redeploy

在执行 tomcat:deploy 后,再次部署 context.xml 文件执行:

mvn tomcat6/7:redeploy

注意: context.xml指定 docBase后 ,还需要像上面那样调用 war:exploded或者war:inplace

移除部署 WAR 项目

mvn tomcat6/7:undeploy

启动 WAR 项目

mvn tomcat6:start

停止 WAR 项目

mvn tomcat6:stop

列出会话统计表

mvn tomcat6:sessions

Container Goals

列出部署的应用s

mvn tomcat6:list

列出服务器信息

mvn tomcat6:info

列出 JNDI 资源

列出 Tomcat 版本, 操作系统, 和 JVM 等信息

mvn tomcat6:resources

另外,列出特定类型你可以只输入 JNDI 资源类型:

mvn -Dmaven.tomcat.type=my.class.name tomcat6:resources

列出安全角色

mvn tomcat6:roles

构建一个可执行的 War/Jar

版本 2.0 开始,嵌入的 Apache Tomcat7 可以构建一个可执行的 War/Jar(只支持 tomcat7 插件)

注意:项目必须有 pom 或者 war 的打包信息

添加到您的 war 模块:

<project>
  ...
  <packaging>war or pom</packaging>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.3-SNAPSHOT</version>
        <executions>
          <execution>
            <id>tomcat-run</id>
            <goals>
              <goal>exec-war-only</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <path>foo</path>
              <!-- optional, needed only if you want to use a preconfigured server.xml file -->
              <serverXml>src/main/tomcatconf/server.xml</serverXml>
              <!-- optional values which can be configurable -->
              <attachArtifactClassifier>default value is exec-war but you can customize</attachArtifactClassifier>
              <attachArtifactClassifierType>default value is jar</attachArtifactClassifierType>
            </configuration>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>

添加到 pom 模块

<project>
  ...
  <packaging>war</packaging>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.3-SNAPSHOT</version>
        <executions>
          <execution>
            <id>tomcat-run</id>
            <goals>
              <goal>exec-war-only</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <!-- optional only if you want to use a preconfigured server.xml file -->
              <!--
              <serverXml>src/main/tomcatconf/server.xml</serverXml>
              -->
              <warRunDependencies>
                <warRunDependency>
                  <dependency>
                    <groupId>a groupId</groupId>
                    <artifactId>and artifactId</artifactId>
                    <version>version</version>
                    <type>war</type>
                  </dependency>
                  <contextPath>/</contextPath>
                </warRunDependency>
              </warRunDependencies>
              <!-- naming is disabled by default so use true to enable it -->
              <enableNaming>true</enableNaming>
              <!-- extra dependencies to add jdbc driver, mail jars, etc. -->
              <extraDependencies>
                <extraDependency>
                  <groupId>org.apache.derby</groupId>
                  <artifactId>derby</artifactId>
                  <version>10.1.3.1</version>
                </extraDependency>
                <extraDependency>
                  <groupId>javax.mail</groupId>
                  <artifactId>mail</artifactId>
                  <version>1.4</version>
                </extraDependency>
              </extraDependencies>
            </configuration>
          </execution>
        </executions>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>

生成可执行的 War/Jar

在上面配置下,执行

java -jar yourjar

下面是使用帮助

usage: java -jar [path to your exec war jar]
 -ajpPort <ajpPort>                     ajp port to use
 -clientAuth                            enable client authentication for
                                        https
 -D <arg>                               key=value
 -extractDirectory <extractDirectory>   path to extract war content,
                                        default value: .extract
 -h,--help                              help
 -httpPort <httpPort>                   http port to use
 -httpProtocol <httpProtocol>           http protocol to use: HTTP/1.1 or
                                        org.apache.coyote.http11.Http11Nio
                                        Protocol
 -httpsPort <httpsPort>                 https port to use
 -maxPostSize <maxPostSize>             max post size in bytes to use
 -keyAlias <keyAlias>                   alias from keystore for ssl
 -loggerName <loggerName>               logger to use: slf4j to use slf4j
                                        bridge on top of jul
 -obfuscate <password>                  obfuscate the password and exit
 -resetExtract                          clean previous extract directory
 -serverXmlPath <serverXmlPath>         server.xml to use, optional
 -X,--debug                             debug

已知限制

一些 goal 不在 tomcat7 mojo。 这些在 tomcat6 mojo 中的 container goal,需要修改你的 manager url :

使用 http://localhost:8080/manager/text 替换默认的 tomcat6 url

参考:

时间: 2024-11-03 02:00:14

Tomcat Maven Plugin使用的相关文章

开发过程使用Tomcat Maven插件持续快捷部署Web项目

我在平时工作中部署Web项目到测试服务器上的Tomcat时用的是Hudson.Hudson本身已经跟SVN.Git.Maven集成并且支持添加各种插件.但如果使用Hudson,我需要配置两个任务:一个任务负责打包项目成WAR,另外一个任务负责部署打包好的WAR包到目标服务器的Tomcat上.虽然任务只需要配置一次,但每次修改代码提交后,都得切换到浏览器点Hudson构建任务页面上的Build Now按钮,然后还得跳转到另一个页面观察是否有报错,然后再点击执行相应的部署任务.烦不胜烦,偶然发现To

用maven进行install的时候报错Error injecting: org.apache.maven.plugin.install.InstallMojo

问题描述 ------------------------------------------------------- T E S T S-------------------------------------------------------There are no tests to run.Results :Tests run: 0, Failures: 0, Errors: 0, Skipped: 0[INFO] [INFO] --- maven-war-plugin:2.1.1:w

Sysdeo Eclipse Tomcat Launcher plugin

原文:http://www.eclipsetotale.com/tomcatPlugin.html Plugin features Support and contributions Download Installation Documentation Troubleshooting     Plugin features Starting and stopping Tomcat 4.x, 5.x, 6.x, 7.x Registering Tomcat process to Eclipse

Linux下的Jenkins+Tomcat+Maven+Gitlab+Shell环境的搭建使用(jenkins自动化部署)

jenkins自动化部署   目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成.   一.安装jenkins 1.下载jenkins       这里我选择的是war包安装jenkins,简单不伤脑,别的博客写的jenkins版本都很旧,没用最新的,写个比较新的配置2.20版. 官网:https://jenkins.io/index.html WAR包下载地址:http://mirrors.tuna.tsinghua.edu.cn/jenkins/war/

转 Eclipse maven plugin 插件 安装 和 配置

环境准备:     eclipse(Helios) 3.6    maven 3.0.4 maven3 安装:     安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Maven是 Apache 下的一个项目,目前最新版本是 3.0.4,我用的也是这个.     首先去官网下载 Maven:http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-3.0.4-bin.tar.gz     下载完成之后将其解压

Eclipse TOMCAT 插件:Sysdeo Tomcat Launcher Plugin

很好的一个Eclipse Tomcat 连接插件 截至到2008-09-04,最新版本是 3.2.1,于2007-05-10发布. 支持: Eclipse 3.1, 3.2, 3.3 and 3.4 支持: Tomcat 6 使用方法: 一.在本机要安装上tomcat: 在tomcat安装下conf/server.xml设置: 如:D:/eclipse/Tomcat5.0/conf ................ <Connector port="9000" maxThread

eclipse maven plugin 插件 安装 和 配置

原文地址: http://www.blogjava.net/fancydeepin/archive/2012/07/13/382965.html 环境准备: eclipse(Helios) 3.6maven 3.0.4 maven3 安装:     安装 Maven 之前要求先确定你的 JDK 已经安装配置完成.Maven是 Apache 下的一个项目,目前最新版本是 3.0.4,我用的也是这个.    首先去官网下载 Maven:http://www.apache.org/dyn/closer

eclipse+maven+tomcat 如何配置调试

问题描述 环境:eclipseKepler+maven3.1+tomcat7+tomcat7-maven-plugin配置教程:http://wenku.baidu.com/link?url=5Vodlbq97x1LELtEH5CwmX9Rkk_Q3l_jkKF4h3Jx5VwKkPa6cmdR5PL0TK-sktiNQg_tPHiD98bbApCxsJeiLY-vr5ifPSpcM2EWYZA7f0_问题:当我按教程配置完后第一次运行成功,第二次运行会报如下错误:[INFO]>>>to

maven 整合springmvc spring myatis整合报错

问题描述 maven 整合springmvc spring myatis整合报错 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] at java.util.concurrent.FutureTask.