我有一个多项目 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 方库。