我正在尝试让自动buildNumers工作,但我一直遇到错误
scm网址不包含有效的分隔符
这是pom的相关部分。
<scm>
<connection>scm:svn:${source.repo}</connection>
<developerConnection>scm:svn:${source.repo}</developerConnection>
<url>${source.repo}</url>
</scm>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<revisionOnScmFailure>1</revisionOnScmFailure>
<format>{0,number}</format>
<items>
<item>buildNumber0</item>
</items>
</configuration>
</plugin>
<properties>
<source.repo>svn://myserver/repository/${project.artifactId}</source.repo>
[..]
</properties>
subversion位置包含两个子项目core和web。
如果有人可以提供帮助,我觉得我已经尝试了一切。
我尝试了以下内容:
分隔符错误可能隐藏了一个不同的错误,因为我不认为该网址是错误的。
这是堆栈
java.lang.IllegalArgumentException: The scm url does not contain a valid delimit
er.
at org.apache.maven.scm.provider.ScmUrlUtils.getDelimiter(ScmUrlUtils.ja
va:61)
at org.apache.maven.scm.manager.AbstractScmManager.makeScmRepository(Abs
tractScmManager.java:186)
at org.codehaus.mojo.build.CreateMojo.getScmRepository(CreateMojo.java:7
68)
at org.codehaus.mojo.build.CreateMojo.getScmBranch(CreateMojo.java:619)
at org.codehaus.mojo.build.CreateMojo.execute(CreateMojo.java:464)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:694)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi
fecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:6
0)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
谢谢, 马克
答案 0 :(得分:0)
可能是因为您在URI中使用了占位符,而Maven在使用它之前并未对其进行扩展。
我和Maven一起打过这种事情,有时你只需要放弃并手工扩展。
另一种可能性是扩展的网址scm:svn:svn://myserver/repository/....
错了,但@ ach_l的评论让我确信这不是问题。
答案 1 :(得分:0)