我正在编写一个bash脚本,它将执行Maven项目的某些部分。该脚本如下所示:

CMD="mvn exec:java -Dexec.mainClass=$MAINCLASS -Dexec.args=\"cfg.txt TRAIN\""
echo "Running $CMD..."

$CMD


但这每次都会失败,并显示以下错误:

[ERROR] Unknown lifecycle phase "TRAIN". You must specify a valid
lifecycle phase...


如果我跳过CMD=...分配,而只是直接运行mvn部分,就像这样...

mvn exec:java -Dexec.mainClass=$MAINCLASS -Dexec.args="cfg.txt TRAIN"


...效果很好。

如何获取Maven和exec插件以了解在-Dexec.args部分中有两个参数?

最佳答案

根据docs exec:java是否没有exec.args?它确实具有exec.arguments并带有一个String[],它将转换为:

CMD="mvn exec:java -Dexec.mainClass=$MAINCLASS -Dexec.arguments=\"cfg.txt\",\"TRAIN\""

关于java - 在Bash中使用Maven Exec插件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24067440/

10-10 14:30