maven 多环境配置,maven-war-plugin打包

作用

  1. maven 打包多个环境,
  2. maven-war-plugin,修改web.xml

SEVERE: ContainerBase.addChild: start:org.apache.catalina.LifecycleException: Failed to start error

坑1:

没有加入 includes, 打包插件过滤了webapp/WEB-INF/lib下,引用的本地jar,导致jar解压失败,项目启动就失败了。

解决方法:增加,指定需要过滤,动态修改的文件。或者用,排除掉不想让过滤的文件、目录等。

注: 如果webapp没有需要引用的本地jar,好像是没有问题的,用maven-war-plugin插件打包之后,只是jar无法解压了。

坑2:

编译版本,不然用的是1.5编译,报错。

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
<build>
		<defaultGoal>test</defaultGoal>
		<finalName>newtranx</finalName>
		<plugins>
			<plugin>
			    <!--不用maven-compiler-plugin打包的原因-->
			    <!--用maven-war-plugin打包,才可以有webResources,才可以修改web.xml-->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>3.1.0</version>
				<configuration>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
						</manifest>
					</archive>
					<webResources>
						<resource>
							<directory>src/main/webapp</directory>
							<!--必须要写includes,这是指定打包是需要修改的xml文件,不限于xml-->
							<!--坑1:没有写的时候,打包后,本地引用的jar被打包工具修改了,解压失败,项目启动失败。-->
							<includes>
								<include>**/web.xml</include>
							</includes>
							<!--必须开启过滤,打包插件才会去修改文件,文件里用el表达式获取profile中的参数。-->
							<filtering>true</filtering>
						</resource>
					</webResources>
				</configuration>
			</plugin>
		</plugins>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
				<filtering>false</filtering>
			</resource>
			<!--不同环境,不同的目录resources-dev,resources-pro等,打包之后,war包里面,文件名是resources-->
			<resource>
				<directory>src/main/resources-${pom.env}</directory>
				<filtering>false</filtering>
			</resource>
		</resources>

	</build>
	<profiles>
	    <!--一个环境一个profile-->
		<profile>
			<id>local</id>
			<properties>
				<pom.env>dev</pom.env>
				<!--以下参数,是为了web.xml获取-->
				<cas.casServerLoginUrl>https://test.newtranx.com/cas/login?locale=zh</cas.casServerLoginUrl>
				<cas.serverName>https://test.newtranx.com</cas.serverName>
				<cas.casServerUrlPrefix>https://test.newtranx.com/cas</cas.casServerUrlPrefix>
			</properties>
			<activation>
				<!--默认生效的配置组-->
				<activeByDefault>true</activeByDefault>
			</activation>
		</profile>
		<profile>
			<id>dev</id>
			<properties>
				<pom.env>dev</pom.env>
				<cas.casServerLoginUrl>https://test.newtranx.com/cas/login?locale=zh</cas.casServerLoginUrl>
				<cas.serverName>https://test.newtranx.com</cas.serverName>
				<cas.casServerUrlPrefix>https://test.newtranx.com/cas</cas.casServerUrlPrefix>
			</properties>
		</profile>
		<profile>
			<id>pro</id>
			<properties>
				<pom.env>pro</pom.env>
				<cas.casServerLoginUrl>https://plugin.newtranx.com/cas/login?locale=zh</cas.casServerLoginUrl>
				<cas.serverName>https://plugin.newtranx.com</cas.serverName>
				<cas.casServerUrlPrefix>https://plugin.newtranx.com/cas</cas.casServerUrlPrefix>
			</properties>
		</profile>
	</profiles>

参考:

  • maven-war-plugin官网: http://maven.apache.org/plugins/maven-war-plugin/index.html
  • 李鑫博客:http://www.laysonx.com/essay/detail?id=110
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伍特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值