【发布时间】:2013-10-11 19:41:35
【问题描述】:
我正在本地开发一个 Web 服务,使用 maven 构建并部署到 tomcat。我正在使用maven插件在本地运行,使用mvn tomcat:run作为我的运行配置。
现在,我的服务正在使用默认项目名称作为上下文路径进行部署:
http://localhost:8080/myArtifactId/servletPath
我想部署以删除上下文路径,并通过配置 tomcat maven 插件部署到此 url:
http://localhost:8080/servletPath
根据本文档:http://tomcat.apache.org/maven-plugin-2.1/tomcat7-maven-plugin/usage.html
我正在尝试这个:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<!-- Why isn't this working??? -->
<path>/</path>
</configuration>
</plugin>
关于为什么我正在尝试的方法不起作用的任何想法,或者我可以采取不同的方式来解决这个问题?正如我所说,我正在尝试通过 maven 插件来做到这一点。
或者,有谁知道如何将它作为参数传递给运行配置?也许在命令行中显式传递它会覆盖默认值。
更新: 从命令行运行 mvn tomcat7:run 或 mvn clean tomcat7:run 似乎可以使这项工作按预期进行。但是当我在 Eclipse 中使用 Maven Build 运行配置运行时,无论我在 pom.xml 中的路径变量中放入什么内容,都会使用默认工件 ID 启动服务。
更新:这似乎是 Eclipse Maven 插件的问题。当我从命令行运行命令时,一切都按预期工作,但是当尝试使用 Tomcat7:run 目标添加 Eclipse/Maven 运行配置时,项目会继续使用默认的工件 id 上下文路径运行。
【问题讨论】:
-
这应该可以解决问题。也许这听起来很傻,但你是否在你的 pom 中定义了两次 tomcat 插件?一个是您显示的设置,另一个是不同的路径?
-
我刚刚在我的整个工作区(与
*.*匹配的所有文件)中搜索了tomcat7-maven-plugin,并且只在我的 pom.xml 中找到了一个实例。 -
你试过
mvn clean tomcat7:run吗? -
我记得我在使用 Eclipse 时遇到了同样的问题,但我找不到解决方案。我在想它是关于 Eclipse 的,但也许它是关于 tomcat 插件的。
-
@Bart - 成功了。我没有太多使用maven,所以我仍然习惯了细微差别。请把它作为答案,这样我就可以投票/接受。
标签: java maven tomcat maven-tomcat-plugin