zoukankan      html  css  js  c++  java
  • Maven依赖排除、禁止依赖传递、取消依赖的方法

    大家都知道Maven的优点是依赖管理。但如果我们引入一个jar包依赖时,会传递依赖十几个其他的jar包,而这些jar包的功能我又用不上,我们应该怎么排除呢?有以下几个方法:

    1. 项目间传递

        如果我的当前项目是project1,project1要依赖project2,project1依赖project2的配置中加上 <optional>true</optional>,表示依赖可选,

    <dependency>
      <groupId>com.projecct</groupId>
      <artifactId>project2</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>

     那么以后所有声明依赖project1的项目如果也依赖project2,就必须写手动声明。比如project3依赖project1和project2,如果project3只声明了对project1的依赖,那么project2不会自动加入依赖,需要重新声明对project2的依赖。

    这种方式排除不了我项目中对第三方jar包所依赖的其他依赖,因为我不可能去修改第三方jar包的pom文件,所以只适合在项目组内部使用。

    2. 依赖过滤

    (1)单依赖过滤

           同依赖过滤直接处理:可以过滤一个或者多个,如果过滤多个要写多个<exclusion>。这个也解决不了我的问题,或者说解决太麻烦,我那里知道hbase要依赖那些包,记不住。

    <dependency>    
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase</artifactId>
      <version>0.94.17</version> 
      <exclusions>  
         <exclusion>	 
           <groupId>commons-logging</groupId>		
           <artifactId>commons-logging</artifactId>  
         </exclusion>  
      </exclusions>  
    </dependency>

    (2)多依赖过滤

         把所以依赖都过滤了。手起刀落~啊,世界都安静了。

    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase</artifactId>
      <version>0.94.17</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  • 相关阅读:
    c#中获取服务器IP,客户端IP以及Request.ServerVariables详细说明
    无废话MVC入门教程二[第一个小Demo]
    winform使用xml作为数据源
    SQL Server 2005为数据库设置用户名和密码的方法
    数据库 的版本为 661,无法打开。此服务器支持 655 版及更低版本。不支持降级路径。
    Visual Studio快速封装字段方法
    erp crm oa
    sqldbhelper
    OleDbHelper
    存储过程分页(3)
  • 原文地址:https://www.cnblogs.com/junzi2099/p/14118936.html
Copyright © 2011-2022 走看看