Spring XD:如何在单独的行中进行作业定义

SpringXD: How to make a job definition in seprate lines

我的工作定义很长。我想知道是否有一种方法可以将它分成多行以便于阅读。我尝试过使用 '\' 或 '\n' 但它们都无法创建工作,例如:

    xd:>job create --name myHttpJob --definition "httpJob \n
          job create --name myHttpJob --definition "httpJob \n
                                                ^
           Cannot have an unbalanced number of quotation marks
    xd:>--listeners=disable" --deploy
       Command '--listeners=disable" --deploy' not found (for assistance press TAB)

    xd:>job create --name myHttpJob --definition "httpJob \
         job create --name myHttpJob --definition "httpJob \
                                               ^
          Ran out of input in escape sequence
    xd:>--listeners=disable" --deploy
      Command '--listeners=disable" --deploy' not found (for assistance press TAB)

希望这仍然可以帮助那里的人。我认为您无法使用当前版本的 xd-shell 将命令分成多行,但我所做的是通过使用 shell 脚本将整个过程外部化整个过程。如果您需要多次 运行 相同或相似的命令并且您的命令可以参数化,这将很有用。以下是您的 shell 脚本将包含的内容示例(我们称文件为 myxdshellfile.sh)。我的所有自定义模块 upload/deploy/definition 和流都有类似的脚本。如果设置得当,您可以将其参数化以部署到不同的环境中,并将环境作为输入参数传递。

echo -n -e " \
job create --name ${module}_${version} \
--definition \"${moduleDefinition} \
--restartable=false \
--dateFormat=yyyy-MM-dd \
--makeUnique=true \
--partitionResultsTimeout=7200000 \
\
--jdbcDriver=com.mysql.jdbc.Driver \
--jdbcUser=${user} \
--jdbcPassword=${pwd} \
--jdbcUrl=jdbc:mysql://${dbhost} \
\
--version=${version} \
\
\"
" > "$cmdfile"

#write string to file
echo -e -n .${shellpath}/shell/bin/xd-shell --cmdfile ${cmdfile}

#see what's in the file
cat ${cmdfile}

#execute spring-xd shell
bash ${shellpath}/shell/bin/xd-shell --cmdfile ${cmdfile}