gpt4 book ai didi

java - 无法通过 MavenCli (maven-embedder) 运行 maven 任务

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:08:48 27 4
gpt4 key购买 nike

我在我的程序中使用 Maven 嵌入器 3.3.3 以编程方式运行 Maven 目标,每次运行 MavenCli.doMain 方法时我都会收到以下错误:

-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.

最佳答案

Maven 3.3.1 ,有一个名为 maven.multiModuleProjectDirectory 的新系统属性。 mvn (or mvn.bat) 默认将其设置为项目的根目录(项目基目录)。脚本(这就是为什么您以前从未遇到过此类错误的原因)。

因此,当通过maven-embedder 运行Maven 时,您还需要设置此系统属性(参见source code 进行检查的地方)。需要设置到项目根目录。

要设置此系统属性,您可以调整对doMain 的调用并添加

"-Dmaven.multiModuleProjectDirectory=" + projectRoot

给定的参数。一个例子是

int result = cli.doMain(new String[] { "-Dmaven.multiModuleProjectDirectory=" + projectRoot, "install" }, "/path/to/project", System.out, System.err);

或者,您可以调用:

System.setProperty("maven.multiModuleProjectDirectory", projectRoot);

在调用 MavenCli.doMain 方法之前,其中 projectRoot 指向您正在构建的项目的根目录。

关于java - 无法通过 MavenCli (maven-embedder) 运行 maven 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400574/

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