我有依赖项:
A
B
(这也取决于A
)。
现在,我想在 A
上使用说明符,假设:A-foo
。但是,B
仍然依赖于 A
,因此,我同时获得了 A-foo
和 A
目标 Artifact 。
有没有办法强制分类器依赖某些依赖项?
为什么?
我需要这个的原因如下。
我的 A
是一个基于 Java8 构建的 Java 库,但打包为 Multi-Release Jar这意味着当 jar 在 Java9 上运行时它包含额外的类。
不幸的是,一些旧的工具和服务器无法识别 MR Jars,这使得它们无法正常工作。
出于这个原因,我有我的库的 A-foo
版本,没有任何额外的类,所以旧服务器可以运行它。
但是,如果用户正在使用依赖于我的 A
的库 B
,他将简单地获取 A
的 MRJar 版本,并且它将再次失败。我希望能够以某种方式阻止这种情况。
最佳答案
带有分类器的 Artifact 是不同的 Artifact ,而不仅仅是同一 Artifact 的不同版本。它不能取代 - 无论是技术上还是逻辑上 - 原始 Artifact ,意思是:即使你能在技术上找到绕过它的方法,它也违背了 Maven 逻辑。
如果您更详细地描述您想要解决的问题,人们可能会找到一种“Maven 方式”来完成它。
关于maven - 如何强制分类器依赖传递依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590399/