Svn 这是mvn发行版的问题吗:准备

Svn 这是mvn发行版的问题吗:准备,svn,maven,maven-2,maven-3,maven-release-plugin,Svn,Maven,Maven 2,Maven 3,Maven Release Plugin,我已将以下scm标记添加到我的主pom中: <scm> <developerConnection> scm:svn:http://<server>/svn/<svnpath>/${project.artifactId}/trunk </developerConnection> </scm> scm:svn:http:///svn//${project.artifactId}/trunk 我

我已将以下scm标记添加到我的主pom中:

<scm>
    <developerConnection>
       scm:svn:http://<server>/svn/<svnpath>/${project.artifactId}/trunk
    </developerConnection>
</scm>

scm:svn:http:///svn//${project.artifactId}/trunk
我觉得这很好。所有悬而未决的项目都采用路径策略

当我来做一个发布:准备一个孩子的项目,但它失败了

子POM以以下格式添加到其中的scm标记结束:

<scm>
    <developerConnection>
        scm:svn:http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0
    </developerConnection>
</scm>

scm:svn:http:///svn///tags/v1.0.0
然后,subquesnt svn命令行尝试从标记中进行标记,但失败:

[INFO] Executing: cmd.exe /X /C "svn --non-interactive copy --file C:\DOCUME~1\<me>\LOCALS~1\Temp\maven-scm-1302559010.commit http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0 http://<server>/svn/<svnpath>/<artifact>/tags/v1.0.0"
[INFO]正在执行:cmd.exe/X/C“svn--非交互式副本--文件C:\DOCUME~1\\LOCALS~1\Temp\maven-scm-1302559010.commithttp:///svn///tags/v1.0.0 http:///svn///tags/v1.0.0"
问题1。这是maven版本的bug吗? 问题2。如果这不是一个bug,那么我是否不允许像以前那样在master中定义scm标记


在子项目中硬编码scm标记实际上修复了它,但由于我们有许多子项目,如果可能的话,我更愿意在主pom中定义它。

首先,它不是一个bug。目的是每个项目都有自己的SCM区域,其中包含正确的信息。除此之外,在发布插件周期中,还将从以下内容中替换信息:

<scm>
    <developerConnection>scm:svn:http://<server>/project/trunk</developerConnection>
</scm>

scm:svn:http:///project/trunk
具体如下:

<scm>
    <developerConnection>scm:svn:http://<server>/project/tags/xyz-1.0.0</developerConnection>
</scm>

scm:svn:http:///project/tags/xyz-1.0.0
此外,您必须将信息输入您的家长(主pom)的想法如下:

<scm>
    <developerConnection>
       scm:svn:http://<server>/svn/<svnpath>/${project.artifactId}/trunk
    </developerConnection>
</scm>
<scm>
    <developerConnection>
       scm:svn:http://<server>/svn/<svnpath>/master/tags/1.0.0
    </developerConnection>
</scm>

scm:svn:http:///svn//${project.artifactId}/trunk
由您的主pom版本替换为以下内容:

<scm>
    <developerConnection>
       scm:svn:http://<server>/svn/<svnpath>/${project.artifactId}/trunk
    </developerConnection>
</scm>
<scm>
    <developerConnection>
       scm:svn:http://<server>/svn/<svnpath>/master/tags/1.0.0
    </developerConnection>
</scm>

scm:svn:http:///svn//master/tags/1.0.0
这意味着每个子模块都会使用上述定义,这是绝对错误的。因此,您必须在每个项目中分别设置scm区域