假设我们创建一个项目,该项目是一种图书馆项目(一个项目聚合依赖项)。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.packt</groupId>
<artifactId>axis2-client</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-adb</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-http</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-transport-local</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-xmlbeans</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies>
</project>
另一个项目正在使用库项目作为依赖项。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.packt</groupId>
<artifactId>my-axis2-client</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>com.packt</groupId>
<artifactId>axis2-client</artifactId>
<version>1.0.0</version>
<type>pom<type>
</dependency>
</dependencies>
</project>
我认为此用例假定 my-axis2-client 使用 axis2-client 中的依赖项作为直接依赖项。
因此,这意味着我可以在my-axis2-client中使用org.apache.axis2.client.ServiceClient(位于axis2-kernel-1.6.2.jar中)类。
但是,当我运行mvn dependency:anlyze
时,它会产生以下结果。
[WARNING] Used undeclared dependencies found:
[WARNING] org.apache.axis2:axis2-kernal:jar:1.6.2:compile
[WARNING] Unused declared dependencies found:
[WARNING] compackt:axis2-client:pom:1.0.0:compile
我认为这不是有效的警告。 请让我知道这种情况下是否有任何分析依存关系的方法。
答案 0 :(得分:1)
在您的构造中,结果依赖项是 transitive ,而不是直接的。您依赖于POM,而POM本身取决于罐子。