包括本地jar作为api依赖项的Gradle库未显示在使用者的类路径中

时间:2019-12-30 17:39:50

标签: gradle

在我的gradle Java库项目中,我依赖于本地jar文件(工件未在任何地方发布)。依赖项配置如下:

dependencies {
    api fileTree(dir: '3rdparty', include: '*.jar')
}

当我将库发布到Maven本地,然后从另一个项目中拉入库时,即使3rdparty文件夹中的jar中的符号被列为api依赖项,也无法在类路径中使用。这仅仅是在库模块中直接使用jar文件之类的限制吗?

1 个答案:

答案 0 :(得分:1)

这是对文件依赖项的众所周知的限制。 Gradle文档对此很清楚

  

文件依赖项未包含在项目的已发布依赖项描述符中。但是,文件依赖关系包含在同一构建中的可传递项目依赖关系中。这意味着它们不能在当前版本之外使用,而可以在同一版本内使用。

原因很简单,与二进制存储库中托管的工件相比,其他项目无法从外部解决这些依赖关系。在Declaring Dependencies用户指南中了解有关此主题的更多信息。