Maven配置覆蓋內嵌tomcat虛擬對映路徑
-
直接配置報錯,錯誤提示如下:
Caused by: java.lang.IllegalArgumentException: addChild: Child name `/store` is not unique
- 原因分析:
pom.xml
的配置並沒有覆蓋tomcat/conf/server.xml
中的配置,導致配置中存在多個相同配置
- 原因分析:
解決方案
- 下載tomcat7-maven-plugin-2.2.jar.zip檔案,解壓並覆蓋本地倉庫中的
tomcat7-maven-plugin-2.2.jar
,
比如我的本地倉庫在:D:M2REPOorgapache omcatmaven omcat7-maven-plugin2.2
下,那麼我們只需要解壓並此目錄下的tomcat7-maven-plugin-2.2.jar
覆蓋此檔案就ok.
pom.xml
配置
<plugins>
<!-- 指定jdk1.7編譯,否則maven update 可能調整jdk -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- tomcat7外掛。使用方式:tomcat7:run -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<update>true</update>
<port>8080</port>
<uriEncoding>UTF-8</uriEncoding>
<server>tomcat7</server>
<!-- tomcat虛擬對映路徑 -->
<staticContextPath>/store</staticContextPath>
<staticContextDocbase>d:/file/store/</staticContextDocbase>
<contextReloadable>false</contextReloadable>
<useTestClasspath>true</useTestClasspath>
</configuration>
</plugin>
</plugins>