Maven战争里面包含两场战争

时间:2018-02-08 20:13:04

标签: java maven

我想要一个包含两个战争包的最终战争包:

前端 - angularjs, BackendApi - 包括REST到下一个(外部api)

我意识到我可以把它装进耳中,但我关心战争

<modules>
    <module>Commons</module> <!-- jar package -->
    <module>WarCreator</module> <!-- war package -->
    <module>Web/Frontend</module> <!-- war package -->
    <module>Web/BackendApi</module> <!-- war package -->
</modules>

WarCreator在战争中构建整个包,pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>testtest</artifactId>
        <groupId>testtest</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>

    <artifactId>Dist</artifactId>
    <version>1.0</version>

    <dependencies>
        <dependency>
            <groupId>testtest</groupId>
            <artifactId>Frontend</artifactId>
            <version>1.0</version>
            <type>war</type>
        </dependency>
        <dependency>
            <groupId>testtest</groupId>
            <artifactId>BackendApi</artifactId>
            <version>1.0</version>
            <type>war</type>
        </dependency>
    </dependencies>

</project>

Backend和FrontendApi包都有jboss-web.xml文件,具有以下设置:

<jboss-web>
    <context-root>/rest</context-root>
</jboss-web>


<jboss-web>
    <context-root>/view</context-root>
</jboss-web>

但是最终的war包只有第一个模块,只有这个模块被注册(在widlfly日志中可见)。

有没有办法让战争包含两个战争包?

1 个答案:

答案 0 :(得分:0)

你在哪里看到你可以在战争中打包两场战争? 战争不是为了遏制另一场战争。

Maven不会像你注意到的那样自然地做到这一点。 即使你设法通过使用技巧来做到这一点,应用程序服务器也可能无法识别它们 为了达到你想要的效果,可以使用EAR作为打包多场战争或更好的战争的传统方式:不要试图将它们关联起来。
实际上,使WAR独立为其部署和维护提供了更大的灵活性。