0

我学习 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 项目中找到一种方法来使用 .m2 存储库中的 jar 来实现“gradle eclispe”?
3) 最后,同时拥有 .m2 和 .gradle 有什么好处(乍一看,这似乎是个坏主意)?

在此先感谢,
鲍勃

4

1 回答 1

1

尽管 Gradle 可以与 Maven 一起使用,但它仍然保持一定距离。

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

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

回答您关于如何组织代码的问题。我会建立一个多项目 Gradle 构建并让项目相互依赖。Gradle eclipse 插件会自动创建相应的.classpath文件。

project(':webapp') {
    dependencies {
        compile project(':commonjar')
    }
}
于 2013-11-14T17:04:00.493 回答