发布到gradle中的常春藤存储库时,如何解决flatDir暂时依赖关系?

发布到gradle中的常春藤存储库时,如何解决flatDir暂时依赖关系?,gradle,ivy,Gradle,Ivy,我有一个由gradle构建的项目,它将一个工件发布到本地常春藤存储库。从历史上看,我们纯粹将gradle与flatDir存储库一起使用,因为我们希望所有内容都保持本地。然而,我开始看到使用常春藤的好处,而不是到处复制生成的工件 我可以轻松地将工件发布到ivy,但是其他使用存储库拉入此工件的项目在其瞬态flatDir依赖项上失败 我正试图找出处理这些暂时依赖关系的最佳方法。很明显,任何使用工件的人都需要它们,因为它们有工件使用的类。我应该将临时依赖项和我的工件发布到ivy吗?最好的方法是什么 我试

我有一个由gradle构建的项目,它将一个工件发布到本地常春藤存储库。从历史上看,我们纯粹将gradle与flatDir存储库一起使用,因为我们希望所有内容都保持本地。然而,我开始看到使用常春藤的好处,而不是到处复制生成的工件

我可以轻松地将工件发布到ivy,但是其他使用存储库拉入此工件的项目在其瞬态flatDir依赖项上失败

我正试图找出处理这些暂时依赖关系的最佳方法。很明显,任何使用工件的人都需要它们,因为它们有工件使用的类。我应该将临时依赖项和我的工件发布到ivy吗?最好的方法是什么

我试过(我认为是一个黑客),在PARTILB DIR中声明瓶子作为工件本身:

group 'utils'

repositories {
    flatDir {
        dirs 'lib'
        name 'librepo'
    }
}

dependencies {
    compile ":antlr:3.4"
    // ...
}

artifacts {
    project.repositories.librepo.dirs.each { dir ->
        dir.eachFile {
            if (it.isFile()) {
                archives file(it)
            }
        }
    }
}
但是,包含工件的项目失败,因为flatDir文件上载到与主工件相同的组(在本例中为“utils”),但在dependencies部分中没有定义组,因此ivy.xml中的条目没有组织值,即

<dependency org="" name="antlr" rev="3.4" conf="compile->default"/>

我想我遗漏了一些东西,任何关于如何混合flatDir和ivy的帮助都将不胜感激


我是否应该将flatDir依赖项迁移到ivy以便正确解析,然后我可以将构建更改为仅使用它发布到的ivy存储库作为源?我真的想不出更好的方法,但如果我这样做,它将产生相当大的影响,因为每个依赖项都必须从主项目目录的lib dir迁移到ivy,我只想使用ivy存储库来管理我们生成的工件,而不是第三方库。

为了完整性,我找不到一个像样的解决办法,最后在我的帮助下把所有的lib/jar都搬到了常春藤。尽管如此,这个问题最终还是为我赢得了风滚草奖

为了完整起见,我找不到一个合适的解决方案,最后在我的帮助下把所有的lib/jar也移到了ivy。尽管如此,这个问题最终还是为我赢得了风滚草奖