maven 多web项目合并 Day19 2018-12-09

2018-12-09  本文已影响0人  Ernest_Chou

maven多web合并项目
多web项目合并,主要是我在网上找到的资料都不是我最终想要的效果,所以这里就介绍下我最终使用的方案,网上有很多方案都是介绍用caro插件,我到现在也不明白为什么要使用这个插件。

    maven的多web模块maven-war-plugin插件的overlays属性来处理,最终主web项目pom.xml代码如下
<!-- 如果本项目中中有对peis-login项目工程的的依赖,这个配置是必不可少-->
        <dependency>
            <groupId>com.tianjian</groupId>
            <artifactId>peis-login</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <!-- 下面的这个配置,在集成其他war的时候,是必不可少的 -->
        <dependency>
            <groupId>com.tianjian</groupId>
            <artifactId>peis-login</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <type>war</type>
        </dependency>
    </dependencies>
    <build>
        <finalName>peis-invoice</finalName>
        <plugins>
            <!-- 合并多个war -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <packagingExcludes>WEB-INF/web.xml</packagingExcludes>
                    <overlays>  <!-- 声明合并war -->
                        <overlay>
                            <groupId>com.tianjian</groupId>
                            <artifactId>peis-login</artifactId>
                            <!-- 声明排除war包中的部分 -->
                            <!-- <excludes>
                                <exclude>*/web.xml,WEB-INF/lib/*</exclude>
                            </excludes> -->
                        </overlay>
                    </overlays>
                </configuration>
            </plugin>
        </plugins>
    </build>

这里使用到了maven-war-plugin,用overlay属性已经足够将多web合并了,只是用的过程中需要注意以下几点:

被合并的子web项目packaging属性必须是war
被合并的子web项目,必须在主项目中添加依赖关系。
被合并的子web项目中,如果没有web.xml,则需要在pom.xml中声明

<build>
    <finalName>fixflow-webapp-editor</finalName>
        <plugins>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-war-plugin</artifactId>  
                <configuration>  
                    <failOnMissingWebXml>false</failOnMissingWebXml>  
                </configuration>  
            </plugin>    
        </plugins>  
</build>

做完以上几点,多web项目合并就基本上做完了,运行mvn install就会发现打出的war包中已经存在了其他子模块的项目。

上一篇下一篇

猜你喜欢

热点阅读