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

Gradle:使用自定义远程工件URL创建依赖项模块,gradle,Gradle,我希望我的构建配置使用传统的存储库管理(组、版本解析等),但也不要让我的构建依赖于Maven或Ivy描述符文件 我正试图用Gradle中的ClientModule实现这一点。文档说明了这一点,可以通过在构建文件中声明模块的元数据来实现 这就是我所拥有的: repositories { //no external repos } dependencies { runtime module("org.lessjs:lessjs:1.4.1") { transiti

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

我正试图用Gradle中的ClientModule实现这一点。文档说明了这一点,可以通过在构建文件中声明模块的元数据来实现

这就是我所拥有的:

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(),这对于我特定的javascript依赖性来说很有趣,但是如果可能的话,我想知道如何在没有Maven/Ivy repo的情况下做到这一点


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

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

似乎可以在常春藤中配置非标准URL,所以我想知道是否有办法通过Gradle触发这种行为。这可能是格拉德尔的常春藤遗产留下的。我不认为它能起作用。好吧,要使这个工作与本地元数据,但远程工件,然后我需要使用一个本地常春藤repo与一个自定义常春藤描述符,引用远程工件。这是目前最好的路由吗?无论是否使用客户端模块依赖项,都不能使用任意下载URL。URL由模块ID、组ID、版本以及Ivy存储库中的工件模式构成。对于像JQuery这样的东西,您可能必须首先将其发布到您的Ivy/Maven repo,然后您可以以通常的方式引用它。我希望我的构建系统是可移植的,无需维护存储库,同时也可以获取最新的文件。源文件应该来自它们各自的项目URL。您对实施的看法是正确的。。。Gradle没有使用Ivy来解决工件,而是进行工作,并且没有实现非本地artfifacts的概念。是否可以在ivyservice包中编写自定义适配器来修补此功能?Gradle支持Ivy存储库,而不是Ivy本身。这里有一个很好的答案: