maven - 传递依赖

Rox*_*ana 5 maven transitive-dependency

我在pom.xml中定义数据时尝试遵循最佳实践,所以我开始研究Spring源代码,我看到:


<project xmlns="http://maven.apache.org/POM/4.0.0"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.springframework</groupId>
  <artifactId>spring-aop</artifactId>
  <packaging>jar</packaging>
  <version>3.1.1.RELEASE</version>
.....

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${project.version}</version>
      <scope>compile</scope>
</dependency>

---

<dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <scope>test</scope>
</dependency>
-----
Run Code Online (Sandbox Code Playgroud)

但是,spring-bean也依赖于log4j.

你能告诉我,对于最佳实践方法,你应该在多大程度上依赖传递依赖?

我问这个是因为我的第一个想法是不重新声明log4j依赖,因为spring-beans已经声明了它.

Rya*_*art 10

声明您明确依赖的依赖项,它是否提供您直接导入和使用的类,或者它是提供您直接使用的服务的东西,如Log4J.传递依赖应该只提供运行时所需的依赖项,但不要自己使用.