如何为每个团队成员在unix中设置java的开发环境

之前我曾经在Ruby on Rails上工作过。 我们所有的开发人员都曾经从docker中获取最新的图像。 一旦docker启动并运行,我们就可以在本地进行开发。 一旦代码更改完成,我们就会推送到我们各自的git分支,一旦合并完成,我们就会部署到生产环境中。 该应用程序在Heroku上托pipe。

(正如你可以看到所有的开发者使用他们自己的本地副本,Postgress数据库configuration和虚拟数据已经设置为本地)

现在作为一个新创业公司,我们使用java,spring,hibernate,quartz。

我们想要build立和我在开始讨论时一样的架构。

我在谷歌寻找解决scheme。 许多作者和文章build议使用jenkins和github,但是没有一篇文章提到完整的开发环境设置过程,即每个开发人员都可以独立工作。

主要目标-

  1. 每个开发者都必须得到他/她自己的本地副本并在其上工作(Java)
  2. 在本地预configuration数据库
  3. 转储虚拟数据
  4. 部署过程 (什么是最好的Java应用程序的托pipe服务,如heroku for rails)

最终目标:新来的客户端运行一个shell脚本,整个开发环境都是为他设定的,他可以在同一天开始为项目做贡献。

考虑到Java是一个启动,数据库的性能,成本和可靠性与Java应该使用哪个数据库? (Mysql或posstgresql或任何其他)

考虑到这是一个启动,数据库的性能和成本以及与Java的可靠性,应该再次使用哪个操作系统? (Ubuntu或Windows,目前我们在Ubuntu上)

在使用java,spring,hibernate,quartz技术的时候,为每个开发者设置完整的独立开发环境,最好的解决scheme是什么

我会回答我们曾经在之前的一个创业公司做过的事情。 为我们工作得很好,也许还有其他更好的select。

  • Postgres是一个很好的分贝。
  • 我们在本地使用Centos来生产Fedora,所以它将是同一个linux系列。 无论如何,我没有看到任何理由使用Windows进行开发。
  • 你可以使用hibernate从你的java pojo实体创build数据库模式和表。
  • 我们有预先填充某些表所需值的脚本。 例如用户表。
  • 所有的脚本被集成到执行maven命令来运行。
  • 我们使用脚本来创build开发环境,configuration本地apache httpd代理和许多其他的东西。 这可能相当复杂。
  • 我们使用Artifactory来保存和caching当前和以前的Maven构件,包括我们的产品和我们的Maven依赖项。
  • 至于石英,这应该不成问题。 注意到Spring和Quartz的集成,使用它。
  • 我们使用本地的Gitlab作为我们的回购。
  • 我们使用本地托pipeJenkins作为我们的CI。