Maven SCM插件:找不到Git SSH提供程序

Phi*_*rdi 11 maven-scm maven

我在使用Git的Maven SCM插件时遇到问题.我无法让插件工作,因为它说找不到提供程序.我运行时出现以下错误mvn scm:tag:

[错误]无法在项目上执行目标org.apache.maven.plugins:maven-scm-plugin:1.9:tag(default-cli)hello-world-service-minimal:无法运行标记命令:无法加载scm供应商.没有这样的提供者:'git:ssh://git@git-eng.REDACTED.com'. - > [帮助1]

我的pom.xml如下所示:

<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>net.REDACTED</groupId>
  <artifactId>hello-world-service-minimal</artifactId>
  <version>1.0.13</version>
  <packaging>pom</packaging>

  <name>hello-world-service</name>

  <properties>
     <lang.java.source>1.7</lang.java.source>
     <lang.java.target>1.7</lang.java.target>

    <dep.junit>4.11</dep.junit>
  </properties>

  <scm>
     <developerConnection>scm:git:ssh://git@git-eng.REDACTED.com|PROJECT_NAME/hello-world-service-minimal.git</developerConnection>
     <url>scm:git:http://git-eng.REDACTED.com/PROJECT_NAME/hello-world-service-minimal/tree/master</url>
  </scm>

  <distributionManagement>
     <repository>
        <id>dev.release</id>
        <url>file:${project.build.directory}/repository/</url>
     </repository>
  </distributionManagement>

  <build>
      <plugins>
          <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>versions-maven-plugin</artifactId>
              <version>2.1</version>
          </plugin>
          <plugin>
              <artifactId>maven-scm-plugin</artifactId>
              <version>1.9</version>
              <configuration>
                  <tag>${project.artifactId}-${project.version}</tag>
              </configuration>
          </plugin>
      </plugins>
  </build>
</project>
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何解决这个问题?这真让我抓狂.我根本无法弄清楚我做错了什么.

Ada*_*kin 21

<url>标记用于常规可浏览的URL.您需要一个<connection>标签(<connection>用于读访问,<developerConnection>用于写访问):

<scm>
  <connection>scm:git:ssh://git@git-eng.REDACTED.com|PROJECT_NAME/hello-world-service-minimal.git</connection>
  <developerConnection>scm:git:ssh://git@git-eng.REDACTED.com|PROJECT_NAME/hello-world-service-minimal.git</developerConnection>
  <url>http://git-eng.REDACTED.com/PROJECT_NAME/hello-world-service-minimal/tree/master</url>
</scm>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Maven POM参考.

  • 如果SCM路径包含例如Windows驱动器号,则管道仅用于替换冒号,因为git插件假定冒号后是TCP端口.用斜杠替换,看看是否得到*相同的*错误或者它是否与上面的错误不同. (3认同)
  • 对于 gitlab - 请注意上面 Adam Batkin 所说的“用斜线替换”。替换为管道会导致“找不到 SCM 提供程序”错误。斜杠让我或多或少地工作了 (3认同)