如何将命令行参数添加到jvm_binary目标?

时间:2016-12-20 03:47:27

标签: pants

我有一个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"
  }
)

有办法做到这一点吗?

1 个答案:

答案 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

运行此功能