我正在编写一个 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/