Maven 如何在JBoss中的两次战争之间共享依赖项(jar)
我有两个war(比如A和B)和一个jar(C) A.war和B.war都依赖于jarc。因为jarc包含单例,所以A和B只能共享1个C 我使用maven构建每个部署,没有任何问题。来自A和B的pom均包含:Maven 如何在JBoss中的两次战争之间共享依赖项(jar),maven,jar,jboss,manifest,war,Maven,Jar,Jboss,Manifest,War,我有两个war(比如A和B)和一个jar(C) A.war和B.war都依赖于jarc。因为jarc包含单例,所以A和B只能共享1个C 我使用maven构建每个部署,没有任何问题。来自A和B的pom均包含: <dependency> <groupId>C</groupId> <artifactId>C</artifactId> <version>1.0</vers
<dependency>
<groupId>C</groupId>
<artifactId>C</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
所以基本上:JBoss无法解决从B.war到C.jar的依赖关系。
我已经为A和B添加了maven war插件,为C添加了maven jar插件
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<Dependencies>org.slf4j</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven战争插件
真的
org.slf4j
所以基本上:我想要JBoss中a和B的共享项目(jar)C。我使用IntelliJ IDEA 14.1.5和JBoss Wildfly 8.2.1。无法将C的库添加到A或B
我错过了什么/做错了什么?如何做到这一点 为什么不能在两个war文件中都包含jar文件?在大多数情况下,这并不比使用共享jar更糟糕 实现这一点的标准方法是将.war文件和.jar文件打包到单个.ear文件部署中。这样,它们就可以一起部署
或者,如果您使用JBOSS AS 7.1+或Wildfly,您可以将jar构建到一个模块中,并将其安装到服务器本身。我一开始是这样做的,但C包含带缓存的单例,这将导致同时出现两个缓存(一个用于a,一个用于B)。因此,C只能有一个实例(也是内存方面的)。是否有可能将URL映射保存在.ear文件中?因为在未来,我将有另一个依赖于C的前端战争(因此1个Web服务,2个前端和一个核心)。我来看看jboss中的模块。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<Dependencies>org.slf4j</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>