0

我们正在开发(使用 eclipse)一个大型企业应用程序,其中有多个开发人员,每个开发人员都在不同的模块上工作,但是每个模块都相互依赖;目前我们使用共享的 SVN,每个开发人员都在同步他们的所有代码。

现在,随着我们的团队和代码的增长,我们需要保护我们的知识来源,因此我们正在寻求一种解决方案,每个开发人员都可以拥有自己的私有 SVN,但是编译器应该能够读取(使用加密密码)从其他远程模块。有没有办法做到这一点?

我正在考虑使用 maven,但我有以下问题;

  1. 我们可以建立自己的受密码保护的 Maven 存储库吗?

  2. 我们如何保护本地构建文件夹,有没有办法让 maven 生成一个受密码保护的本地构建,然后在编译后清理和销毁?

谢谢你的帮助。

4

1 回答 1

1

一个项目不是真正的项目,除非它的所有代码都位于同一个源代码存储库中。

满足您要求的最佳方式是将您的项目分成逻辑上独立的子项目,然后让每个开发人员编译他们的 jar 文件并将其部署到一个通用的 Maven 存储库中。通过这种方式,开发人员共享已编译的二进制文件而不是源代码。

可以配置一个中央 Jenkins 实例来构建所有项目(前提是允许单台机器访问所有 subversion 存储库)。

复杂的?你贝奇亚!您将面临的一些具有挑战性的问题:

  • 依赖于模块之间的 SNAPSHOT 修订。这些会导致不稳定和难以重现的构建/问题(移动球门柱)
  • 实际上,这不再是一个单一的项目。每个子项目最终都需要单独的发布管理,因为无法再集中跟踪和分配问题。
  • 控制谁有权访问哪个 Subversion 存储库将成为一项挑战。提前计划并设置 LDAP 组,因为在某些阶段,当最终要求开发人员相互协作时,他们将需要访问其他模块。

我会怎么做?跟随所有成功的开源项目的架构领导并管理中心核心产品。设计一种扩展机制,使第 3 方能够通过插件扩展您的产品。

您可能没有对遗留项目进行重新设计的奢侈,但您已经面临采用这些新安全要求的挑战......我很同情,企业计算的乐趣......

于 2012-05-31T22:29:44.060 回答