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

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

有办法做到这一点吗?

最佳答案

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

这是我们存储库中的示例:

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

关于pants - 如何将命令行参数添加到 jvm_binary 目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41234589/

相关文章:

pants - 如何在 Pants.ini 中设置 scala 编译器版本

java - 如何在我的应用程序中包含 Skylark 配置解析器?

python - 从 Pex 中导入 Pex 的模块是否可以暴露?

裤子包括 OS X 特定的 Python 轮子

java - 当使用多个目标运行 ./pants idea 时,为什么 IntelliJ 不尊重我的依赖关系?

python - Pants python - 为每个目录构建文件

python - 裤子:无法获得 lxml 分发 pip 要求