【发布时间】:2012-03-28 08:59:30
【问题描述】:
我正在运行 mvn tomcat:deploy 以尝试部署我想在 Tomcat 7.0.8 中的虚拟主机上运行的 war 文件。我已验证虚拟主机工作正常,并且还跨管理器应用程序复制到虚拟主机。
更新我的 pom 以指向我的新虚拟主机后,当我运行 mvn tomcat:reploy 时,它不会将我的 war 文件放入正确的文件夹中。它似乎总是把它放在 webapps 文件夹中。如果我随后将战争复制到我为虚拟主机设置的文件夹中,那么它可以工作,但它不会自动执行此操作。
我是否缺少配置选项?是否有 warDestination 设置或类似设置?
作为参考,这是我的 pom.xml 中的一个 sn-p:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<url>http://myvhost.local:8080/manager/html</url>
<server>myvhost</server>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
以及我的 settings.xml 中的相关 sn-p:
<servers>
<server>
<id>myvhost</id>
<username>testing</username>
<password>testing</password>
</server>
</servers>
更新:我通过将我使用的插件更改为以下解决了这个问题:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0-beta-1</version>
<configuration>
<url>http://myvhost.local:8080/manager/html</url>
<server>myvhost</server>
<path>/</path>
</configuration>
</plugin>
然后我尝试运行 mvn tomcat7:deploy 但发现我必须将以下内容添加到我的 settings.xml 中才能使用 tomcat7要识别的前缀:
<pluginGroups>
<pluginGroup>org.apache.tomcat.maven</pluginGroup>
</pluginGroups>
我现在可以通过运行 mvn tomcat7:deploy 部署到我的虚拟主机 - 不幸的是,我看不到重新部署已经部署的战争的方法,因为我可以使用以前的插件... .不过我会继续寻找。
更新:看起来重新部署的能力在 tomcat7-maven-plugin 插件的 2.0-SNAPSHOT 版本中,但不是存储库中的 2.0-beta-1 版本。希望很快就会发布。
谢谢,
詹姆斯。
【问题讨论】:
-
我知道这不是您想要的——但为什么不直接使用 jetty 进行开发呢? (码头:运行)。不确定 tomcat,但我认为您可以在特定于应用程序的 webapp 描述符(jetty-web.xml)中配置虚拟主机
-
我之前尝试过,但无法指定 tomcat 的位置。我开始使用 Maven Cargo 插件。你可以看看here它让你有更多的选择。
-
试试
mvn tomcat7:redeploy
标签: tomcat maven maven-plugin