簡體   English   中英

Maven:scm url不包含有效的定界符

[英]Maven: The scm url does not contain a valid delimiter

我正在嘗試使自動buildNumers工作,但我一直遇到錯誤

scm url不包含有效的定界符

這是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。

如果有人可以幫助,我覺得我已經嘗試了一切。

我嘗試了以下方法:

  • 使用管道:無效的網址
  • 使用命令行中的倉庫網址從服務器中檢索項目列表:工作正常
  • 將/ trunk添加到倉庫URL:分隔符錯誤
  • 將/ trunk / core添加到倉庫URL:分隔符錯誤
  • 將/ trunk / web添加到倉庫URL:分隔符錯誤

分隔符錯誤可能隱藏了另一個錯誤,因為我認為URL錯誤。

這是堆棧

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)    

謝謝,馬克

可能是因為您在URI中使用了占位符,而Maven在使用它之前並未對其進行擴展。

我自己曾與Maven進行過此類斗爭,有時您只需要放棄並手動進行擴展即可。


另一種可能是擴展的URL scm:svn:svn://myserver/repository/....是錯誤的,但是@ach_l的注釋使我確信這不是問題。

嘗試運行命令:

mvn help:effective-pom

並檢查輸出。 命令和其他幫助命令應該可以幫助您解決Maven設置的問題(例如,表達式求值,配置文件等)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM