我正在尝试执行 mvn release:perform
,但该命令假定 pom 文件位于存储库的根目录。是否有我可以设置的系统属性或首选项来覆盖默认值?
调用 mvn release:prepare
似乎已经成功,因为所有发布 Artifact 都位于目标目录中,并且存储库已正确标记。
如果重要,这是一个 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 repo 后,发生以下错误:
[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>
来源: https://stackoverflow.com/a/8233712/555220