我有一个Gradle项目,发布了一些 Artifact :
它们在
internal-shared
模块中共享一些代码:root
├── internal-shared
├── library
└── application
library
的依赖树如下所示:implementation
+--- third-party.foo:bar (n)
+--- third-party.baz:qux:1.2.3 (n)
\--- project internal-shared (n)
我对发布该library
模块感兴趣。shared
依赖关系。 我可以发布
internal-shared
库,但这没有任何意义:在项目外部没有用。我该怎么办?
我的第一个建议是:
internal-shared
嵌入已发布的library
jar 从外部 Angular (即查看已发布的 Artifact ),依赖关系树将是:
implementation
+--- third-party.foo:bar (n)
\--- third-party.baz:qux:1.2.3 (n)
(将internal-shared
嵌入library
jar中)那有多安全?有办法吗?
最佳答案
这是一个主观问题-
在需要发布library
的情况下-仅一个语句为真
internal-shared
实际上是共享的,并且可以独立于自己的-这种情况下必须发布;或internal-shared
仅在library
中使用,而绝不能站在自己的上-然后应将其合并/制作单个组合的jar。 只有您知道代码-因此您需要决定。
在方案(1)中,请考虑其他项目是否会遇到版本不匹配的问题-如果混淆,例如:
project-3
|_ lib_v3
|_ internal-shared_v2 (or v4)
关于gradle - 根据另一个内部模块发布库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63168707/