0

我们从几个基于Maven的项目组装一个war文件。 其中一个项目使用maven-shade-plugin在目标jar文件中包含额外的库。为了这个讨论,我们称它为x.jar。maven-shade-plugin的Maven项目没有正确部署到SpringSource服务器

当maven构建war文件时,它包含正确的x.jar文件,其中打包了额外的库。

我们使用Spring Source的最新版本(3.4.0)将其部署到在Spring Source中配置的服务器。服务器是Sprint TC Server 2.0.3。

只要将项目部署到服务器(即Sprint TC Server 2.0),jar文件(x.jar)就会被不正确的小文件替换,而不包含打包的库。

这个较小的x.jar在部署之前并不存在于文件系统中的任何位置,所以它看起来像Spring Source自己编译它。

因此,我们无法在Spring Source中部署我们的系统。 对于我们的问题,你们是我们的理由还是解决方法?

----------- UPDATE -----------

我们进行了测试。我们在部署之前破解了maven pom.xml文件,结果Spring Source部署了原始文件而不重新编译它。它导致了正确的部署。

这个测试表明Spring Source在将它们部署到服务器时会默默重建jar。

有没有办法阻止它或使其正常工作?

回答

1

我的建议,遗憾的是不使用阴影插件,而是组装,依赖和jar插件之间的巧妙组合,有点像在答案的家伙在这里:

Invalid or corrupt JAR File built by Maven shade plugin

如果您配置它有任何问题,请告诉我。

如果您有服务器的错误日志,那么发布它们也会很好。