2016-03-07 96 views
1

我无法通过Maven访问svn修订版号。我从SCM使用页面得到的唯一真正的帮助是:Maven scm和svn

<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个元素的回购站中。我也不知道Maven为什么不要求我输入存储库的用户名和密码。

我很新的Maven和可能会问一个很基本的问题,但希望得到一个完整的解释,我是怎么来访问svn的。

+0

这是回答您的问题吗? http://stackoverflow.com/a/35676704/1743880 – Tunaki

+0

嗨@Tunaki很高兴见到你在这里回答我的问题!恐怕不会回答我的问题:(但是,我真的只需要连接到我的存储库,但不知道任何元素的含义? – Max

+0

文档http://maven.apache.org/pom.html #SCM非常清楚,'connection'和'developerConnection'指向SVN仓库URL,'tag'是可选的,你不需要它,'url'是一个可公共浏览的仓库的URL。 – Tunaki

回答

1

首先,我将开始通过明确的Maven的使用,这似乎引起你的情况的困惑:

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

的Apache Maven的无关,与你的修订推到你的源代码管理系统(SVN你的情况)。

通常情况下,你会通过IDE来推你的变化(的EclipseIntelliJ IDEA的和相似)或通过命令行来你SVN库,你将不以任何方式是通过推动这些变化Maven在这种情况下,你将打破它的使用目的。

现在问题来了,为什么你可能需要再与供应链管理相关的属性? 答案很简单,应该是相关的,因为的Maven是一个项目构建工具,它必须处理项目发布周期是项目建设周期的最后一块...它不会是能够做到这一点的没有更新您的远程项目信息,因为您正在使用SCM远程存储库。

现在回到那些SCM相关的属性,以及它们意味着什么:

  • 连接:一个URL连接端点到您的SCM库并且将只用于访问。
  • developerConnection:一个URL连接端点到您的SCM库以及将用于访问。 (这就是开发人员角色打算做的事情,将更改推送到存储库)。
  • 标签:它指定在该项目的生活和我见过的唯一HEAD在那里使用,并承担将是默认的标签。
  • 网址:它指定一个可浏览库,比如一个通过viewvc(在大多数情况下,你可以用/viewvc取代你的连接网址下/SVN/路径/
0

SCM小号 oftware Ç onfiguration 中号 anagement,也称为小号乌尔斯河Ç ODE/ç ONTROL 中号 anagement或,简洁地,版本控制)是任何健康的项目的组成部分。如果您的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。

Source