• Maven模块聚合


    一个Maven工程中一般会有很多模块组成,为了构建的方便通常想一次构建多个模块,Maven聚合这一特性就是为该需求服务的。 假设我们有account-email和account-persist两个模块。为了使用一条命令就能构建这两个模块,我门创建额外的account-aggregator的模块,然后通过该模块构建整个项目的的所有模块,account-aggregator模块本身作为Maven项目,它必须要有自己的POM文件,同时作为一个聚合项目,其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/maven-v4_0_0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
            <groupId>com.juvenxu.mvnbook.account</groupId>  
            <artifactId>account-aggregator</artifactId>  
            <version>1.0.0-SNAPSHOT</version>  
            <packaging>pom</packaging>  
            <name>Account Aggregator</name>  
            <modules>  
                 <module>account-email</module>  
                 <module>account-persist</module>  
            <modules>     
    </project> 

    第一个特殊的地方为packaging,其值为pom,查看其他模块,它们都没有声明packaging,即使用了默认的jar。对于聚合模块来说,其打包方式packaging的值必须为pom,否则无法构建。

    为了方便用户构建项目,通常将聚合模块放在项目目录的最顶层,其他模块则作为聚合模块的子目录存在。

    关于目录结构还要注意一点,聚合模块与其他模块的目录结构并非一定是要父子关系,也可以是平行目录的结构,这时相应的module路径也要做相应的更改,如下:

    <?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/maven-v4_0_0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
            <groupId>com.juvenxu.mvnbook.account</groupId>  
            <artifactId>account-aggregator</artifactId>  
            <version>1.0.0-SNAPSHOT</version>  
            <packaging>pom</packaging>  
            <name>Account Aggregator</name>  
            <modules>  
                 <module>../account-email</module>  
                 <module>../account-persist</module>  
            <modules>     
    </project> 
  • 相关阅读:
    【转载】ios11 相册读写权限 变更
    【原创】2016年2月14日之后 打ipa包或者提交苹果AppStore失败 证书状态提示“此证书的签发者无效”的解决方法
    【转载】iOS麦克风录制音频并保存成mp3文件的Demo
    【原创】苹果内置录屏SDK-ReplayKit库的使用说明
    iOS sdwebimage 特殊图片错误的问题
    iOS 中 UITextView 限制最大输入字数
    iOS中对NSArray中自定义的对象进行排序
    安卓仿照微信
    Mapped Statements collection already contains value for ***.***的问题
    CSS3之calc()和box-sizing属性
  • 原文地址:https://www.cnblogs.com/maxiaofang/p/5940655.html
Copyright © 2020-2023  润新知