【发布时间】:2016-11-15 09:03:00
【问题描述】:
拥有多个相互关联的独立项目是常见的用例。例如一些常用的实用程序库。使用 Maven,您可以在本地安装修改后的依赖项,以便在构建依赖项目时使用它。我总是认为这种功能是理所当然的(IDE 也支持这一点)。
但是对于 Gradle,我没有发现任何类似的功能。我不想为了能够在本地安装工件而进行本地 Maven 安装(那么 Gradle 的意义何在)。我也不想依赖 CI,因为在开发过程中程序员喜欢迭代直到他们对 API 满意为止。仅仅为了在我们的 Nexus 中编译和安装它,就会有许多无用的提交。
是否有任何最佳实践来管理不共享公共根的本地开发或相关项目?
【问题讨论】:
-
我相信你认为理所当然的事情实际上违反了 Maven 旨在提供的东西:可重复构建。无论如何,Gradle 相当于 Maven 本地 repo,在某些方面,是您本地家庭中
.gradle下的缓存。 -
我理解你的意思,但就本地开发而言,必须使用 CI 进行迭代工作将是性能和存储库的噩梦。据我了解,Gradle 缓存不是解决方案。它仅用作缓存,不应将工件安装到其中。
-
我不明白你的意思。无论如何,为什么不在你的 gradle 配置中添加一个本地目录的存储库呢?或者简单地将
mavenLocal()添加为您的存储库之一 -
我基本上只是在寻找相关项目本地开发的最佳实践。如果您坚持本地存储库方法原则上存在缺陷,那么您的工作方式是什么?我已经使用 Gradle 搜索了一些指南,我能找到的最好的方法是使用 CI 和您的公司存储库。但由于上述原因,这似乎有点矫枉过正。
-
Maven 本地是使用 Ant 任务解决的,您必须使用正确的存储库路径设置 .m2/settings.xml。因此,您在同一台机器上拥有一种依赖于另一个构建系统的构建系统。 Gradle 也通过 Composite 构建部分解决了这个问题。但它们没有传递性。
标签: gradle