Maven 如何在JBoss中的两次战争之间共享依赖项(jar)

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

我有两个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</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>