如何使用Gradle开发库和使用它的程序

时间:2017-09-15 10:11:13

标签: java gradle

我有一个库和一个程序,在我的控制下并使用Gradle构建。什么是同时开发这两者的最佳方式?

我已经设置了一个私有maven存储库来分发库并且它正在工作,但我不想在开发过程中每次做一些小实验时都向该存储库发布。它对图书馆的用户来说很慢并且具有破坏性。

我尝试将jar安装到本地maven资源库,如下所述:Gradle alternate to mvn install但是使用该库的项目没有获取新安装的版本。

3 个答案:

答案 0 :(得分:1)

我认为,如果有可能,您可以尝试使用multi-project builds。但是,您可能需要重新构建当前项目,以成为同一个新项目的模块。

答案 1 :(得分:1)

最好的方法似乎是通过添加以下内容使一个项目包含另一个项目:

if (file("../libraryproject").exists()) {
    includeBuild "../libraryproject"
}

到使用该库的项目的settings.gradle文件。这可以提交给源代码仓库,因为当该目录不存在时,依赖关系将以传统方式包含。

这在Gradle世界中被称为复合构建,IntelliJ似乎正确处理并且theres'a录制的网络广播显示整个设置:https://www.youtube.com/watch?v=grPJanXfRPg

答案 2 :(得分:0)

  

同时开发这两者的最佳方法是什么?

这取决于团队的组织方式和政策 当然,如果团队可以使用git repo并访问源代码,则只需使用git,而无需在maven服务器上为每次提交或推送推送新版本。
否则,如果其他用户只能使用最终库,则必须在maven服务器上推送该版本。

  

我已经建立了一个私有存储库来分发库并且它正在工作,但是我不希望在开发过程中每个小实验都发布到该存储库。这对图书馆的用户来说是缓慢而且具有破坏性的。

每个maven repo都有2个不同的存储库:

  • 释放
  • 快照

通常发行版repo仅用于稳定版本,快照仓库用于发布少量更改,测试版发布等。
在任何情况下,都不需要在maven仓库中推送代码中的每个更改(这是您的选择)

  

这很慢

上传工件的时间通常不是很大,无论如何,您可以评估使用CI服务器推送maven仓库中的版本。