本文介绍了使用Gradle的“Artifact only notation”带有自定义工件名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  code>,因为我的工件名称不仅与模块名称的后缀不同。

解决方案

原来,正确的语法来指定名称与模块名称不同的工件的依赖关系,作为。为了将上述URL中的 [artifact] 替换为 [module] 以外的其他内容,将依赖项声明为如下所示:

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

编辑:以下是该功能的官方文档, a href =http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.dsl.DependencyHandler.html#N15F3A =nofollow noreferrer>高级依赖关系配置部分。


I'd like to use the Artifact only notation to download a single artifact whose filename is completely different from the module name. My Ivy artifact pattern is configured as:

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

However, the "Artifact only notation" seem to only support:

  • group (maps to [organization]),
  • name (maps to [module]),
  • version (maps to [revision]),
  • ext (maps to [exp]) and
  • classifier (maps to [classifier], not used here).

The [artifact] part of the URLs seems to always be replaced with name.

Is there a way to explicitly set in Gradle what [artifact] gets replaced with in the URL? In plain Ivy XML I'm able to achieve this by specifying an artifact tag with the name attibute set inside the dependency tag.

My question is somewhat related to this question except that I do not have a server-side ivy.xml file and I cannot use the trick to misuse the classifier because my artifact name does not just differ in a suffix from the module name.

解决方案

Turns out that the correct syntax to specify a dependency on a artifact whose name is different from its module name is given as part of this example. In order to get [artifact] in the URL above replaced with something else than [module], declare the dependency as follows:

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

Edit: Here are the official docs for that feature as part of the Advanced dependency configuration section.

这篇关于使用Gradle的“Artifact only notation”带有自定义工件名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 23:06