1. 程式人生 > >解決MAVEN用assembly打包spring.handlers和spring.schemas出錯的問題

解決MAVEN用assembly打包spring.handlers和spring.schemas出錯的問題

專案不打包執行正常,打包後報出異常Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace

發現是有些spring的jar包包含spring.handlers和spring.schemas檔案,而assembly只會把第一次遇到的檔案打入jar包,後面遇到的都會跳過,導致此問題。解決方法是用shade打包。

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-shade-plugin</artifactId>
			<version>1.4</version>
			<executions>
				<execution>
					<phase>package</phase>
					<goals>
						<goal>shade</goal>
					</goals>
					<configuration>
						<transformers>
							<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
								<mainClass>com.ilukuang.App(修改為main方法)</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>
						</transformers>
					</configuration>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>