我一直在尝试创建一个瘦的WAR,它将允许我将所有常见的jar提取到wildfly模块中。这是因为70MB WAR在日常操作中变得不可持续。
我的方法是:
(除了我自己的库和spring-web.jar外)用所有Jars(手动)创建一个wildfly模块。
修改了我的战争项目pom.xml,添加了以下内容:(其中mystuff-*。jar是我们自己的项目库)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<skinnyWars>true</skinnyWars>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
<packagingExcludes>
%regex[WEB-INF/lib/(?!spring-web|mystuff-).*.jar]
</packagingExcludes>
</configuration>
</plugin>
添加了带有以下内容的jboss-deployment-structure.xml:
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="my-company.core-libs" />
</dependencies>
</deployment>
</jboss-deployment-structure>
现在有两个问题:首先,我得到了“在类路径上未检测到Spring WebApplicationInitialized类型,因此应用程序根本无法启动。
第二, /wildfly_root/bin/content/spring-tx-5.1.3-relase.jar 中的“类路径条目spring-tx-5.1.3.RELEASE.jar”的卡通不能指向“用于类路径引用的有效jar”消息。 (这是一个示例,一个Spring-boot应用程序有70MB的jar,所有的jar都发出此警告)。
检查清单后,我在Class-Path下看到了很多罐子,看起来不错。
我该如何解决?当然,必须有一种方法可以强制wildfly找到我的SpringBootServletInitializer类并启动应用程序。
顺便说一句,我在maven-war-plugin上尝试了一些选项,以上是(到目前为止)唯一允许Eclipe直接部署到服务器的选项。
堆栈:
任何帮助表示赞赏。