我有gradle这个建一个项目,发布一个神器本地常春藤库。从历史上看,我们纯粹用flatDir存储库来使用gradle,因为我们希望将所有东西都保存在本地。但是,我开始看到使用常青藤复制各处生成的工件的好处。如何在gradle中发布到常春藤库时解决flatDir瞬态依赖关系?
我可以发布神器轻松常春藤,但使用的存储库等项目在其短暂的flatDir依赖性不拉这件神器。
我试图找出处理这些短暂的依赖关系的最佳途径。很显然,任何使用神器的人都需要他们,因为他们拥有神器使用的类。我应该将我的神器的临时依赖发布到常春藤吗?什么是最好的方法来做到这一点?
我已经试过(我认为黑客攻击)与宣布在flatLib目录罐子的人工制品本身:
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的”),但与在依赖关系部分没有组定义,因此,在的ivy.xml中的条目不具有有机值,即
<dependency org="" name="antlr" rev="3.4" conf="compile->default"/>
我想我错过了一些东西,任何帮助将不胜感激关于如何混合flatDir和常春藤。
我应该迁移flatDir依赖常春藤,使他们正确解析,然后我可以改变我的体型只使用常春藤库它发布到作为源呢?我真的不能想到一个更好的办法,但如果我这样做,它会在相当多的影响,每个依赖将不得不搬出主项目目录的lib目录中,常春藤,我只是真的想使用常青藤资源库来管理我们生成的工件,而不是第三方库。