我有一个库和一个程序,在我的控制下并使用Gradle构建。什么是同时开发这两者的最佳方式?
我已经设置了一个私有maven存储库来分发库并且它正在工作,但我不想在开发过程中每次做一些小实验时都向该存储库发布。它对图书馆的用户来说很慢并且具有破坏性。
我尝试将jar安装到本地maven资源库,如下所述:Gradle alternate to mvn install但是使用该库的项目没有获取新安装的版本。
答案 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仓库中的版本。