1

我的项目架构是这样的:

--Parent
  --Submodule1
  --Submodule2
--pom.xml(main)

Parent 是包含所有 maven 插件配置、librairies 版本等的项目。它是所有项目的父级,也是所有子模块的父级。我在 pom.xml(main) 中配置插件,如下所示:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.3.2</version>
  <configuration>
    <tagBase>svn://192.168.5.213/hxbos/hxecp-src/tags/hxbos</tagBase>
    <branchBase>svn://192.168.5.213/hxbos/hxecp-src/branches/hxbos</branchBase>
    <remotetagging>true</remotetagging>
    <checkModificationExcludes>
      <checkModificationExclude>**/*.log</checkModificationExclude>
      <checkModificationExclude>**/*.jar</checkModificationExclude>
      <checkModificationExclude>**/system*</checkModificationExclude>
    </checkModificationExcludes>
  </configuration>
</plugin>

这是我的单片机信息:

<scm>
  <connection>scm:svn:svn://192.168.5.213/hxbos/hxecp-src/trunk/hxbos</connection>
  <developerConnection>scm:svn:svn://192.168.5.213/hxbos/hxecp-src/trunk/hxbos</developerConnection>
  <url>scm:svn:svn://192.168.5.213/hxbos/hxecp-src/trunk/hxbos</url>
</scm>

但是当我使用:mvn release:prepare 时,会发生错误:

 The svn tag command failed.
 Command output:
 svn: “svn://192.168.5.213/hxbos/hxecp-src/trunk/hxbos” does not exist in 
 revision 0.

为什么是修订版 0?

4

1 回答 1

0

这里有几件事要检查:

  • 我的 SCM URL 如下所示:

    scm:svn:https://subversion.company.com/svn/maven/trunk/corporate-parent

注意https部分;你显示scm:svn:svn,不知道它是如何工作的。

  • 有一个地方让我感到困惑:我使用 https 协议检查了一个现有项目,但 POM 在其 SCM 连接块中有“http”。不匹配导致发布时出现问题。因此,使您用于结帐的协议与 POM 中的 SCM 连接相匹配。如果你做了

    svn checkout http://192.168.5.213/hxbos/hxecp-src/trunk/hxbos

那么您的 SCM 块应如下所示:

<scm>
    <connection>scm:svn:http://192.168.5.213/hxbos/hxecp-src/trunk/hxbos</connection>
</scm>
  • 如果您正在进行多模块构建,请在所有 POM 中定义 SCM 块,不要让它们从父 POM 继承。

  • 最后但同样重要的是,确保您使用的是最新版本的发布插件。


编辑:在 tagBase 和 branchBase URL 中也使用 http: 或 https: (无论您用来执行原始结帐)。我注意到您在这些 URL 中有“svn:”前缀。文档tagBase说“例如,. URLhttp://svn.apache.org/repos/asf/maven/plugins/tags是 SVN URL,不包括 SCM 提供程序和协议。”

于 2012-10-12T13:25:11.477 回答