解释Maven依赖性实例

183 阅读2分钟

Maven 是一个用于java和android应用程序的项目构建工具。

ant 工具相比,Maven 的特点之一是软件项目的依赖性管理

当你在项目中使用maven时,你需要在pom.xml中定义依赖项。一旦配置好依赖关系,它们就会从软件库下载到本地机器上。

用Maven安装时,你必须使用依赖性插件来配置依赖性,它可以操作工件。

以下是在应用程序的pom.xml中把spring-core 配置为项目的依赖项的示例代码段。

   
<project>   
<dependency>   
<groupid>org.springframework</groupid>   
<artifactid>spring-core</artifactid>   
<version>2.5.6</version>   
</dependency>   
</project>  

   
  

在maven中运行编译或安装命令时,项目会首次从spring资源库服务器下载spring-core jar。你还应该在pom.xml ,用以下代码配置资源库服务器。

<repositories>    
<repository>   
<id>spring-release</id>   
<url>http://repository.springsource.com/maven/bundles/release</url>   
</repository>    
</repositories> 

所以你可以配置多个资源库,寻找工件的资源库的顺序应该与pom.xml中的顺序一致。

什么是maven中的过渡性依赖?

例如,如果spring-core 工件的依赖关系之一是log4j ,会发生什么?

log4j 依赖项也应该下载到本地项目中吗?

是的,所有的直接依赖都会自动解决。Transitive dependency meaning is that all the dependencies resolve for your projecttransitively`配置在pom.xml中。

在这个例子中,你的项目只配置了spring-core ,但你的项目有间接依赖项log4jJMX ,它们都依赖spring-core

所以maven解决了所有这些依赖,即所有直接和间接依赖。

您的项目1.0.0 ,直接依赖spring-core-2.5.6 ,间接依赖log4j-1.2.12jmx-1.0.2

根据您的项目需要,您只想使用log4j-1.2.14 ,但根据上面的spring-core 依赖关系,您有log4j-1.2.12作为依赖关系。因此,你必须避免对log4j-1.2.12 的依赖。

为此,我们必须在pom.xml的依赖标签中使用一个排除标签

以下是代码片段

<dependency>  
<groupid>org.springframework</groupid>  
<artifactid>spring-core</artifactid>  
<version>2.5.6</version>  
<exclusions>  
<exclusion>  
<groupid>log4j</groupid>  
<artifactid>log4j</artifactid>  
</exclusion>  
</exclusions>  
</dependency>  
<dependency>  
<groupid>log4j </groupid>  
<artifactid>log4j</artifactid>  
<version>1.2.14</version>  

它显示了项目依赖的maven依赖树。

它有助于解决与依赖项版本的冲突。

resolve-plugins会给出配置的插件依赖树。

mvn dependency:resolve-plugins

另外,您也可以使用下面的maven命令来打印插件的依赖关系。

总结

本主题是探索maven依赖性实例的一个基本开始。希望你有足够的信息来开始学习。
如果你有任何问题,请随时留言,我将给你答复。