Maven SCM 插件和相对路径

Maven SCM plugin and relative paths

我的目录结构看起来有点像这样:

我的 pom 看起来像这样:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">


    <scm>
    <developerConnection>scm:git:file://../../.git</developerConnection>
  </scm>


    <modelVersion>4.0.0</modelVersion>
    <groupId>grp</groupId>
    <artifactId>artif</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>


    <modules>
      <module>../submodule</module>     
    </modules>

    </properties>

    <build>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5.3</version>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <localCheckout>true</localCheckout>
                    <preparationGoals>
                        org.eclipse.tycho:tycho-versions-plugin:${tycho-version}:update-eclipse-metadata 
                        org.apache.maven.plugins:maven-scm-plugin:1.9.5:add 
                        <!-- org.apache.maven.plugins:maven-scm-plugin:1.9.5:checkin -->
                    </preparationGoals>
                    <completionGoals>
                        org.eclipse.tycho:tycho-versions-plugin:${tycho-version}:update-eclipse-metadata 
                        org.apache.maven.plugins:maven-scm-plugin:1.9.5:add 
                        <!-- org.apache.maven.plugins:maven-scm-plugin:1.9.5:checkin -->
                    </completionGoals>
                </configuration>
           </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-scm-plugin</artifactId>
               <version>1.9.5</version>
               <executions>
                 <execution>
                   <id>default-cli</id>
                   <goals>
                     <goal>add</goal>
                     <goal>checkin</goal>
                   </goals>
                   <configuration>
                     <includes>**/META-INF/MANIFEST.MF,**/feature.xml,**/*.product</includes>
                     <excludes>**/target/**</excludes>
                   <message>Changing the version to reflect the pom versions for the release</message>
                   <basedir>${project.basedir}/../..</basedir>
                   <workingDirectory>${project.basedir}/../..</workingDirectory>
                   </configuration>
                 </execution>
               </executions>
             </plugin>
        </plugins>

</project>

当我 运行 mvn release:prepare 时,我收到一条错误消息说

[ERROR] fatal: pathspec 'src\parent\src\submodule\addme.product' did not match any files

所以,插件找到了它应该添加的文件,但是在创建命令行时没有考虑正确的根目录。如何在不更改 parent pom 的位置的情况下解决此问题?

我 运行 遇到了类似的问题(我的根 POM 有一个父配置 POM,它位于一个子文件夹中)。我只能通过创建 "proper" POM 和文件夹层次结构来解决这个问题,意思是:

  • 根 POM 应位于项目根文件夹中
  • 子模块应该是项目根文件夹的子文件夹,文件夹结构应该反映在 POM 中
  • 源文件夹应该是模块的各个子文件夹