2012-02-01 86 views
0

我是否应该提交整个代码库以及POM,并让用户一次签出多个项目,其中一个包含多个模块?我应该如何在SCM中配置我的MAVEN项目?

我是否应该只提交POM,并在每个POM中配置SCM信息?

当您配置maven SCM插件时,提交/签出如何工作?你是否通过颠覆存储了POM,将它们检出,然后实现POM,Maven会将相应文件的其余部分下载到该项目中?如果你需要添加新文件,但是你通过maven使用SCM呢?

我对使用svn(标准方式)存储文件和基于每个存储SCM信息之间的差异感到非常困惑。似乎没有关于如何使用Maven和加载SCM信息的文档。

最好是直接在POM中存储SCM信息,还是像我之前说的那样,我应该只是将整个项目添加到SVN中,包括它们各自的POM?

还是将SCM信息直接嵌入到maven中,让maven实现所述项目更好? Maven SCM插件是否可以很好地与subclipse配合使用?例如 - 在你从maven POM中“物化”一个项目之后,它是否从SVN导入项目文件,然后在eclipse中将它们显示为版本控制之下?如果我将SCM信息嵌入到Maven POM中,那么我会只为我的pom文件创建一个单独的SVN回购?或者我只是将所有的POM文件直接放在我的工程回购的主干中?

希望有人能帮我澄清这一点。我很困惑。谢谢!

回答

2

始终在SCM中提交所有源代码。否则,你没有你的源代码的历史。

还在SCM中提交你的pom,否则你没有应该如何构建它的历史。这样的历史对于构建软件的旧分支至关重要,并且由于构建和源代码紧密结合,因此将pom.xml提交到源代码所在的存储库是一个不错的主意。

为了便于其他maven工具,您可能想在pom.xml中提到您的SCM。这是可选的,但我强烈建议你这样做。这允许CI系统验证他们的源代码副本是最新的,并在必要时为他们提供检查新副本所需的配置。

我不知道任何工具或插件,实际上检查代码为您。如果你没有检入你的源代码,那么所有其他的工具都会检出一个简单的pom.xml(因为这就是SCM中的全部),SCM引用将不能告诉任何人源代码代码是(因为它不在SCM中)。

+0

我认为它被称为Bootstrapping。但我不确定 – 2012-02-02 14:43:37

+0

当我将项目存储在SVN中时,我没有包含eclipse .project设置和其他自动生成的其他东西。我是否也应该提交eclipse项目?当你通过svn(import> import from svn)检出我的maven项目并选择“check out as workspace in the workspace”时,它不会将其识别为maven/java项目。它只是显示了POM和文件,但没有任何Maven支持。但是,如果我将项目签出为Maven项目,那么它可以工作,但它不会将文件显示为受SVN控制。有点奇怪。我错过了什么? – 2012-02-02 14:48:43

+0

@SamLevin,通常我不检查日食。项目设置,因为任何对项目的修改(包括设置运行时配置参数)往往会在执行svn更新时被擦除,或者在执行svn commit时传播不合需要。但是,分发文件非常有用,可以方便初始设置(并避免手册详细说明要设置什么项目以及在哪里设置)。因此,我制作了一个文件夹,将配置文件放置在正常位置之外,并在其中放置一个“设置”脚本,将其复制到适当的位置。 – 2012-02-02 17:15:16

相关问题