我有一个项目“ lib”,该项目声明了对第三方库的依赖(比如说redis)。
dependencies{
implementation group: 'redis.clients', name: 'jedis', version: '2.9.0'
}
我有另一个项目“应用程序”,它以非常相似的方式声明了对“ lib”项目的依赖。
问题:除非我也将redis依赖项添加到“应用程序”项目中,否则它会由于缺少redis依赖项而在运行时失败(尽管它本身并未直接使用redis)。
我想以这种方式在“ lib”项目中声明“ redis”依赖项,因此“ lib”已经与“ redis”捆绑在一起,因此每个使用“ lib”的人都必须只声明“ lib”依赖性。
该怎么做?
答案 0 :(得分:0)
假设您应用了java
或java-library
插件,则无需执行任何操作。
添加到Gradle implementation
范围中的依赖项对于该项目的使用者来说,对于其 runtime 类路径是可见的。但是,它对于编译类路径是不可见的。
为了更好地了解正在发生的事情,您可以通过在两个项目上运行./gradlew <project>:dependencies --configuration runtimeClasspath
来检查不同的类路径,并查看输出结果,当然用项目名称替换<project>
或将其留空根项目。