我有一个JVM二进制目标,如下所示:
jvm_binary(
name = "server-binary",
dependencies = [
":server-library",
"static_files:make"
],
main= "Main",
)
我可以像这样添加命令行参数到服务器:
./pants run server:server-binary --jvm-run-jvm-program-args='-port:9000'
但是我想让一些参数成为目标的一部分,所以每次调用裤子时我都不必在命令行上指定参数。
理想情况下,我可以输入类似的内容:
jvm_binary(
name = "server-binary",
dependencies = [
":server-library",
"static_files:make"
],
main= "Main",
args = {
"--jvm-run-jvm-program-args": "-port:9000"
}
)
有办法做到这一点吗?
答案 0 :(得分:2)
您可以使用取决于jvm_prep_command()
目标的jvm_library()
:
以下是我们的回购中的一个例子:
jvm_prep_command(name='migrate',
goal='run',
mainclass='com.squareup.dbmigrate.tools.Migrator',
args=[
'--url="jdbc:mysql://localhost/sms_development"',
'--type="sql:mysql"',
'--username="root"',
'--password=""',
'--migrations-dir="sms/src/main/resources/sql/sms/migrations"',
],
dependencies=[
'dbmigrate:lib'
],
)
使用./pants run sms:migrate