使用 gradle(不是存储库)构建时使用自定义提供的 .jar 文件? [复制]

Posted

技术标签:

【中文标题】使用 gradle(不是存储库)构建时使用自定义提供的 .jar 文件? [复制]【英文标题】:Use custom supplied .jar files when building with gradle (not repository)? [duplicate] 【发布时间】:2017-09-05 09:08:58 【问题描述】:

我有一个通用库的自定义构建版本,我希望我的 Gradle 构建使用它,而不是从任何存储库下载标准版本。

理想情况下,我需要将库的 *jar 文件放在项目的子文件夹中,并让 gradle 在构建和稍后运行我的项目时使用该库的副本。

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

请查看文档。可以定义一个平面目录仓库,解释here:

repositories 
    flatDir 
        dirs 'lib'
    
    flatDir 
        dirs 'lib1', 'lib2'
    

或者您也可以包含一个平面 jar 文件作为依赖项,请参阅here:

dependencies 
    runtime files('libs/a.jar', 'libs/b.jar')
    runtime fileTree(dir: 'libs', include: '*.jar')

【讨论】:

Flat Dir 存储库应该是最后的手段,因为它不支持依赖元数据(例如传递依赖)。您应该探索复合构建以及基于本地目录的 maven 存储库,而不是 flatDir 感谢@LanceJava 的重要评论。 它似乎只在 lib 目录位于当前目录时才有效,如果它位于父目录中,它将失败 ''' repositories flatDir dirs '../lib'

以上是关于使用 gradle(不是存储库)构建时使用自定义提供的 .jar 文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

将 Gradle 与自定义 Ivy 存储库一起使用

在 Gradle Android 中实现自定义库时未解析类

构建被配置为更喜欢设置存储库而不是项目存储库,但存储库“maven”是由构建文件“build.gradle”添加的

如何通过Gradle将所有依赖项复制到Maven存储库?

如何在构建命令中在Gradle上添加运行时库

用于依赖项的 Gradle 私有存储库