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
我已经声明了自定义 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