我有一个应用程序,我同时使用 spring-beans
和 spring-context
jar。当我尝试使用 maven 打包我的应用程序,为我的应用程序生成具有依赖项的单个 jar 时,spring-context
jar 的 spring.schemas
文件会覆盖 spring-beans
jar 的文件。因此,使用我打包的 jar 文件的另一个应用程序无法识别 spring-beans
的架构位置引用。
遇到这种情况有什么解决方法吗?
最佳答案
经过大量研究后,我发现了 Apache Shade Plugin
它能够附加以下资源:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.1</version>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<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>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
<addHeader>false</addHeader>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
关于java - 打包时“spring.schemas”被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950990/