Maven scm 和 svn
Maven scm and svn
我无法通过 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 是什么意思。我只是将 url 插入到所有 3 个元素的存储库中。我也不知道为什么 Maven 不要求我提供存储库的用户名和密码。
我是 Maven 的新手,可能会问一个非常基本的问题,但希望能得到关于我如何访问 svn 存储库的完整解释。
首先,我将首先澄清 Maven 的用法,这似乎会导致您的情况混乱:
Apache Maven is a software project management tool... that can manage the project's build.
Apache Maven 与将您的修订推送到源代码管理系统无关(SVN)。
通常,您将通过 IDE(Eclipse、IntelliJ IDEA 等)或通过命令行访问您的 SVN 存储库,您 不会以任何方式 将这些更改推送到 Maven 在这种情况下你会破坏它的使用目的。
问题来了,为什么您可能需要那些与 SCM 相关的属性?
答案很简单并且应该是相关的,因为 Maven 是一个项目构建工具,它必须处理您的项目发布周期,这是项目构建周期的最后一部分......而且它不会无需 更新您的远程项目信息 即可以连贯的方式完成此操作,因为您使用的是 SCM 远程存储库。
现在回到那些 SCM 相关属性,它们是什么意思:
- connection:URL 连接端点到您的 SCM 存储库和这将仅用于 read 访问。
- developerConnection:到您的 SCM 存储库的 URL 连接端点和这将用于 write 访问。 (毕竟这就是开发人员角色的目的,将更改推送到存储库)。
- tag:它指定了项目所在的标签,我只看到了HEAD 在那里使用并假设将是默认值。
- url:它指定了一个可浏览存储库,例如一个通过 viewvc (在大多数情况下,您可以替换连接下的 /svn/ 路径 URL 与 /viewvc/)
SCM(S软件C配置M管理,也叫S源Code/C控制M管理,或者简而言之,版本控制)是任何健康项目不可或缺的一部分。如果您的 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.
我无法通过 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 是什么意思。我只是将 url 插入到所有 3 个元素的存储库中。我也不知道为什么 Maven 不要求我提供存储库的用户名和密码。
我是 Maven 的新手,可能会问一个非常基本的问题,但希望能得到关于我如何访问 svn 存储库的完整解释。
首先,我将首先澄清 Maven 的用法,这似乎会导致您的情况混乱:
Apache Maven is a software project management tool... that can manage the project's build.
Apache Maven 与将您的修订推送到源代码管理系统无关(SVN)。
通常,您将通过 IDE(Eclipse、IntelliJ IDEA 等)或通过命令行访问您的 SVN 存储库,您 不会以任何方式 将这些更改推送到 Maven 在这种情况下你会破坏它的使用目的。
问题来了,为什么您可能需要那些与 SCM 相关的属性? 答案很简单并且应该是相关的,因为 Maven 是一个项目构建工具,它必须处理您的项目发布周期,这是项目构建周期的最后一部分......而且它不会无需 更新您的远程项目信息 即可以连贯的方式完成此操作,因为您使用的是 SCM 远程存储库。
现在回到那些 SCM 相关属性,它们是什么意思:
- connection:URL 连接端点到您的 SCM 存储库和这将仅用于 read 访问。
- developerConnection:到您的 SCM 存储库的 URL 连接端点和这将用于 write 访问。 (毕竟这就是开发人员角色的目的,将更改推送到存储库)。
- tag:它指定了项目所在的标签,我只看到了HEAD 在那里使用并假设将是默认值。
- url:它指定了一个可浏览存储库,例如一个通过 viewvc (在大多数情况下,您可以替换连接下的 /svn/ 路径 URL 与 /viewvc/)
SCM(S软件C配置M管理,也叫S源Code/C控制M管理,或者简而言之,版本控制)是任何健康项目不可或缺的一部分。如果您的 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.