tr_*_*est 6 java eclipse maven maven-embedder
我在我的程序中使用Maven embedder 3.3.3以编程方式运行maven目标,每次运行该MavenCli.doMain方法时都会出现以下错误:
-Dmaven.multiModuleProjectDirectory系统属性未设置.检查$M2_HOME环境变量和mvn脚本匹配.
从Maven 3.3.1开始,有一个新的系统属性叫做maven.multiModuleProjectDirectory.默认情况下,它由mvn(或mvn.bat)脚本设置为项目的根目录(项目基础目录)(这就是为什么您之前从未遇到过这样的错误).
因此,在运行Maven时maven-embedder,还需要设置此系统属性(请参阅进行检查的源代码).它需要设置为项目根目录.
要设置此系统属性,您可以调整您的呼叫doMain并添加
"-Dmaven.multiModuleProjectDirectory=" + projectRoot
Run Code Online (Sandbox Code Playgroud)
对于给定的论点.一个例子是
int result = cli.doMain(new String[] { "-Dmaven.multiModuleProjectDirectory=" + projectRoot, "install" }, "/path/to/project", System.out, System.err);
Run Code Online (Sandbox Code Playgroud)
或者,您可以致电:
System.setProperty("maven.multiModuleProjectDirectory", projectRoot);
Run Code Online (Sandbox Code Playgroud)
在调用MavenCli.doMain方法之前,projectRoot指向要构建的项目的根目录.
| 归档时间: |
|
| 查看次数: |
1152 次 |
| 最近记录: |