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

标签 gradle

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

我正在尝试使用 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 文件放置在本地存储库中。但是,我遇到了两个模块的 Unresolved 依赖错误。

我怎样才能使这项工作?我是否需要实现一种新类型的 ArtifactRespository 来解决这个自定义依赖方案?

更新:我遇到了 WebJars ( http://www.webjars.org/ ),这对我的特定 javascript 依赖项很有趣,但如果可能的话,我想知道如何在没有 Maven/Ivy 存储库的情况下执行此操作。

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

最佳答案

我不确定是否使用 artifact.url真正落实;我从未见过它在构建中使用过。 Gradle 的依赖解析机制旨在与 Maven 和 Ivy 存储库进行交互。据我所知,从任意 URL 下载不是一个可行的选择。

关于Gradle:使用自定义远程工件 URL 创建依赖模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19027384/

相关文章:

android - 编译具有多个版本的依赖项的项目

c++ - 有没有一种方法可以强制gradle一次只为一个项目编译c++代码(并且只有它)?

java - Delombok 源代码添加了 jar 依赖项

gradle - 如何在Gradle构建脚本中解析依赖项扩展

c++ - Nix Gradle dist - 无法为 Linux amd64 加载 native 库 'libnative-platform.so'

java - 使用 gradle 与 spring mvc 进行 Bootstrap

java - Heroku上带有gradle的Java Servlet项目未运行

android - 错误 : Could not find an installed version of Gradle either in Android Studio, 或在您的系统上安装 gradle wrapper

android - Facebook Audience Network 无法解析

Gradle fat jar _遗漏_子 jar 中的 META-INF?