首页 文章

Gradle:使用自定义远程工件URL创建依赖项模块

提问于
浏览
4

我希望我的构建配置使用传统的存储库管理(组,版本解析等),但我的构建依赖于Maven或Ivy描述符文件 .

我试图在Gradle中使用ClientModule执行此操作 . 文档通过在构建文件中声明模块的元数据来说明这是可能的 .

http://www.gradle.org/docs/1.7/userguide/dependency_management.html#sub:client_module_dependencies

这就是我所拥有的:

repositories {
    //no external repos
}

dependencies {
    runtime module("org.lessjs:lessjs:1.4.1") {
        transitive = true
        artifact {
            type = "js"
            name = "lessjs"
            url = "https://raw.github.com/less/less.js/master/dist/less-1.4.1.min.js"
        }
    }

    runtime module("org.jquery:jquery:1.10.1") {
        transitive = true
        artifact {
            type = "js"
            name = "jquery"
            url=  "http://code.jquery.com/jquery-1.10.2.js"
        }
    }
}

我想从指定的URL下载工件,以便将javascript文件放在本地存储库中 . 但是,我遇到两个模块的未解决的依赖性错误 .

我怎样才能做到这一点?我是否需要实现一种新类型的ArtifactRespository来解决此自定义依赖项方案?

更新:我遇到了WebJars(http://www.webjars.org/),它对我特定的javascript依赖项很有意思,但是如果可能的话,我想知道如何在没有Maven / Ivy repo的情况下做到这一点 .

更新第2部分:Gradle似乎不支持这一点,即使它声称支持常 Spring 藤 . 我能够使用本地ivy模块文件和指向远程工件的自定义URL并将文件下载到本地缓存来使用Gant / Ivy . 您可以使用任意文件(例如Javascript文件)执行此操作 .

1 回答

  • 3

    我不确定是否真的实现了 artifact.url 的使用;我've never seen it used in a build. Gradle'的依赖解析机制适合与Maven和Ivy存储库交互 . 据我所知,从任意URL下载它不是一个可行的选择 .

相关问题