Maven scm和svn

时间:2016-03-07 19:43:17

标签: maven svn maven-scm

我无法通过Maven访问svn版本号。我从SCM使用页面收到的唯一真正帮助如下:

<scm>
    <connection>scm:svn:http://somerepository.com/svn_repo/trunk</connection>
    <developerConnection>scm:svn:https://somerepository.com/svn_repo/trunk</developerConnection>
    <tag>HEAD</tag>
    <url>http://somerepository.com/view.cvs</url>
</scm>

这对我来说没有任何意义,因为我无法弄清楚什么是连接,developerConnection和url是什么意思。我只需将所有3个元素的url插入我的仓库。我也不知道为什么Maven没有问我存储库的用户名和密码。

我是Maven的新手,可能会问一个非常基本的问题,但我会非常感谢我如何访问svn repo。

2 个答案:

答案 0 :(得分:1)

首先,我首先澄清 Maven 的使用情况,这似乎会导致您的情况混淆:

  

Apache Maven 是一个软件项目管理工具......可以管理项目的构建。

Apache Maven 与您的修订被推送到您的源代码管理系统(在您的情况下是 SVN )无关。

通常,您将通过IDE( Eclipse IntelliJ IDEA 等)或通过命令行将更改推送到 SVN 存储库,以任何方式赢得通过 Maven 推送这些更改,在这种情况下,您将打破其使用目的。< / p>

现在问题是,为什么您可能需要那些与SCM相关的属性? 答案很简单,应该是相关的,因为 Maven 是一个项目构建工具,它必须处理你的项目发布周期,这是项目构建周期的最后一部分......它不会是由于您使用的是 SCM 远程存储库,因此无需更新远程项目信息即可以连贯的方式完成此任务。

现在回到那些与 SCM 相关的属性,它们是什么意思:

  • 连接 SCM 存储库的URL连接端点,仅用于读取访问。
  • developerConnection SCM 存储库的URL连接端点,用于写入访问。 (毕竟,开发人员角色的目的是什么,将更改推送到存储库)。
  • 标记 :它指定项目所在的标记,并且我只看到 HEAD 在那里使用并假设将是默认值。
  • url :它指定可浏览存储库,例如通过 viewvc <的存储库/ strong>(在大多数情况下,您可以使用 / viewvc / 替换连接URL下的 / svn / 路径)

答案 1 :(得分:0)

SCM S oftware C onfiguration M 管理,也称为 S C ode / C ontrol M 管理或简洁的版本控制)是任何健康项目的组成部分。如果您的Maven项目使用SCM系统(确实如此,不是吗?)那么您可以在此处将该信息放入POM中。

connectiondeveloperConnection:这两个连接元素传达了如何通过Maven连接到版本控制系统。如果connection需要Maven的读访问权才能找到源代码(例如,更新),developerConnection需要一个能够提供写访问权限的连接。 Maven项目催生了另一个名为Maven SCM的项目,该项目为任何希望实现它的SCM创建了一个通用API。最受欢迎的是CVS和Subversion,但是,其他支持的SCM越来越多。所有SCM连接都是通过通用URL结构进行的。

scm:[provider]:[provider_specific]

提供者是SCM系统的类型。例如,连接到CVS存储库可能如下所示:

scm:svn:https://somerepository.com/svn_repo/trunk

tag:指定此项目所在的标记。 HEAD(意思是SCM根目录)应该是默认值。

url:可公开浏览的存储库。例如,通过ViewCVS。

Source