Gradle 如何解释 Ivy 自定义布局?

How are Ivy custom layouts interpreted by Gradle?

我已经声明了自定义 ivy 存储库布局:

repositories {
    ivy {
        url "https://myurl.com/root/"
        layout 'pattern', {
             artifact "[organisation]/[name]-[version].[ext]"
        }
    }
}

然后我声明一个依赖项:

dependencies {
   compile 'mygroup:myartifact:0.1@zip'
}

但由于某种原因它不起作用,Gradle 没有找到依赖项,它似乎在错误的地方查找:https://myurl.com/root/mygroup/[name]-[version].zip

我也试过做一些花哨的事情,例如:

dependencies {
   compile module ('mygroup:myartifact:0.1@zip') {
      artifact {
         name = 'myartifact'
         ...
      }
   }
}

但是也没用。

如何正确定义布局模式,使其被Gradle很好地解读?

当您使用 '<group>:<artifact>:<version>(@<ext>)' 指定依赖项时,Gradle 将以下映射应用于模式:

  • <group> 替换 [organisation]
  • <artifact> 替换 [module]
  • <version> 替换 [revision]
  • <ext> 替换 [ext]

所以在你的情况下,你的模式应该是这样的:

artifact "[organisation]/[module]-[revision].[ext]"

感谢@RaGe his answer