使用Gradle的“仅工件符号”和自定义工件名称

ssc*_*rth 4 ivy gradle

我想使用仅工件的符号来下载其文件名与模块名称完全不同的单个工件。我的常春藤工件模式配置为:

ivy {
    artifactPattern 'http://host/[organization]/[module]/[revision]/[artifact]-[revision].[ext]'
}
Run Code Online (Sandbox Code Playgroud)

但是,“仅工件”符号似乎仅支持:

  • group(映射到[organization]),
  • name(映射到[module]),
  • version(映射到[revision]),
  • ext(映射到[exp])和
  • classifier(映射到[classifier],此处未使用)。

[artifact]网址的部分似乎总是被替换name

有没有一种方法可以在Gradle中显式设置[artifact]URL中替换为什么?在普通常春藤XML我能够通过指定一个实现这个神器标签name内部attibute设置dependency标签。

我的问题与该问题有些相关,除了我没有服务器端ivy.xml文件,而且我无法使用技巧来滥用,classifier因为我的工件名称不仅仅是后缀与模块名称不同。

ssc*_*rth 5

事实证明,在本示例中给出了用于指定名称与模块名称不同的工件的依赖项的正确语法。为了获取[artifact]上面的URL而不是[module],请声明依赖项,如下所示:

compile ('group-or-org-name:module-name:module-version') {
    artifact {
        name = 'artifact-name-different-from-module-name'
        type = 'type-must-not-be-null'
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:这是该功能的正式文档,作为高级依赖项配置部分的一部分。