需求是:
1.在本地开发的时候,war包部署在本地glassfish上的时候contextroot是dev-geoflow
2.在持续集成的时候,war包部署在服务器上的glassfish的时候,contextroot是geoflow
3.默认情况下,使用2
首先配置一个用于本地开发的profile
<profiles> <profile> <id>dev</id> <properties> <webXmlPath>webxml/develop</webXmlPath> </properties> </profile> </profiles>
<properties> <webXmlPath>webxml/release</webXmlPath> </properties>
目录下分别配置了sun-web.xml,contextroot值不一样。
现在在maven-war-plugin上使用变量${webXmlPath}
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webResources>
...
<resource>
<directory>${webXmlPath}</directory>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
当运行mvn package -P dev 的时候,将webxml/develop目录下的xml文件打包的WEB-INF内,这是本地开发使用。