使用maven warpath插件合并多module的war包

使用maven warpath插件合并多module的war包

现在java 项目一般使用maven、gradle等工具来管理jar包、打包、发布。如果一个项目有很多模块,那般是分成多个module,主目录有个parent,负责包含全部的module,然后目录中多个module文件夹,分别依赖parent或者其他module。最近遇到个项目,项目很久,代码全部放在一起,随着业务拓展变得与越来越庞大,于是其对进行module拆分。

问题

  1. 多个模块可能交叉依赖。
  2. 每个模块可能都会有前台页面的代码,jsp、js等。
  3. maven打包的时候能否war包、jar包一起打。

解决方式

  1. 交叉依赖必须解决,尽可能多的剥离独立代码,让它成为其他模块以来的包,这个包可以使用maven打成jar包。然后拆分其他的模块,可以有顺序依赖,但是不能交叉依赖。
  2. 多个模块都有前台代码,前台代码在maven打包是不需要编译,是直接copy到target目录,然后再打成war包。这样我们就可以把所有模块的前台代码都抽离出来,当成一个单独的module,如project-web模块,当然也可以不抽离,但是需要用到第三步。
  3. 使用maven插件可以做到war、jar一起打。插件名字是maven-jar-plugin。示例pom配置如下(在pom.xml开头中指定打包类型是war):
    <build>        <plugins>        <plugin>        <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-jar-plugin</artifactId>        <executions>        <execution>        <id>make-a-jar</id>        <phase>compile</phase>        <goals>        <goal>jar</goal>        </goals>        </execution>        </executions>        </plugin>        </plugins>        </build>    

执行mvn install就可以得到war和jar包,默认是在target文件夹下。

介绍就这些,下面是示例的pom配置,首先parent中的pom.xml(注意parent的打包类型是pom):

        <groupId>com.yeetrack.project</groupId>    <artifactId>project-parent</artifactId>    <version>1.0-SNAPSHOT</version>    <packaging>pom</packaging>    <name>My Maven Webapp</name>    <modules>    <module>common</module>    <module>module-one</module>    <module>module-two</module>    <module>module-three</module>    </modules>

在各个模块中配置parent项目(下面是module-one):

    <groupId>com.yeetrack.project</groupId>    <artifactId>module-one</artifactId>    <version>1.0-SNAPSHOT</version>    <packaging>jar</packaging>/* 如果此模块有前台代码,那就是war */    <name>module-one</name>    <parent>    <groupId>com.yeetrack.project</groupId>    <artifactId>project-parent</artifactId>    <version>1.0-SNAPSHOT</version>    </parent>

如果module two依赖module one,有两种情况:

继续阅读→

转载于:https://my.oschina.net/u/147181/blog/228423

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值