我想使用一个类,在我的pom中有两个依赖项支持它:dependency1和dependency2。使用带有dependency1的类使我的程序崩溃,所以我从pom中完全删除了它,保留dependency2,代码正常工作。我如何告诉maven使用dependency2而不是dependency1构建类,而不删除dependency1(以防dependency1包含我以后要在代码中使用的内容)?
qkf9rpyu1#
在两个不同的依赖项上不太可能有具有相同包名的同一类。因为artifactId对于每个依赖项都是唯一的,即使它属于同一个groupdid。因此,如果您通过使用dependency2的类解决了问题,那么这就是您需要的类。当您询问其他任务是否需要dependency1时,将dependency1保留在pom.xml上不会有问题。您需要注意的唯一一点是从dependency2导入所需的类。因此,请检查类中的import语句,看看它是否从dependency2导入类。
b91juud32#
当您在各自的类中导入依赖项时,只需检查依赖项的整个地址(整个包结构),并确保您使用的是来自dependency2的依赖项。另外,如果您已经从pom.xml中删除了dependency1,那么maven不会将dependency1放在生成项目时生成的目标文件夹中。
h5qlskok3#
不能明智地使用包含具有相同限定类名的类的两个库。所以要么把自己限制在其中一个。或者使用maven shade插件重新定位其中一个依赖项的包。
3条答案
按热度按时间qkf9rpyu1#
在两个不同的依赖项上不太可能有具有相同包名的同一类。因为artifactId对于每个依赖项都是唯一的,即使它属于同一个groupdid。因此,如果您通过使用dependency2的类解决了问题,那么这就是您需要的类。当您询问其他任务是否需要dependency1时,将dependency1保留在pom.xml上不会有问题。您需要注意的唯一一点是从dependency2导入所需的类。因此,请检查类中的import语句,看看它是否从dependency2导入类。
b91juud32#
当您在各自的类中导入依赖项时,只需检查依赖项的整个地址(整个包结构),并确保您使用的是来自dependency2的依赖项。
另外,如果您已经从pom.xml中删除了dependency1,那么maven不会将dependency1放在生成项目时生成的目标文件夹中。
h5qlskok3#
不能明智地使用包含具有相同限定类名的类的两个库。
所以
要么把自己限制在其中一个。
或者使用maven shade插件重新定位其中一个依赖项的包。