【问题标题】:Maven release fails because of git mistinterpretation of path由于 git misinterpretation of path Maven 发布失败
【发布时间】:2016-09-21 07:40:22
【问题描述】:

我的问题发生在使用此类命令的 maven 版本期间:

mvn --settings D:\My\user_settings.xml 发布:准备发布:执行 -Dresume=false -Darguments="-DskipTests" -Prelease

项目树是这样设置的(不能更改!):

  • 项目\项目\pom.xml
  • 项目\项目核心\pom.xml
  • 项目\项目服务\pom.xml
  • project\project-encrypt\pom.xml

在父 pom 中,你有(以及其他东西!):

<modules>
    <module>..//project-encrypt</module>
    <module>..//project-core</module>
    <module>..//project-service</module>
</modules>

Maven 构建顺利,但是当需要执行 git-add 时,我收到了这条消息:

执行: cmd.exe /X /C "git add -- pom.xml -encrypt\pom.xml -core\pom.xml -service\pom.xml" 工作目录:D:\My\Workspaces\project\project

未能执行目标 org.apache.maven.plugins:maven-release-plugin:2.3.2:prepare 项目项目上的(默认-cli):无法提交文件提供者 消息: git-add 命令失败。命令输出:致命: pathspec '-encrypt\pom.xml' 没有匹配任何文件

我尝试了多种方式编写模块路径,但都以同样的方式失败:

..//项目加密

../项目加密

../项目加密

对这个问题有任何想法吗? (由于我无法重命名我的项目,这实际上不是解决方案......)。

提前感谢您阅读到这里!

【问题讨论】:

    标签: git maven release


    【解决方案1】:

    首先,您应该在所有模块中描述父 pom.xml 的相对路径

    <parent>
        <groupId>com.mycompany.app</groupId>
        <artifactId>...</artifactId>
        <version>...</version>
        <relativePath>../project/pom.xml</relativePath> <!-- REQUIRED! -->
    </parent>
    

    第二个,你应该添加伪造的 project/pom.xml 和 (a) 分发部分和 (b) 模块描述部分:

    <modules>
        <module>project</module>
        <module>project-core</module>
        <module>project-service</module>
        <module>project-encrypt</module>
    </modules>
    

    现在,你可以发布这个项目,它会成功的。

    顺便说一句,在路径中将 // 替换为单个 /。 Windows 可能会将双斜杠解释为网络路径。

    【讨论】:

    • 感谢您的回答,熊。我目前正在度假,因此无法对此进行测试,但这对我来说似乎是一条非常有希望的途径。我回来后会尽快反馈
    猜你喜欢
    • 2012-11-18
    • 2014-08-05
    • 2013-02-20
    • 2020-10-08
    • 2012-11-05
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 2011-01-20
    相关资源
    最近更新 更多