maven pom文件的一些自己的理解

1 父模块与子模块
    在父模块指定自己的子模块,并且准备一些各个子模块公用的资源,如插件,配置信息等等。

2 构建模块与功能模块

  将打包的模块与实现具体功能的模块分开的做法。
  
  通常情况下,父模块和构建模块合并为一个模块。

3 生命周期

    生命周期是对maven软件开发过程的阶段的抽象,每个生命周期又分了若干阶段。
    
    maven生命周期分为三套,clean default site。
    

4 插件和目标
    
    生命周期是不干活的,不干具体实事,是用来约定大家进行项目构建的行为规范。真正干活的是插件。
    
    一个插件其实可以干好几件事情,每件事情又有个名字 叫做目标。所以插件就像我们程序员,要会java开发,还要知道数据库,还要知道操作系统。
    
    一个插件就是一组插件目标的集合。
    
    生命周期,和阶段用来规划项目的进行节奏和步伐,插件和插件目标干活,2方面配合,就会产生产出物,如jar,war。
    
    生命周期和插件的关联要解决几个问题 
    
    1 哪个插件要关联
    
    2 哪个插件目标要关联
    
    3 关联到哪个生命周期
    
    4 关联到生命周期的哪个阶段
    
    
    生命周期和插件的关联在pom文件中有2中关联方式:
    
    1 在build元素里,这里是一段cobertura的配置
    
    <!-- cobertura start -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId> <!-- 这里2行 解决 哪个插件要关联 -->
                <version>2.5.1</version>
                <configuration>
                </configuration>
                <executions>
                    <execution>
                        <id>site</id>                                    <!-- 这里 解决 要关联哪个生命周期 -->
                        <phase>site</phase>                        <!-- 这里 解决 要关联生命周期的哪个阶段 -->
                        <goals>
                            <goal>cobertura</goal>            <!-- 这里 解决 哪个插件目标关联 -->
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- cobertura end -->
    
    2 在pluginManage元素里

5 pom.xml文件和properties文件的关联

    properties文件是2部分的,key值和value值,value值是可以写引用的 形如 ${xxxx}

    ${xxx}这些值在编译的时候,或者测试的时候会用pom文件中对应的properties元素的子元素替换。

  这个特太好了。
    
6 build选项
    
    pom文件里是可以有好几个build元素的,build选项着重说明的是,在执行mvn命令的时候指定使用哪个build节点下的配置。

    例如,测试的时候要依赖一些东西,生产环境中是不需要的,就可以配置2个build,在测试的时候指定用测试build,生产环境部署的
    时候指定生产build打包。
    
    这里的build选项与5配合,就实现了 测试很生产环境 多个生产环境 数据库配置的问题。
    
    这样我们就可以在一个地方看到所有环境的数据库信息,只要在执行mvn命令的时候指定build就可以使用相应的配置信息。

7 属性替换

  为了统一管理依赖的版本号,可以在pom文件中的<properties>节点点配置多个元素,名字自定义,
  然后在所有使用版本号的地方用表达式$()替换真是的版本号,这样在修改版本号的时候就可以一改全改,省去了查找替换之苦。
  
  示例:
  
  <dependencies>
        <dependency>
            <groupId>xxx</groupId>
            <artifactId>xxx</artifactId>
            <version>${aa.version}</version>
        </dependency>
    </dependencies>

    <properties>
        <skipTests>false</skipTests>
        <aa.version>3.0.0</aa.version>
    </properties>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值