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 ,但你的项目有间接依赖项log4j 和JMX ,它们都依赖spring-core 。
所以maven解决了所有这些依赖,即所有直接和间接依赖。
您的项目1.0.0 ,直接依赖spring-core-2.5.6 ,间接依赖log4j-1.2.12 和jmx-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依赖性实例的一个基本开始。希望你有足够的信息来开始学习。
如果你有任何问题,请随时留言,我将给你答复。