使用JBoss SAR打包WAR

时间:2014-03-25 21:38:40

标签: java spring maven spring-mvc jboss

我有一个JBoss SAR,我想用它打包一个WAR(一个Spring MVC网络应用程序)。原因是这个Web应用程序可以在任何部署了此SAR的JBoss上使用。我在SAR的POM中添加了对WAR的依赖,并看到它们在SAR中打包在一起。但是,当我打开其URL时找不到Web应用程序,而如果我单独部署Web应用程序,则会打开它。

修改 我现在正试图将WAR和SAR打包成EAR。我确认我可以单独部署SAR和WAR,并且每个都以这种方式工作。我确认,当使用SAR在EAR中打包时,WAR会正确部署。但是,在EAR中打包时不会部署SAR。这是EAR的POM(标识符通用):

<groupId>com.company</groupId>
<artifactId>my-ear</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>ear</packaging>

<!-- name, url, properties omitted -->

<dependencies>
<!-- NOT Deploying -->
<dependency>
    <groupId>com.company</groupId>
        <artifactId>MySAR</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>sar</type>
</dependency>
<!-- Deploys OK -->
<dependency>
    <groupId>com.company</groupId>
        <artifactId>MyWAR</artifactId> 
        <version>1.0.0-BUILD-SNAPSHOT</version>
        <type>war</type>
</dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.9</version>
            <configuration>
                <modules>
                    <sarModule>
                        <groupId>com.company</groupId>
                        <artifactId>MySAR</artifactId>
                    </sarModule>
                    <webModule>
                        <groupId>com.company</groupId>
                        <artifactId>MyWAR</artifactId>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
    </plugins>
</build>

1 个答案:

答案 0 :(得分:1)

你实际上无法做到这一点。服务存档(SAR)用于定义加载和独立运行的组件。最明显的形式是您在JMX域上部署的服务。

sar既可以独立部署,也可以捆绑在EAR中(参见support in the maven ear plugin)。

但是您无法在sar中部署Web应用程序。您应该有两个不同的部署单元或将它们打包到EAR中。