我希望我的构建配置使用传统的存储库管理(组,版本解析等),但我的构建也不依赖于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仓库的情况下这样做。
更新第2部分:看来Gradle不支持这一点,即使它声称支持常春藤。我能够使用本地ivy模块文件和指向远程工件的自定义URL并将文件下载到本地缓存来使用Gant / Ivy。您可以使用任意文件(例如Javascript文件)执行此操作。
答案 0 :(得分:3)
我不确定artifact.url
的使用是否真正实现了;我从未见过它在构建中使用过。 Gradle的依赖解析机制适用于与Maven和Ivy存储库交互。据我所知,从任意URL下载它不是一个可行的选择。