2

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

有没有办法做到这一点?

4

1 回答 1

2

您可以使用jvm_prep_command()取决于您的jvm_library()目标的 a:

这是我们回购的一个例子:

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

于 2016-12-20T16:14:49.310 回答