美文网首页
maven 多web项目合并 Day19 2018-12-09

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

作者: Ernest_Chou | 来源:发表于2018-12-09 22:46 被阅读0次

    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包中已经存在了其他子模块的项目。

    相关文章

      网友评论

          本文标题:maven 多web项目合并 Day19 2018-12-09

          本文链接:https://www.haomeiwen.com/subject/erxlhqtx.html