我有我要打包为一个jar基于Maven的春季-WS客户端项目。 在Eclipse中,一切运行正常。 当我尝试将它打包为一个可执行的JAR,我得到ClassNotFound的例外,因为春天罐子不是在我的应用程序JAR包括在内。
所以我加了Maven的遮阳帘插件 ,包括我在我的应用程序JAR依赖关系。 当我看到我的应用程序罐子,我看到所有依赖的所有类文件包括(所有库jar的是爆炸)。
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.cws.cs.Client</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我的问题是,在包装过程中,我多次对Spring的依赖有不同的META-INF / spring.schemas是互相覆盖的文件。 因此,我最后的罐子有一个不完整的spring.schemas文件。
所以,当我尝试运行我的可执行的JAR,我得到的文件无法找到春天的错误消息,因为spring.schemas文件不完整(春-WS的jar已经重写了Spring核心的spring.schemas文件)。
我的可执行的JAR的META-INF / spring.schemas:
http\://www.springframework.org/schema/web-services/web-services-1.5.xsd=/org/springframework/ws/config/web-services-1.5.xsd
http\://www.springframework.org/schema/web-services/web-services-2.0.xsd=/org/springframework/ws/config/web-services-2.0.xsd
http\://www.springframework.org/schema/web-services/web-services.xsd=/org/springframework/ws/config/web-services-2.0.xsd
相反的弹簧beans.jar META-INF / spring.schemas:
http\://www.springframework.org/schema/beans/spring-beans-2.0.xsd=org/springframework/beans/factory/xml/spring-beans-2.0.xsd
http\://www.springframework.org/schema/beans/spring-beans-2.5.xsd=org/springframework/beans/factory/xml/spring-beans-2.5.xsd
http\://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http\://www.springframework.org/schema/beans/spring-beans-3.1.xsd=org/springframework/beans/factory/xml/spring-beans-3.1.xsd
http\://www.springframework.org/schema/beans/spring-beans.xsd=org/springframework/beans/factory/xml/spring-beans-3.1.xsd
http\://www.springframework.org/schema/tool/spring-tool-2.0.xsd=org/springframework/beans/factory/xml/spring-tool-2.0.xsd
http\://www.springframework.org/schema/tool/spring-tool-2.5.xsd=org/springframework/beans/factory/xml/spring-tool-2.5.xsd
http\://www.springframework.org/schema/tool/spring-tool-3.0.xsd=org/springframework/beans/factory/xml/spring-tool-3.0.xsd
http\://www.springframework.org/schema/tool/spring-tool-3.1.xsd=org/springframework/beans/factory/xml/spring-tool-3.1.xsd
http\://www.springframework.org/schema/tool/spring-tool.xsd=org/springframework/beans/factory/xml/spring-tool-3.1.xsd
http\://www.springframework.org/schema/util/spring-util-2.0.xsd=org/springframework/beans/factory/xml/spring-util-2.0.xsd
http\://www.springframework.org/schema/util/spring-util-2.5.xsd=org/springframework/beans/factory/xml/spring-util-2.5.xsd
http\://www.springframework.org/schema/util/spring-util-3.0.xsd=org/springframework/beans/factory/xml/spring-util-3.0.xsd
http\://www.springframework.org/schema/util/spring-util-3.1.xsd=org/springframework/beans/factory/xml/spring-util-3.1.xsd
http\://www.springframework.org/schema/util/spring-util.xsd=org/springframework/beans/factory/xml/spring-util-3.1.xsd
我难倒。 我不知道/我怎么能打包一切作为一个可执行的JAR。 我不知道这是不是一个阴插件配置的问题,或者如果我试图做一些事情是不可能的。 这似乎不正确的,我将不得不手动创建自己的spring.schemas文件(别人的串联)。
我可能偷步一点。 在挖掘对色光插件的更多信息,我注意到AppendingTransformer ,我以前错过了。 然而,我关心的是如何知道哪些其他文件都具有相同的问题? 我发现/抓住了这个特别的春季问题。 我不知道可以做类似的事情任何其他库的想法...
任何建议,将不胜感激。