为什么gradle使用2个本地缓存?

时间:2013-11-14 16:54:47

标签: java eclipse gradle

我大约一周学习Gradle,到目前为止我真的很喜欢这个工具。但是有一点我不是特别喜欢,我想知道它是否是我自己的误解。以下是事实:

1)我有2个项目:commonjar和webapp。 Webapp需要commonjar。
2)build.gradle在repo部分中都不包含mavenLocal() 3)在commonjar上的'gradle clean install'将jar放在.m2 repo中 4)webapp上的'gradle cleanEclipse eclipse install'从nexus下载旧版本的jar并将其放在.gradle repo中,并将eclipse类路径设置为使用较旧的.gradle版本。

以下是我的问题:

无论我尝试什么,我似乎都无法让eclipse使用最新的本地版commonjar。

1)我是否应该努力尝试“gradle install”将普通的jar推到.gradle? 2)或者更好的方法是在webapp项目中找到'gradle eclispe'的方法,使用最终在.m2回购中的jar?
3)最后,我同时拥有.m2和.gradle可能会带来什么好处(乍一看这似乎是一个坏主意)?

提前致谢,
鲍勃

1 个答案:

答案 0 :(得分:1)

尽管Gradle与Maven合作,但仍保持一定的距离。

Gradle会保留自己的工件副本,以便长期使用,以消除由于外部Maven存储库中的更改而可能发生的大量难以调试的问题。如今磁盘空间很便宜,所以罐子的重复不会被认为是太大的问题。在任何情况下,您都不需要使用本地Maven存储库来使用Gradle。

值得注意的是,Maven代码不受Gradle开发人员的控制,并且历史上一直受到可靠性问题(破坏升级等)的困扰。

回答有关如何整理代码的问题。我将建立一个多项目Gradle构建,并让项目相互依赖。 Gradle eclipse插件将自动创建相应的.classpath文件。

project(':webapp') {
    dependencies {
        compile project(':commonjar')
    }
}