【问题标题】:Maven scm and svnMaven scm 和 svn
【发布时间】:2016-03-07 19:43:16
【问题描述】:

我无法通过 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 存储库。

【问题讨论】:

  • 这能回答你的问题吗? stackoverflow.com/a/35676704/1743880
  • 嗨@Tunaki 很高兴看到你在这里再次回答我的问题!恐怕这并不能回答我的问题 :( ,我真的只需要连接到我的存储库,但不知道任何元素的含义是什么?
  • 文档maven.apache.org/pom.html#SCM 非常清楚。 connectiondeveloperConnection 指向 SVN 存储库 URL,tag 是可选的,您不需要它,url 是指向可公开浏览的存储库的 URL。
  • 如果我的存储库不可公开浏览怎么办?这就是我的困惑。我正在使用我公司构建的服务器,该服务器需要用户名/密码才能访问存储库。
  • 你不能在里面放任何你想要的废话,这只是为了提供信息,尽管我从来没有写过任何看起来不像 URL 的东西,即使它不是真的存在:D

标签: maven svn maven-scm


【解决方案1】:

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

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

    connectiondeveloperConnection:这两个连接元素表达了如何通过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。

    Source

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

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 2010-12-17
      • 2011-02-18
      • 2022-07-04
      • 2010-12-19
      • 2014-12-05
      相关资源
      最近更新 更多