我有一个名为sample-lib
的库,它与com.google.guava
有依赖关系,这里是pom.xml的一部分
<groupId>com.my</groupId>
<artifactId>sample-lib</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
...
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>16.0.1</version>
</dependency>
当我完成这个库时,我将它部署到我们的内部maven repo服务器(我们使用JFrog Artifactory)。
然后在我们的一个项目中我们使用这个sample-lib
,我们在项目的pom.xml中引用它:
<dependency>
<groupId>com.my</groupId>
<artifactId>sample-lib</artifactId>
<version>1.0</version>
</dependency>
因为我们认为sample-lib
已经依赖google guava,所以我们不会将后者添加到项目的pom文件中。问题是当我们运行项目时,我们得到了“com.google.guava.xxxx class”找不到类。如果我们将guava依赖项添加到项目pom中,一切都可以。为什么我们sample-lib
已经使用了番石榴依赖,因此无法解决番石榴依赖性?
我们发现一些开源项目不是这样的,当我们使用一个库时,我们将自动导入所有依赖项。
这是怎么发生的?我们的sample-lib
的pom文件中是否存在某些问题,或者我们的内部maven repo服务器出现了问题?