Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从bash顺序执行maven编译命令_Bash_Maven - Fatal编程技术网

从bash顺序执行maven编译命令

从bash顺序执行maven编译命令,bash,maven,Bash,Maven,我试图用Maven按顺序构建一个项目,但没有成功 我尝试将以下几行放在脚本文件中,并从bash调用它 mvn-f./cmroad api/pom.xml清洁安装corona:package-Ddebug=false mvn-f./cmroad impl/pom.xml清洁安装corona:package-Ddebug=false 第一个命令运行,但生成不调用第二个命令。我试着把如: mvn-f./cmroad api/pom.xml清洁安装corona:package-Ddebug=false;

我试图用Maven按顺序构建一个项目,但没有成功

我尝试将以下几行放在脚本文件中,并从bash调用它

mvn-f./cmroad api/pom.xml清洁安装corona:package-Ddebug=false
mvn-f./cmroad impl/pom.xml清洁安装corona:package-Ddebug=false

第一个命令运行,但生成不调用第二个命令。我试着把
如:

mvn-f./cmroad api/pom.xml清洁安装corona:package-Ddebug=false;mvn-f./cmroad impl/pom.xml清洁安装corona:package-Ddebug=false

结果是:

[ERROR]未知生命周期阶段“mvn”。必须以以下格式指定有效的生命周期阶段或目标:或:[:]:。

我将非常感谢任何帮助

[ERROR] Unknown lifecycle phase "mvn".
这是键入
mvn mvn
时会出现的错误;您的脚本在同一行上有两个
mvn
s,可能是因为您的行结尾有问题

从一个简单的脚本开始:

#!/bin/sh

echo A
echo B

在继续Maven之前,让它工作起来。如果将指定的命令放置在正确准备的脚本中,则该命令应能正常工作。(尽管,正如khmarbaise所说,如果您需要按此顺序构建,那么您的项目是错误的。)

这些模块cmroad、cmroad impl听起来应该在多模块构建中构建。那么,为什么要一个接一个地手动构建它们呢。为什么不让maven做那份工作呢。你的文件夹结构是什么样子的?完全正确!它们都是父pom.xml的一部分。但如果我在上面运行maven,它会抱怨“循环依赖”,这就是为什么我试图按特定顺序编译它们。如果你有循环引用,那么你的构建就错了。指向您必须首先解决这个问题,否则您会走错方向。您可以在脚本文件的开头添加
set-x
,以查看来自bash的调试信息。您是否设置了
set-e
标志?在这种情况下,bash将在第一个错误时停止,如果构建失败,则不会运行第二个命令。我也是这么想的。我真的应该删除循环引用,我需要一个快速的解决方案,但没有足够的时间去做。我将在此基础上创建一个分离线程,同时,问题仍然是:如何顺序调用maven(即,将多个调用一个接一个地链接起来)?