Maven的继承与聚合

继承

由于非 compile 范围的依赖信息是不能在“依赖链”中传递的,所以有需要的工程只能单独配置,很容易造成版本不一致。

比如项目A 依赖Junit4.1版本,项目B依赖Junit4.3版本,现在需要统一为4.9版本,手动到各个项目中改动固然可以,但可以使用继承机制借助父工程进行统一管理版本。

步骤
建立父工程 (打包方式要设置为pom)
<parent> 
  <groupId>com.wojiushiwo.testgroupId> 
  <artifactId>parentartifactId> 
  <version>0.0.1-SNAPSHOTversion>
  <relativePath/>
 parent>
<packaging>pompackaging>

<dependencyManagement>
  <dependencies>
    <dependency> 
      <groupId>junitgroupId> 
      <artifactId>junitartifactId> 
      <version>4.9version> 
      <scope>testscope>
    dependency>
  dependencies>
dependencyManagement>

注意:在父工程中实际不会引入此jar包,这里只是声明依赖以及依赖的版本

在项目A中就可以这样使用
<parent> 
  <groupId>com.wojiushiwo.testgroupId> 
  <artifactId>parentartifactId> 
  <version>0.0.1-SNAPSHOTversion>
 parent>

<artifactId>project-aartifactId>
<version>0.0.1-SNAPSHOTversion>

<denpencies>
  <dependency>
     <groupId>junitgroupId> 
     <artifactId>junitartifactId> 
  dependency>
denpencies>

聚合

将多个工程拆分为模块后,需要手动逐个安装到仓库后依赖才能生效。修改代码后也需要逐个手动进行clean操作。

而使用了聚合之后就可以批量进行Maven工程的安装、清理工作了。

在IDEA中可以通过在新建project上,new->nodule来创建聚合关系。

父pom形如

   
     <groupId>com.wojiushwogroupId>
     <artifactId>testartifactId>
     <version>0.0.1.RELEASEversion>
    <modelVersion>4.0.0modelVersion>
    <modules>
        <module>com-wojiushiwo-project-amodule>
        <module>com-wojiushiwo-project-bmodule>
        <module>com-wojiushiwo-project-cmodule>
    modules>

    <packaging>pompackaging>

子pom形如

  <parent>
        <artifactId>testartifactId>
        <groupId>com.wojiushiwogroupId>
        <version>0.0.1.RELEASEversion>
  parent>
    <modelVersion>4.0.0modelVersion>

    <artifactId>com-wojiushiwo-project-aartifactId>

你可能感兴趣的:(maven学习,maven,继承,聚合)