我有兴趣为我的组织维护一个Maven 2 存储库。有哪些有用的提示和陷阱。
在发布代码时,用户在设置从存储库下载或发布自己的工件到存储库的标准时应遵循哪些准则?你对这类事情有什么样的治理/规则?您在开发人员指南/文档中包含了哪些内容?
更新:我们已经建立了 Nexus 并且对它非常满意 - 遵循了 Sal 的大部分指导方针并且没有遇到任何问题。此外,我们通过 Hudson CI 服务器限制了部署访问和自动构建/部署快照工件。Hudson 可以分析所有上游/下游项目的依赖关系,因此如果编译问题、测试失败或其他一些违规行为导致构建中断,则不会发生部署。不要在 Maven2/Maven3 中进行快照部署,因为元数据在两个版本之间发生了变化。“仅 Hudson”快照部署策略将缓解这种情况。我们不使用发布插件,但围绕版本插件编写了一些管道当要移动快照以释放时。我们还使用 m2eclipse,它似乎与 Nexus 配合得很好,因为从设置文件中它可以看到 Nexus 并且知道从那里索引工件信息以进行查找。(尽管我不得不调整其中一些设置以使其完全索引我们的内部快照。)如果您有兴趣这样做,我还建议您将带有工件的源 jar 部署为标准做法。我们在超级 POM 中配置它。
更新2:我遇到了这个 Sonatype 白皮书,其中详细介绍了采用/成熟度的不同阶段,每个阶段都有不同的 Maven 存储库管理器的使用目标。