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包了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章