Maven之Optional 与Exclusions(可选依赖与排除依赖)

1. 场景分析

 POM依赖具有传递性性,如下demo所示:
Project-A
   -> Project-B
        -> Project-D 
              -> Project-E
              -> Project-F
   -> Project C
项目A依赖项目B与项目C,项目D依赖于项目E与项目F,默认的话,项目A将依赖于B,C,D,E,F。

2.可选依赖(optional)

假如上述场景中,D中依赖的项目丢失(既在仓库中找不到),并且A 的项目中依赖的B中所涉及到的功能不需要涉及到的D的功能,项目B的开发人员可以通过在对项目D的依赖中加入在true,如下所示:

  sample.rojectD
  ProjectD
  1.0-SNAPSHOT
  true
(备注:上述依赖只对于开发中的项目可以行,如果对于依赖的其他项目,则需要更改底层的pom文件)

3.排除依赖

当上述demo项目中,B引用的D项目过时(既旧版本)或者不需要用到D中功能,此时可以用排除依赖。此时,A的POM引用文件如下:

  4.0.0
  sample.ProjectA
  Project-A
  1.0-SNAPSHOT
  jar
  ...
  
    
      sample.ProjectB
      Project-B
      1.0-SNAPSHOT
      
        
          sample.ProjectD 
          Project-D
        
      
    
  
(备注:在引用多个子项目的时候,如果多个子项目引用了相同的包,此时就要用排除依赖,避免版本冲突)

过滤版本也可以使用通配符进行过滤,如下:

		
			*
			*
		
	

参考链接: http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html





你可能感兴趣的:(Maven之Optional 与Exclusions(可选依赖与排除依赖))