【问题标题】:How do I define the source location for a file based dependency in gradle如何在 gradle 中定义基于文件的依赖项的源位置
【发布时间】:2013-08-05 17:00:17
【问题描述】:

我有一个定义文件依赖项的 gradle 构建脚本。

dependencies {
    testCompile files('lib/test/wibble-1.0.jar')
}

我有一个库的源 jar,我想将它添加到依赖项中,以便在 eclipse 中我可以导航到源。如何将该信息添加到依赖项中?

【问题讨论】:

    标签: java dependencies gradle


    【解决方案1】:

    为未从 Maven 存储库解析的工件添加源 Jars 需要编写一些 eclipse.classpath 的脚本(请参阅 Gradle Build Language Reference 中的 EclipseClasspath)。它可能看起来像这样:

    import org.gradle.plugins.ide.eclipse.model.*
    
    eclipse {
        classpath {
            file {
                whenMerged { Classpath classpath ->
                    classpath.entries.each { ClasspathEntry entry ->
                        if (entry instanceof AbstractLibrary && entry.library.file == file("lib/test/wibble-1.0.jar")) {
                            entry.sourcePath = fileReferenceFactory.fromFile(file("lib/test/wibble-1.0-sources.jar"))
                        }
                    }
                }
            }
        }
    }
    

    您可以概括此代码以在 lib 目录中添加符合某些命名约定的所有源 Jar。

    【讨论】:

    • 谢谢,但似乎 Eclipse 插件(与 gradle 生成的 eclipse 项目相反)似乎没有在依赖模型中看到这一点,这正是我真正追求的。跨度>
    • 确保配置导入以在导入之前/之后运行 Gradle 任务。您可以尝试的另一件事是使用flatDir 存储库,并为您的lib 目录中的Jars 和源Jars 使用与Maven 完全相同的命名模式。如果这不能解决问题,请通过forums.gradle.org 报告您的用例。
    猜你喜欢
    • 2013-09-02
    • 1970-01-01
    • 2012-10-23
    • 2014-07-07
    • 2022-09-28
    • 2014-02-07
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    相关资源
    最近更新 更多