使用Gradle" Artifact only notation"使用自定义工件名称

时间:2014-07-23 10:38:06

标签: gradle ivy

我想使用Artifact only notation下载一个文件名与模块名完全不同的工件。我的常春藤工件模式配置为:

ivy {
    artifactPattern 'http://host/[organization]/[module]/[revision]/[artifact]-[revision].[ext]'
}

然而,“Artifact only notation”似乎只支持:

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

网址的[artifact]部分似乎始终被name替换。

有没有办法在Gradle中明确设置在URL中替换[artifact]的内容?在简单的常春藤XML中,我可以通过在name标记内设置dependency属性来指定artifact tag来实现此目的。

我的问题与this question有些相关,除了我没有服务器端ivy.xml文件,我不能使用这个技巧滥用classifier,因为我的工件名称没有只是模块名称的后缀不同。

1 个答案:

答案 0 :(得分:4)

结果是this example的一部分给出了正确的语法来指定对名称与其模块名称不同的工件的依赖关系。为了使上面的网址中的[artifact]替换为[module]以外的其他内容,请按以下方式声明依赖关系:

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

修改:以下是该功能的官方文档,作为Advanced dependency configuration部分的一部分。