使用Maven发布插件时无法标记SCM

3
当我使用 Maven 发布插件时,遇到了一些问题,其中最大的问题是标记 SCM 失败,错误信息如下: svn:“svn://192.168.5.222/show/test-show/trunk/show”不在修订版本0中。
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:98)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:64)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)

由于:org.apache.maven.plugin.MojoFailureException: 无法打标签SCM

然后我找到了我的日志:

[INFO] 执行:/ bin / sh -c cd / data / .hudson / jobs / hxbos / workspace && svn --username liulaixi --password' * ' --no-auth-cache --non-interactive copy --file / tmp / maven-scm-49732292.commit --revision 0 svn://192.168.5.213/hxbos/hxecp-src/trunk/hxbos svn://192.168.5.213/hxbos/hxecp-src/tags/hxbos/hxbos-all-test-1.5.0 [INFO] 工作目录:/ data / .hudson / jobs / hxbos / workspace

为什么我的--revision是0?谁能帮我?谢谢!


3
你的SVN中是否有一个../tags文件夹?在Maven的pom.xml文件中,软件配置管理(SCM)URL是否正确? - Wim Deblauwe
感谢您的回复,我在我的svn中有tags文件夹,但我不知道为什么svn复制命令使用的是版本0。我当前的版本是4865,但根据日志显示,maven发布插件使用了版本0。这就是问题所在。日志如下: - guolei
[INFO] 正在执行:/bin/sh -c cd /data/.hudson/jobs/hxbos/workspace && svn --username liulaixi --password '*' --no-auth-cache --non-interactive copy --file /tmp/maven-scm-49732292.commit --revision 0 svn://192.168.5.213/hxbos/hxecp-src/trunk/hxbos svn://192.168.5.213/hxbos/hxecp-src/tags/hxbos/hxbos-all-test-1.5.0 [INFO] 工作目录:/data/.hudson/jobs/hxbos/workspace - guolei
4个回答

0
尝试在你的pom.xml文件中添加"tagBase"配置。
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.2.2</version>
                <configuration>
                    <tagBase>https://svn.site.net.br/svn/SiteV6/Vitrine</tagBase>
                </configuration>
            </plugin>

0

我犯了一个错误,只检出了主干(没有检出标签分支)。

让我感到欣慰的是:svn仓库存储在/svn/中。Apache配置了DAV svn来支持<connection>标签(不确定是否需要DAV),配置如下:

<Location /svn>
  DAV svn
  SVNPath /svn
</Location>

而在 pom.xml 文件中:

<scm>
    <url>http://www.myproject.com/svn/Project</url>
    <connection>scm:svn:http://www.myproject.com/Project</connection>
    <developerConnection>scm:svn:svn+ssh://root@www.myproject.com/Project</developerConnection>
</scm>

然后我做

svn co file:///svn/Project
cd Project/trunk/
eval `ssh-agent -s`
ssh-add   ~/mykey-to-commit-new-tag.ossh
mvn package gpg:sign
svn commit
mvn clean release:prepare release:perform -Darguments="-DskipTests -Dmaven.javadoc.failOnError=false" -X

我真正需要做的是检出整个项目。


0
问题是你没有正确的svn版本。检查安装最新版本并为您的环境进行设置。如果正确,mvn将能够在上传pom.xml后读取此信息,并使用此信息标记发布。

-1
你试过忽略这个错误,然后再尝试执行 mvn release:prepare 吗?对我来说有效。不过别问我为什么。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接