我只想运行一个使用pom.xml在maven项目中配置的Web项目.它使用maven tomcat7-maven-plugin来部署Web应用程序工件,此时所有工作正常.
现在我想在tomcat配置中添加自己的server.xml和tomcat-users.xml.我读到我需要添加以下行.
<serverXml>src/main/resources/tomcat/server.xml</serverXml>
<tomcatUsers>src/main/resources/tomcat/tomcat-users.xml</tomcatUsers>
Run Code Online (Sandbox Code Playgroud)
这没关系.它现在正在运行,并且使用上面的配置文件部署了tomcat,但问题是> 那里没有部署Web应用程序工件(当我运行tomcat7:run时没有自动部署).看来插件没有检测到工件,只是启动tomcat服务器而不将工件添加到webapps只需使用新的配置文件.
我用这个配置.
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<id>tomcat-run</id>
<goals>
<goal>exec-war-only</goal>
</goals>
<phase>package</phase>
<configuration>
<url>http://localhost:8080/web-services</url>
<path>/web-services</path>
<serverXml>src/main/resources/tomcat/server.xml</serverXml>
<tomcatUsers>src/main/resources/tomcat/tomcat-users.xml</tomcatUsers>
<warRunDependencies>
<warRunDependency>
<dependency>
<groupId>com.koitoer.webservices</groupId>
<artifactId>web-services</artifactId>
<version>1.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<contextPath>/web-services</contextPath>
</warRunDependency>
</warRunDependencies>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但是tomcat开始部署webapp工件但不使用新的配置文件.
什么是正确的配置,我检查了这篇文章,但没有,这是可能的或我应该使用tomcat管理器手动添加war文件?
Did*_*r L 15
该tomcat7 - Maven的插件文档说的<serverXml>:
要使用的server.xml 注意如果使用此选项,则必须在此文件中配置webapp路径.
我认为这意味着你必须在<Context>元素中插入一个带有战争路径的<Host>元素,如下所示:
<Host appBase="webapps" autoDeploy="true" deployXML="false" name="localhost" unpackWARs="true">
<Context docBase="../../webapp" path="/webapp" reloadable="true" />
</Host>
Run Code Online (Sandbox Code Playgroud)
"webapp"是我生成的战争名称.显然,appBase是相对于target/tomcat(和"webapps"似乎是默认值).docBase相对于appBase这样为了简化我使用的相对路径来生成目录.
这对我有用,没有那个<Context>元素,我会得到一个白页.
如果您使用过滤,则可以替换docBase属性.但请注意从war文件中排除server.xml(和tomcat-users.xml)!
| 归档时间: |
|
| 查看次数: |
9488 次 |
| 最近记录: |