`

maven及物依赖Transitive dependencies

    博客分类:
  • JAVA
阅读更多

One of the highlights of Maven 2 is transitive dependency management. If you have ever used a tool like urpmi on a Linux box, you'll know what transitive dependencies are. With Maven 1, you have to declare each and every JAR that will be needed, directly or indirectly, by your application. For example, can you list the JARs needed by a Hibernate application? With Maven 2, you don't have to. You just tell Maven which libraries you need, and Maven will take care of the libraries that your libraries need (and so on).

Maven 2 的一大亮点就是及物依赖管理。如果你使用过象 Linux 平台上的 urpmi 的工具,你会知道什么是及物依赖。在 Maven 1 中,你必须声明你所需要的每个应用程序直接或者间接需要的 JAR 。比如, Hibernate 应用程序所需的 JARs 就有很多。在 Maven 2 中,你不必如此,你只要告诉 Maven 你所需要的库, Maven 会照顾到你的库所需要的库。

Suppose you want to use Hibernate in your project. You would simply add a new dependency to the dependencies section in pom.xml, as follows:

假设你在项目中需要使用 Hibernate ,你只要简单的在 pom.xml 文件的 dependencies 节中加入一个新的 dependency ,如下所示:

<dependency>
       <groupId>hibernate</groupId>
       <artifactId>hibernate</artifactId>
       <version>3.0.3</version>
       <scope>compile</scope>
   </dependency>

And that's it! You don't have to hunt around to know in which other JARs (and in which versions) you need to run Hibernate 3.0.3; Maven will do it for you!

这就够了!你不必知道运行 Hibernate 3.0.3 需要哪些 JARs ,以及它们的版本, Maven 会为你做这些工作!

The XML structure for dependencies in Maven 2 is similar to the one used in Maven 1. The main difference is the scope tag, which is explained in the following section.

分享到:
评论

相关推荐

    maven本地仓库

    - **依赖冲突**:不同库可能依赖了相同但不同版本的库,Maven的依赖管理策略(First-Occurrence Wins, Transitive Dependency Management)有时可能导致问题。解决方法包括排除依赖、使用`&lt;dependencyManagement&gt;`...

    Apache Maven Dependency Management

    Manage your Java and JEE project dependencies with ease with this hands-on guide to Maven Overview Improve your productivity by efficiently managing dependencies. Learn how to detect and fix ...

    apache-maven-3.6.3.zip

    只需在POM中声明所需的jar包,Maven会自动下载并管理这些依赖及其 transitive dependencies(间接依赖)。 **5. Maven插件:** Maven 插件是实现特定构建任务的工具,例如maven-compiler-plugin用于编译Java代码,...

    apache-maven-3.3.9.jar

    当项目中声明了一个依赖时,Maven会自动下载该依赖及其所有transitive dependencies(传递性依赖),确保项目运行所需的所有组件都已到位。`apache-maven-3.3.9.jar` 包含了解析并处理这些依赖的逻辑。 Maven的生命...

    稳定 apache-maven-3.6.3

    当我们在POM中声明了一个依赖,Maven会从默认的中央仓库(例如,http://repo1.maven.org/maven2/)或者用户定义的私有仓库中查找并下载这个依赖及其所有transitive dependencies(间接依赖)。这样,开发者无需手动...

    Maven权威指南 很精典的学习教程,比ANT更好用

    Transitive Dependencies, Project Attachments, and Project Artifacts 12.5.4.6. Advanced Unpacking Options 12.5.4.7. Summarizing Dependency Sets 12.5.5. moduleSets Sections 12.5.5.1. Module ...

    maven-ant-tasks-2.1.3-src

    Dependency management - including transitive dependencies, scope recognition and SNAPSHOT handling Artifact deployment - deployment to a Maven repository (file integrated, other with extensions) POM ...

    maven仓库123456789

    Maven的依赖解决机制会根据依赖传递性(transitive dependencies)和依赖管理来处理这些问题。依赖管理允许在父POM或公司级的BOM(Bill of Materials)中定义一组共用的依赖及其版本,以确保整个项目的版本一致性。 ...

    apache-maven-2.0.10.rar

    5. **依赖管理**:Maven通过中央仓库管理依赖,当在POM中声明了一个依赖,Maven会自动从仓库中下载该依赖及其所有 transitive dependencies(传递性依赖)。 6. **坐标**:每个Maven项目都有唯一的坐标,由groupId...

    eclipse的maven插件m2eclipse 1.6.2 目前最新版

    3. 依赖管理:插件提供了可视化依赖树视图,方便查看和管理项目的依赖关系,包括解决依赖冲突和管理transitive dependencies(传递性依赖)。 4. 编译与测试集成:m2eclipse支持Maven的编译和测试生命周期阶段,...

    maven-ant-tasks-2.1.3

    Dependency management - including transitive dependencies, scope recognition and SNAPSHOT handling Artifact deployment - deployment to a Maven repository (file integrated, other with extensions) POM ...

    Android代码-基于touchevent的动画对象

    OffsetAnimator OffsetAnimator lets animate objects basing on touchevents, so users can be engaged in an animation process. ...The library doesn't have any transitive dependencies. Tutorial A

    apache-maven-3.0.2-bin

    * [MNG-4913] - [regression] User properties override equally named POM properties of transitive dependencies * [MNG-4915] - Versions in pom.xml are not checked for invalid characters * [MNG-4918] -...

    external_lib_ex:尝试创建Maven依赖项

    Maven会自动从其默认的中央仓库(如https://repo1.maven.org/maven2/)下载指定版本的依赖及其所有transitive dependencies(间接依赖)。如果遇到版本冲突,Maven会根据依赖管理规则进行解决。 6. 构建项目: ...

    IDEA创建maven项目

    &lt;arg&gt;-make:transitive &lt;arg&gt;-dependencyfile ${project.build.directory}/.scala_dependencies &lt;/args&gt; --&gt; ``` #### 4. 删除 src 目录下的 test 文件夹 如果发现项目中 `src/test/scala` 文件夹出现...

    spring-mvc本地仓库

    1. 自动化依赖管理:Maven 可以自动解析和下载项目的依赖及其 transitive dependencies(传递性依赖)。 2. 版本控制:通过指定依赖的版本,可以确保团队成员使用的一致性,减少版本冲突。 3. 缓存机制:本地仓库能...

    maven-tycho-thirdparty:在 Eclipse 插件中使用第三方依赖与 Maven 和 Tycho

    在 `pom.xml` 文件中声明依赖,Maven 将自动下载并管理这些依赖及其 transitive dependencies(传递性依赖)。在 Eclipse 插件项目中,Tycho 能够处理这些依赖,并将它们打包到最终的插件或 RCP 应用中。 4. **...

    解决gradle module不能引用aar问题

    5. **检查aar的transitive dependencies**:确保aar的依赖也被正确传递并添加到构建中,如果需要,可以使用`implementation(project(':moduleA'))`来明确声明模块间的依赖关系。 6. **清理和重新构建**:有时候,...

Global site tag (gtag.js) - Google Analytics