2016-12-20 5 views
2

Ich habe eine JVM binäre Ziel, das wie folgt aussieht:Wie füge ich ein Befehlszeilenargument zu einem jvm_binary Ziel hinzu?

jvm_binary(
    name = "server-binary", 
    dependencies = [ 
    ":server-library", 
    "static_files:make" 
    ], 
    main= "Main", 
) 

ich hinzufügen können Befehlszeilenargumente an den Server wie so: sein

./pants run server:server-binary --jvm-run-jvm-program-args='-port:9000' 

Aber ich möchte haben einige Argumente haben Teil des Ziels, also muss ich die Argumente in der Befehlszeile nicht jedes Mal angeben, wenn ich Hosen anrufe.

Idealerweise könnte ich geben Sie so etwas wie:

jvm_binary(
    name = "server-binary", 
    dependencies = [ 
    ":server-library", 
    "static_files:make" 
    ], 
    main= "Main", 
    args = { 
    "--jvm-run-jvm-program-args": "-port:9000" 
    } 
) 

Gibt es eine Möglichkeit, dies zu tun?

Antwort

2

Sie können eine jvm_prep_command() verwenden, die auf Ihrem jvm_library() Ziele abhängt:

Hier ist ein Beispiel aus unserer Repo:

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' 
    ], 
) 

Run dies mit ./pants run sms:migrate

Verwandte Themen