java - 在 Bash 中使用 Maven Exec 插件

标签 java bash maven

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

相关文章:

java - Maven跳过编译

java - java中如何计算一个数字的数字之和?

java - 在没有 onCreate() 可用的情况下声明数据库辅助对象时出现问题

java - Hibernate、Collections 和 Session.refresh(...) 的 Stackoverflowerror/Unresolved Object Exception

bash - 有没有办法在Azure Pipeline中提取bash脚本的输出

java - 由于 Grails 中的 java.lang.reflect.MalformedParameterizedTypeException,创建名称为 'pluginManager' 的 bean 时出错

java - Java Netbeans 中的 GATE 使用

python - Crontab在docker上运行但未调度

json - Bash Shell 从文件中剪切行并使用 sed 插入到另一个文件位置

java - org.mortbay.http 包不存在。如何在 pom.xml 中为此添加依赖项