我有一个多项目 Gradle 构建。我有Sub-Project-A
这取决于Sub-Project-B
。Sub-Project-B
编译时依赖于SLF4J
. 我不希望Sub-Project-A
能够针对任何SLF4J
库进行编译,但在运行时我确实希望Sub-Project-B
代码能够运行。
我认为我可以做的是将编译时依赖项添加到 Sub-Project-B 然后添加:
configurations {
compile.exclude group: 'org.slf4j'
}
到子项目-A。这确实阻止了任何代码针对 slf4j API 进行编译,但它也阻止了 slf4j 库位于 Sub-Project-A 运行时,因此一旦Sub-Project-B
访问来自的代码,我就会得到 ClassNotFoundException。
由于这很难开始工作,我认为我一定做错了什么,但这并不像是一个不合理的设置。我只希望我的构建中的一个子项目能够在编译时访问第 3 方库。