您的位置:首页 > 运维架构 > Tomcat

通过Maven的Tomcat插件运行web工程

2017-03-04 19:35 435 查看
   其实这样的问题或者教程网上一搜都是一大片,但是我还是要重新声明一下,然后再讨论为什么我要写这篇博客!

tomcat官网(点我)中介绍的清晰:Apache Tomcat Maven Plugin 共有两种方式。

       1·在pom.xml文件中添加关于tomcat的插件的配置:

    Note:You must configure your pom to use this new groupld

<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
      注意:这种配置只针对某一个项目的,即只对一个项目生效。

      2·在maven的setting.xml文件中设置

         add the groupld in your settings.xml

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

   注意:这种maven插件上的配置会对所有绑定该maven的项目中。

    配置好后,就可以启动看效果。

   此时,我有一个疑问?

   非maven项目的话,我们会绑定项目和应用服务器(以tomcat为例),并会设置好context name,(context name 就是你项目部署在tomcat中的应用名称,如图:



   然后启动端口会在tomcat的service.xml文件中配置。这样在url地址栏输入 http://ip:port/context name 即可访问。那如果启动maven项目,端口号和应用名称应该怎么配置呢?同样有两种配置方式:

    1·在pom.xml文件配置

<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<!-- 这里配置端口号和访问路径 -->
<port>8082</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>


     2·使用Maven Build 启动项目,Goals那一栏填写:

   如果是应用在tomcat6插件上:

tomcat6:run -Dmaven.tomcat.uriEncoding=UTF-8 -Dmaven.tomcat.path=/ -Dmaven.tomcat.port=8080
         
如果是应用在tomcat7插件上:

tomcat7:run -Dmaven.tomcat.uriEncoding=UTF-8 -Dmaven.tomcat.path=/ -Dmaven.tomcat.port=8080


       最后启动成功!如图:



      整体内容介绍到这里,那么接下来就是重头戏呢?大家好好看,我哪里出问题了

1·我的pom.xml文件:

<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<!-- 这里配置端口号和访问路径 -->
<port>8080</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
2·我点击我的项目,右击Run as --》Maven Build,在Goals中输入:clean tomcat:run

3·启动成功,如下图:



     看到了吗?我在pom文件中已经配置了path为根目录/,那为什么启动成功后的提示信息为:

Running war on http://localhost:8080/taotao-portal呢?what's wrong with my tomcat?

起初我不明白,为什么我的path已经设置为根目录了,按照正常情况来说,提示                           Running war on http://localhost:8080/,这样才正常呢,然后试图更改过,但无效,这就忍了,知道今天,我在pom.xml更改port为8082后,正常启动后,还是这样的,我就郁闷了,我的配置文件为什么不管作用呢!!!为什么呢?我也没看出来我哪里有问题啊?
     最后看了看tomcat官网后,才有所启示:我的pom.xml文件中配置的为tomcat7插件,然后大家看,上图中的第三个红框中的内容:(原来没有注意过这些),它怎么是tomcat6呢?

      原因:我在Maven build 的goals中输入的为:clean tomcat:run,这样的命令,会默认加载tomcat6插件,所以,我pom.xml配置文件中配置的tomcat7也就无效了,所以,不管更改port还是path,都会失效

     so,just it!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven tomcat 插件