Maven项目生成可运行的jar包

使用eclipse的export导出可运行的项目时,配置文件默认为打包到resources中的。这样导致程序在eclipse中可以正常运行,但导出项目后,却因找不到配置文件导致项目不能运行。原来使用maven-shade-plugins就可以生成可执行的jar包。只需要在target目录下把生成的jar考出来执行java -jar <jar>即可。

1.首先把插件考入pom.xml中。参考:https://blog.csdn.net/yukangmine/article/details/40042263

<plugin>
				    <groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>1.2.1</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>com.qdcan.rmi.service.RMIService</mainClass>
								</transformer>
								<!-- 不覆盖同名文件,而是追加合并同名文件 -->
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
									<resource>META-INF/spring.handlers</resource>
								</transformer>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
									<resource>META-INF/spring.schemas</resource>
								</transformer>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
									<resource>META-INF/spring.tooling</resource>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>

2.如果同时引用了spring-context,spring-aop,spring-tx时,项目配置文件会相互覆盖,导致报Unable to locate Spring NamespaceHandler for XML schema错误。处理办法是将配置文件合并。参考:https://blog.csdn.net/shuimuniao/article/details/80805308

至此可以正确执行生成的jar包了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值