Документация для задачи запуска gradle?

#java #gradle

#java #gradle

Вопрос:

После долгого поиска я все еще не смог найти никаких официальных документов для этой gradle run задачи. Я предполагаю, что это потому, что на самом деле это тип задачи JavaExec.

Также кажется, что run задача доступна только с помощью плагина приложения. В его документах упоминаются некоторые из доступных аргументов, таких как --debug-jvm и --args (для передачи аргументов командной строки в основной метод приложения).

Что я на самом деле хотел выяснить, как я могу передавать аргументы JVM в командной строке, т.Е. Эквивалент setting application { applicationDefaultJvmArgs = ".." } .

Помощь приветствуется!

Комментарии:

1. Проверьте это: baeldung.com/gradle-command-line-arguments

2. Спасибо! --args="lorem ipsum dolor" действительно, это то, что я искал.

Ответ №1:

Вы правы, run задача поступает из плагина приложения, и это JavaExec задача.

Список всех параметров конфигурации доступен в документации задачи JavaExec

Вы можете настроить параметры в своем (groovy-) файле gradle следующим образом:

 tasks.named('run', JavaExec) {
    mainClassName = '...MainKt'
    applicationDefaultJvmArgs = [ System.getProperty("jvmArgs") ]
    classpath = sourceSets.netMain.runtimeClasspath
}
  

Ответ №2:

Теперь я написал https://blog.jakubholy.net/2020/customizing-gradle-run-task / в котором описывается как настройка run задачи, так и ее настройка в командной строке:

 apply plugin: 'application'
mainClassName = "my.app.Main"

run {

  debugOptions {
      enabled = true
      server = true
      suspend = false
  }

  systemProperty("my.defaultLogLevel", "debug")
  environment("OTEL_EXPORTER", "zipkin")
  jvmArgs=["-javaagent:aws-opentelemetry-agent-0.9.0.jar"]
}
  

Как указано в документации к плагину приложения, вы также можете включить отладку с помощью —debug-jvm или указать аргументы с помощью —args=»foo —bar» . И вы можете настроить application {applicationDefaultJvmArgs= []} для применения как к сценариям запуска, так и к сгенерированным сценариям запуска вашего дистрибутива.