2016-12-20 64 views
2

我有一个JVM二进制目标看起来像:如何将命令行参数添加到jvm_binary目标中?

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" 
    } 
) 

有没有办法做到这一点?

回答

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

相关问题