我们的组织目前使用一种被破解的 Java 依赖管理形式,有效地依赖于 IDE 配置,然后维护可以检出的这些配置的存储库。我们有多种依赖关系;其中一些是来自第三方的 .jar,而另一些是内部开发的项目(用 Eclipse 用语)或模块(用 IntelliJ 用语)。我们没有交付给的“客户”,也没有开源社区(我们是研究实验室),因此我们通常不会生成任何工作的二进制文件。基本上,我们所有的内部代码总是从源头工作。但是,这会带来一些问题:
- 这不会转化为我们的 CI 服务器,这意味着我们还必须维护一个 Ant 脚本存储库,以识别类路径上的源依赖项,以便 Bamboo 能够正确构建。这很烦人。
- 此方法不是跨 IDE;我们的一些开发人员更喜欢 Eclipse,而其他开发人员更喜欢 IntelliJ IDEA。如果通过让我们的开发人员选择他们选择的环境来提高他们的工作效率,我们不想妨碍这一点。
- 这种方法本身就很脆弱。如果有人创建了一个新项目,那么我们必须花费大量时间摆弄 Bamboo 的 Ant 脚本并重新导出我们的 IDE 配置。
我想让我们的研究人员转向更软件工程师的方法,例如自动构建/依赖管理,这将允许 IDE 和我们的 CI 设置之间的可移植性,但从我阅读 Maven 和 Ivy 的教程来看(还没有花太多时间看其他工具)一般的想法是定义二进制依赖项,带有选项将源代码拉到您的 .m2 或 .ivy2 中作为额外的,但不是作为依赖管理的唯一方法。理想情况下,我们将能够使用其中一个工具来处理来自第三方的二进制依赖关系以及我们的内部源依赖关系,方法是指向我们的内部版本控制。现有工具可以做到这一点,还是有一个我不知道的工具可以做到这一点?
编辑
也许更好的方式来说明我正在寻找的东西不仅仅是为了触发构建的依赖管理,而且在初始化一个新的开发环境时管理依赖。查看项目 A,您的依赖管理器会检查所有相关的本地源和第三方 .jar;在 Java 中,这与构建并没有那么远,因为大多数 IDE 都是围绕类路径/依赖项管理的有效 GUI,并带有一个花哨的文本编辑器,所以我认为这个请求并没有那么牵强,但我可能没有想到关于它已经够难了。