通过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
2·在maven的setting.xml文件中设置
add the groupld in your settings.xml
注意:这种maven插件上的配置会对所有绑定该maven的项目中。
配置好后,就可以启动看效果。
此时,我有一个疑问?
非maven项目的话,我们会绑定项目和应用服务器(以tomcat为例),并会设置好context name,(context name 就是你项目部署在tomcat中的应用名称,如图:
![](https://img-blog.csdn.net/20170304172617701?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWlxaWppYWxpbWlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
然后启动端口会在tomcat的service.xml文件中配置。这样在url地址栏输入 http://ip:port/context name 即可访问。那如果启动maven项目,端口号和应用名称应该怎么配置呢?同样有两种配置方式:
1·在pom.xml文件配置
2·使用Maven Build 启动项目,Goals那一栏填写:
如果是应用在tomcat6插件上:
如果是应用在tomcat7插件上:
最后启动成功!如图:
![](https://img-blog.csdn.net/20170304190925063?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWlxaWppYWxpbWlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
整体内容介绍到这里,那么接下来就是重头戏呢?大家好好看,我哪里出问题了
1·我的pom.xml文件:
3·启动成功,如下图:
![](https://img-blog.csdn.net/20170304192817795?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2hpeWlxaWppYWxpbWlu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
看到了吗?我在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!
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的Jetty插件运行Web工程
- 使用maven的tomcat:run进行web项目热部署(通过Maven的Tomcat插件运行Web工程,在pom中添加tomcat插件,使项目能在eclipse中跑起来,但如果部署需安tomcat)
- 如何通过Maven的Tomcat插件运行Web工程
- IntelliJ IDEA 通过maven插件运行tomcat7
- 如何通过Maven的Tomcat插件运行Web工程
- 如何通过Maven的Tomcat插件运行Web工程
- 如何通过Maven的Tomcat插件运行Web工程
- 如何通过Maven的Jetty插件运行Web工程
- Eclipse下通过Maven的Tomcat插件运行Web工程的配置,包括启用https
- Eclipse下通过Maven的Tomcat插件运行Web工程的配置,包括启用https
- 使用IntelliJ IDEA 通过maven插件运行tomcat7
- maven通过tomcat插件,如何运行Java Web项目 支持断点
- 如何通过Maven的Jetty插件运行Web工程
- IntelliJ IDEA使用Maven tomcat Plugin插件运行web项目
- Eclipse下通过Maven的Jetty插件运行Web工程的配置,包括启动https
- Eclipse下通过Maven的Jetty插件运行Web工程的配置
- maven通过jetty插件运行内存溢出的问题
- Eclipse下通过Maven的Jetty插件运行Web工程的配置,包括启动https
- maven拓展——使用tomcat插件运行maven项目