通常的用例是拥有多个相互关联的独立项目。例如一些常见的实用程序库。使用Maven,您可以在本地安装修改后的依赖项,以便在构建依赖项目时使用它。我总是把这个功能视为理所当然(IDE也支持这一点)。
但是对于Gradle我没有找到任何类似的功能。我不想让本地Maven安装(然后是Gradle的重点)只是为了能够在本地安装工件。此外,我不想依赖CI,因为在开发过程中,程序员喜欢迭代直到他们对API感到满意为止。在我们的Nexus中编译和安装它会有很多无用的提交。
是否有最佳实践如何管理不共享根目录的本地开发或相关项目?
答案 0 :(得分:0)
首先,您可以在mavenLocal()
中发布/引用jar而不安装Maven
(它只是一个gradle知道如何读/写的目录)
其次,Gradle将为您的构建中的每个PublishToMavenLocal创建一个MavenPublication任务,以便您可以调用这些任务来安装%USER_HOME%/.m2
第三点......忘掉我的第一点和第二点。如果您不想使用mavenLocal()
,可以使用Gradle 3.1中添加的新composite build功能。在我看来,这个功能远比mavenLocal好,因为永远不会在到期时间之后远程获取快照jar,而是始终使用本地源。对于本地安装的快照罐已经过期的maven,这已经让我多次绊倒了