2

我无法通过 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 插入到我的 repo 中。我也不知道为什么 Maven 不向我询问存储库的用户名和密码。

我对 Maven 非常陌生,可能会问一个非常基本的问题,但希望能得到关于我如何访问 svn 存储库的完整解释。

4

2 回答 2

1

首先,我将首先澄清Maven的用法,这似乎会导致您的情况感到困惑:

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

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

通常,您将通过 IDE(EclipseIntelliJ IDEA等)或通过命令行将更改推送到您的SVN存储库,并且您不会以任何方式通过Maven推送这些更改,在这种情况下,您将破坏其使用目的。

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

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

  • connection:到您的SCM存储库的 URL 连接端点,仅用于读取访问。
  • developerConnection:到您的SCM存储库的 URL 连接端点,将用于写入访问。(毕竟,这就是开发人员角色打算做的事情,将更改推送到存储库)。
  • tag:它指定了项目所在的标签,我只看到这里使用了HEAD并假设它是默认的。
  • url:它指定一个可浏览的存储库,例如通过viewvc的存储库(在大多数情况下,您可以将连接 URL 下的/svn/路径替换为/viewvc/
于 2016-03-19T11:14:12.987 回答
0

SCM软件配置管理,也称为代码/控制管理,或简而言之,版本控制)是任何健康项目不可或缺的一部分如果您的 Maven 项目使用 SCM 系统(确实如此,不是吗?),那么您可以将这些信息放入 POM 中。

connection, developerConnection: 这两个连接元素传达了一个是如何通过Maven连接到版本控制系统的。哪里connection需要 Maven 读取权限才能找到源代码(例如,更新),developerConnection需要一个可以提供写入权限的连接。Maven 项目催生了另一个名为 Maven SCM 的项目,它为任何希望实现它的 SCM 创建了一个通用 API。最受欢迎的是 CVS 和 Subversion,但是,其他受支持的 SCM 列表也在不断增加。所有 SCM 连接都是通过一个通用的 URL 结构进行的。

scm:[provider]:[provider_specific]

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

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

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

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

资源

类比:https ://www.youtube.com/watch?v=9In7ysQJGBs

于 2017-11-08T03:20:28.130 回答