Eclipse中Tomcat7 Maven插件详解

背景:

  最近刚接触Maven,对Maven才了解些皮毛就被老大安排协助编译XWIKI源码,期间急需一款好的Web容器,并能有很好的Maven插件支持及debug功能,可能jetty[注解1]是很多人的首选,配置也很简单,但是jetty对断点的跟踪确实让人头疼(也可能是在下技术太烂),所以只能转投Tomcat,在网上找了一大堆技术blog,但是都未能完全解决我的问题,有的我个人觉得都有点误导别人,所以特别写下这篇文章,以帮助其他像我一样菜的人。在此也希望国内的技术人能多一分用心,技术上容不得以讹传讹。

 

步骤:

一、在Eclipse中安装Tomcat插件。

    说明:Eclipse原生对Tomcat的支持比较弱,配合Maven插件使用也比较痛苦,所以建议安装Tomcat插件。

1. 进入Eclipse Marketplace。

2. 搜索Tomcat关键字,在搜索结果中选择UqbarTomcat XT Eclipse Plug-in进行安装。

注:Eclipse工具栏中出现上图中的三个小图标表示插件安装成功。

3.指定Tomcat服务器。

二、Tomcat管理角色及War上传大小限制的配置。

说明:Tomcat角色的配置主要是让用户能够通过页面及http请求管理和部署web运用。Tomcat角色说明及配置方法可以在启动Tomcat之后访问管理页面(Tomcat7:http://127.0.0.1:8080/manager/html),然后选择取消登陆,接下来打开的页面有详细说明,见下图:

1. 角色配置文件(%TOMCAT_HOME%/conf/ tomcat-users.xml),我的配置见下图:

XML代码片段:

  <rolerolename="manager-script"/>

  <rolerolename="manager-gui"/>

  <rolerolename="manager-jmx"/>

  <rolerolename="manager-status"/>

  <user username="admin"password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

 

 

注:为什么要配置这些角色请看%TOMCAT_HOME%/webapps/manager/WEB-INF/web.xml文件说明,如下图所示:

 2. 设置Tomcat App Manager中War包上传大小限制(%TOMCAT_HOME%/webapps/manager/WEB-INF/web.xml),我的War大小200M左右,初始配置为50M,所以我的配置见下图:

XML代码片段如下:

    <multipart-config>

      <!-- 500MB max -->

      <max-file-size>524288000</max-file-size>

     <max-request-size>524288000</max-request-size>

     <file-size-threshold>0</file-size-threshold>

   </multipart-config>


 

 

三、设置Tomcat Maven 插件的中央仓库(主要是设置settings.xml文件,这个不会的上网搜索)。

1.配置Tomcat Maven插件的依赖模块的仓库,以下是xml代码片段。

<settings>

  <profiles>

    <profile>

      <repositories>

        <repository>

          <id>apache.rep1</id>

          <url>http://repository.apache.org/content/groups/snapshots-group/</url>

          <releases>

            <enabled>true</enabled>

          </releases>

          <snapshots>

            <enabled>true</enabled>

          </snapshots>

        </repository>

      </repositories>

    </profile>

  </profiles>

</settings>


 

 

2. 配置Tomcat Maven插件的仓库,以下是xml代码片段。

<settings>

  <profiles>

    <profile>

      <pluginRepositories>

        <pluginRepository>

           <id>apache.req2</id>

           <url>http://repository.apache.org/content/groups/snapshots-group/</url>

           <releases>

            <enabled>false</enabled>

           </releases>

           <snapshots>

            <enabled>true</enabled>

           </snapshots>

          </pluginRepository>

        </pluginRepositories>

    </settings>

  </profiles>

</profile>


 

 

 四、在POM中配置TomcatMaven插件,以下是xml代码片段。

<project>

  </build>

    <plugins>

      <plugin>

        <groupId>org.apache.tomcat.maven</groupId>

        <artifactId>tomcat7-maven-plugin</artifactId>

        <version>2.3-SNAPSHOT</version>

        <configuration>

          <url>http://localhost:8080/manager/text</url>

          <username>admin</username>

          <password>admin</password>

          <path>/xwiki</path><!--web app path-->

          <contextReloadable>true</contextReloadable>

        </configuration>

      </plugin>

    </plugins>

  </build>

</project>


 

 

注:configuration中的usernamepassword也可以在settings.xml中配置,这样的话就直接通过id引用(settings.xml中配置server,在pom中配置就不用配置usernamepassword而是直接配置id)。

<!--settings.xml-->

<server>

  <id>tomcat</id>

  <username>admin</username>

  <password>admin</password>


</server>

<!--settings.xml-->


 

 

<!--pom.xml-->

<configuration>

  <url>http://localhost:8080/manager/text</url>

  <id>tomcat</id>

  <path>/xwiki</path>

  <contextReloadable>true</contextReloadable>

</configuration>

<!--pom.xml-->

 

 

 

 

 

涉及的软件版本:

Tomcat77.0.22

Maven 3.2.3

Eclipe4.4

 

Tomcat Maven插件配置失败主要问题:

一、War包太大,Tomcat 插件部署项目不成功。

解决方法:配置War上传大小限制。

 

二、所有配置都按照以上提及的步骤设置正确,但是TomcatMaven插件依然不能成功部署项目(这也是我花费最多时间才解决的问题)。

原因:Tomcat Maven不支持Tomcat版本(本人喜欢用新版本,Tomcat7使用的是7.0.55版本)

解决方法:使用Tomcat Maven插件对应的Tomcat版本。

注:Tomcat Maven版本对应怎样的Tomcat版本本人也未查到具体的资料,只能通过tomcat-util版本去推断(我不知道这种方法是否正确,但我从表象上验证是可行的,望各位同行注意一点),例如:7.0.54tomcat-util版本,我觉得应该支持Tomcat7.0.54及以下版本。Tomcat-utilTomcat Maven插件的一个依赖模块,在下载Tomcat Maven插件时会一并下载,各位可以到Maven本地仓库查找,路径为% LOCALREPO % /org/apache/tomcat/omcat-util,以下是我已下载的tomcat-util版本。

 

注:使用Maven插件部署项目时,一定要先启动Tomcat。Tomcat7 Maven插件使用命令请查看参考链接二(第一次写博文,有不好的地方,望各位指点,谢谢!)

 

参考链接

一、http://blog.csdn.net/lanhaimylover/article/details/7794476

二、http://tomcat.apache.org/maven-plugin.html

 

注解1:很多人发现按照网上大多数博客说的jetty Maven插件配置方式不能使用形如mvn jetty:run的命令格式运行,这是因为这些文章要么是太老旧,要么是因为作者急于转发,而未进行验证,现在新版本的jetty maven插件已经迁移到org.eclipse.jetty中管理,已经不在org.mortbay.jetty下管理,这样就造成Maven不能通过jetty识别,只能通过ga/gav指定,形如:org.mortbay.jetty:maven-jetty-plugin:run或者org.eclipse.jetty:jetty-maven-plugin:run

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值