![](/img/trans.png)
[英]Maven 3.0's “mvn release:perform” doesn't like a pom.xml that isn't in its git repo's root directory
[英]mvn release:perform fails because pom file is not at root of repository
我正在尝试执行mvn release:perform
,但该命令假定pom文件位于存储库的根目录下。 是否有我可以设置的系统属性或首选项来覆盖默认值?
对mvn release:prepare
的调用似乎已成功,因为所有发布工件都位于目标目录中,并且存储库已正确标记。
如果重要,这是一个git项目。
编辑这是我做的:
cd /path/to/git/root/path/to/mvn/project
mvn -DdevelopmentVersion=1.2.0-SNAPSHOT -DreleaseVersion=1.1.0 release:prepare
...enter correct passphrase and choose all default options...
mvn release:perform
然后克隆target/checkout
目录中的远程仓库,并在一些搅拌并推送到远程git仓库后,发生以下错误:
[ERROR]
[ERROR] The project (/path/to/git/root/path/to/mvn/project/target/checkout/pom.xml) has 1 error
[ERROR] Non-readable POM /path/to/git/root/path/to/mvn/project/target/checkout/pom.xml: /path/to/git/root/path/to/mvn/project/target/checkout/pom.xml (No such file or directory)
因此,maven正在target/checkout
目录的根目录中查找pom文件,而该目录不在它所在的位置。
我有同样的问题。 把它添加到你的pom:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>perform</goal>
</goals>
<configuration>
<pomFileName>subdir/pom.xml</pomFileName>
</configuration>
</execution>
</executions>
</plugin>
由于根pom实际上不在源代码控制中,我认为发布:prepare和release:perform不适合你。 我认为这些命令的目标之一就是确保发布的项目可以根据源控件构建(并通过测试),而不是一个人的机器上的内容。 这就是它试图结账和重建的原因。 如果pom根本不在源代码控制中,那么这个目标是不可能的。 您可能必须手动执行发布的步骤:准备和发布:执行:删除快照,提交,标记,mvn部署,增加版本添加快照,提交。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.