Maven SCM 插件和相对路径
Maven SCM plugin and relative paths
我的目录结构看起来有点像这样:
- .git
- 来源
- parent
- pom.xml
- 子模块
- pom.xml
- addme.product
我的 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 中
- 源文件夹应该是模块的各个子文件夹
我的目录结构看起来有点像这样:
- .git
- 来源
- parent
- pom.xml
- 子模块
- pom.xml
- addme.product
- parent
我的 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 中
- 源文件夹应该是模块的各个子文件夹