maven maven-war-plugin 解决java war项目间的依赖(两个war都可独立部署运行,maven 3.2.x亲测)

最近整理基础框架,有些项目不想分布式,所以基础框架必须同时可独立部署,也可直接被作为依赖和业务工程打到一起,记录下解决war项目依赖的要点,一开始用warpath,结果报找不到,有些帖子还是17年的,于是继续查看。

warpath 是个坑,按照网上的说明基本跑不通,可能是maven-war-plugin 升级了不兼容,不建议再去使用warpath了,maven-war-plugin就可以搞定所有的事情了。直接上结果了。

base-webapp

复制代码
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <!--注意增加这两行,在打包时相关的类会被独立打成jar
                    <attachClasses>true</attachClasses>
                    <classesClassifier>api</classesClassifier>-->
                    <!-- <archiveClasses>true</archiveClasses> --> <!-- 最好不要archiveClasses,否则有些配置的classpath而非classpath*就完了 -->
                    <attachClasses>true</attachClasses>
                 </configuration>
                <version>3.2.0</version>
            </plugin>
复制代码

XXX-webapp依赖配置:

复制代码
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <configuration>
                        <!-- <dependentWarExcludes>WEB-INF/lib/*</dependentWarExcludes> -->
                        <!-- <archiveClasses>true</archiveClasses> -->
                     </configuration>
                    <version>3.2.0</version>
                </plugin>

    <dependencies>
        <dependency>
            <groupId>com.XXX.YYY</groupId>
            <artifactId>base-webapp</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <type>war</type>
        </dependency>
        <dependency>
            <groupId>com.XXX.YYY</groupId>
            <artifactId>base-webapp</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <type>jar</type>
            <classifier>classes</classifier>
            <scope>provided</scope>
        </dependency>
复制代码

这样XXX-webapp就把所有classes和静态资源都打包进去了,但是默认还会生成target/work目录,这个后面再看,现在没时间看。

还没有整合为spring boot,后面再细化整理。

posted @   zhjh256  阅读(2808)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2016-11-27 nginx性能优化
点击右上角即可分享
微信分享提示