gpt4 book ai didi

Maven 3. 0's "mvn release :perform"doesn't like a pom. xml 不在其 git repo 的根目录中

转载 作者:行者123 更新时间:2023-12-01 19:38:26 25 4
gpt4 key购买 nike

我有一个关于 Maven、maven-release-plugin、git 集成、pom.xml 以及将 pom.xml 放在存储库本地副本的子目录而不是根目录中的问题。

设置如下:

  • 我有一个 github 帐户,其中包含有限数量的私有(private)存储库
  • 我想(正在学习)使用 Maven 来组织我的构建/发布
  • 我可能需要创建许多 Maven“项目”,每个 git 存储库有多个项目
  • 每个maven项目都需要一个“pom.xml”来定义其特性
  • 我不能,或者至少不方便,将所有项目 pom.xml 文件放在 git 存储库的根目录中
  • 所以我最终得到了项目的文件夹布局:
    • git_repo_root_dir
      • project_A文件夹
        • pom.xml
        • 其他代码
      • project_B文件夹
        • pom.xml
        • 其他代码
      • 等等
      • ...
  • 我可以成功转到目录 git_repo_root_dir/project_A 并执行“mvn release:prepare”
  • 我在 git_repo_root_dir/project_A 中执行此步骤失败:“mvn release:perform”
    • 问题似乎是 git-tagged 代码已成功 check out 到 git_repo_root_dir/project_A/target/checkout/project_A 以准备发布构建,但 check out 后“maven-release”插件会转到目录git_repo_root_dir/project_A/target/checkout/.而不是 git_repo_root_dir/project_A/target/checkout/project_A/。进行实际的构建,并且在尝试弄乱 pom.xml 之前,无法告诉“maven-release”插件进入源代码的特殊标记副本的子目录
  • 问题:有办法解决这个问题吗?是否有一个选项可以以某种方式告诉“mvn release:perform”转到子目录?

这是我在此过程中遇到的实际错误:

[INFO] --- maven-release-plugin:2.0:perform (default-cli) @ standard_parent_project ---
[INFO] Checking out the project to perform the release ...
[INFO] Executing: /bin/sh -c cd "/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target" && git clone git@github.com:clarafaction/0maven.git '/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout'
...
/* note, the pom.xml the build should go out of at this point is at
'/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout/standard_parent_project/pom.xml'
*/
...
[INFO] [ERROR] The goal you specified requires a project to execute but
there is no POM in this directory
(/Users/___/DEV c8ion 01/maven_based_code/0maven/standard_parent_project/target/checkout).
Please verify you invoked Maven from the correct directory. -> [Help 1]

谢谢。

最佳答案

这应该可以解决问题:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.3.2</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>perform</goal>
</goals>
<configuration>
<pomFileName>your_path/your_pom.xml</pomFileName>
</configuration>
</execution>
</executions>
</plugin>

关于Maven 3. 0's "mvn release :perform"doesn't like a pom. xml 不在其 git repo 的根目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10694139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com