我大约一周学习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可能会带来什么好处(乍一看这似乎是一个坏主意)?
提前致谢,
鲍勃
答案 0 :(得分:1)
尽管Gradle与Maven合作,但仍保持一定的距离。
Gradle会保留自己的工件副本,以便长期使用,以消除由于外部Maven存储库中的更改而可能发生的大量难以调试的问题。如今磁盘空间很便宜,所以罐子的重复不会被认为是太大的问题。在任何情况下,您都不需要使用本地Maven存储库来使用Gradle。
值得注意的是,Maven代码不受Gradle开发人员的控制,并且历史上一直受到可靠性问题(破坏升级等)的困扰。
回答有关如何整理代码的问题。我将建立一个多项目Gradle构建,并让项目相互依赖。 Gradle eclipse插件将自动创建相应的.classpath
文件。
project(':webapp') {
dependencies {
compile project(':commonjar')
}
}