目录

可选依赖

# 可选依赖

如果你准备发布的项目中,有些依赖特别常见,你不希望别人在用这些依赖时和你库中的依赖有所冲突,你可以选择将容易发生冲突的依赖“隐藏”掉。

<dependencies>  
	<dependency>  
	   <groupId>junit</groupId>  
	   <artifactId>junit</artifactId>  
	   <version>4.11</version>  
	   <scope>test</scope>  
	</dependency>  
	<dependency>      
		<groupId>mysql</groupId>  
	    <artifactId>mysql-connector-java</artifactId>  
	    <version>8.0.29</version>  
	    <optional>true</optional>  
	</dependency>
</dependencies>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

你可以看到一个新的标签<optional>该标签默认值为false,当他为true时,则代表他人依赖你的项目时,将不能够调用你所以依赖的库。

通常情况下,别人用你发布的库只是为了你提供的功能,而不会有人在意你用了谁的第三方库,如果你不把容易冲突的库optional,会导致别人某些库依赖到你的库从而发生故障。

# 排除依赖

有时,你的项目使用了更先进的日志库,但由于你必须依赖的某个第三方库中有个老旧的日志库,这将会和你原有的日志库发生冲突,你不想调用它,这该怎么办啊?

<dependency>  
    <groupId>mysql</groupId>  
    <artifactId>mysql-connector-java</artifactId>  
    <version>8.0.29</version>  
    <exclusions>        
	    <exclusion>            
		    <groupId>com.google.protobuf</groupId>  
	        <artifactId>protobuf-java</artifactId>  
        </exclusion>    
    </exclusions>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
最近更新
01
基本知识
07-18
02
卷积神经网络识别图像
07-18
03
损失函数
07-18
更多文章>