Gradle:为ivy解析的依赖项向文件名添加版本

Gradle:为ivy解析的依赖项向文件名添加版本,gradle,version,filenames,rename,ivy,Gradle,Version,Filenames,Rename,Ivy,我正在使用本地常春藤存储库,如下所示: repositories { ivy { url = "${project.rootDir.absolutePath}/../ivy/ivy-repositories/shared/" layout "pattern", { artifact "[organisation]/[module]/[revision]/[type]s/[artifact].[ext]" ivy "[organisation]/[

我正在使用本地常春藤存储库,如下所示:

repositories {
ivy {
    url  = "${project.rootDir.absolutePath}/../ivy/ivy-repositories/shared/"
    layout "pattern", {
        artifact "[organisation]/[module]/[revision]/[type]s/[artifact].[ext]"
        ivy "[organisation]/[module]/[revision]/ivy.xml"
    }
    resolve.dynamicMode = true
}
}
我正在使用分发插件并使用以下设置内容:

distributions {
main {
    contents {
          into ('libs')
        { from {
                project(':x-impl').configurations.runtime
            } }
 }
 }
我的问题是,已解析工件JAR的文件名缺少版本。Ie“commons-codec.jar”而不是“commons-codec-1.6.jar”。在我的Eclipse类路径和发行版中

有没有办法让版本成为文件名的一部分?我无法轻松更改本地常春藤存储库的布局/模式

这个问题最初是在gradle社区提出的,但没有得到回答:

谢谢,
安德烈亚斯

这需要努力。您也许可以迭代工件,检查中的Configurationincoming和ConfigurationresolvedConfiguration API,将相应的文件添加到from,并根据工件信息重命名文件,也许可以使用CopySpecrename,搜索重命名。或者你可以使用一个from和rename,在后者中查找相应的工件和版本。谢谢回复。似乎我们在使用一种非实际但标准化的常春藤回购模式时有点卡住了。在ivy+ant中,我们可以先执行文件系统解析模式,然后执行检索模式,从{artifact}.{ext}到{artifact}-{rev}-{type}.{ext}。除了上述问题之外,我们还有一个问题,即src、javadoc和bin类型工件在wars和eclipse类路径中获得相同的文件名。你还有其他建议吗?向Gradle提出的功能请求是否合适,是否可能实现?您是否参与了