2012-08-24 45 views
1

我有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目录中,常春藤,我只是真的想使用常青藤资源库来管理我们生成的工件,而不是第三方库。

回答

1

为了完整起见,我无法找到一个体面的解决方案,并最终在this article的帮助下将所有lib/jar文件移动到常春藤。不过,这个问题最终给我赢得了风滚草奖!

相关问题