====== Gradle Application Plugin ======
* [[https://docs.gradle.org/current/userguide/application_plugin.html|Gradle Application Plugin]]
* [[https://dzone.com/articles/running-java-tasks-with-gradle|Gradle Goodness: Running Java Tasks With Gradle]]
* Java Application을 실행하고, 의존 라이브러리를 묶어서 배포할 수 있는 zip 파일 배포본을 만들어주는 [[https://docs.gradle.org/current/userguide/distribution_plugin.html|The Distribution Plugin]]을 기본 포함한다.
* [[https://docs.gradle.org/current/dsl/org.gradle.jvm.application.tasks.CreateStartScripts.html|CreateStartScripts]]
===== 설정 =====
application {
// -Pmain=FQCN 으로 지정하게 함. 없으면 기본 class
mainClassName = project.properties.get("main", 'package.fqcn.DefaultRunClassName')
applicationDefaultJvmArgs += "--enable-preview" // java 파라미터
}
위와 같이 설정하면 ''main'' 클래스를 ''-Pmain=FQCN''으로 지정가능해진다.
./gradlew run -Pmain=kr.pe.kwonnam.Xxxx
===== 실행 =====
* ''run'' 태스크로 실행한다.
* [[https://docs.gradle.org/current/dsl/org.gradle.api.tasks.JavaExec.html|JavaExec]] 타입의 태스크이므로 동일한 옵션을 적용할 수 있다.
* 디버그 모드로 실행하기
gradle run --debug-jvm
* 프로그램에 인자 넘기기 [[https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/JavaExec.html#setArgsString-java.lang.String-|JavaExec]]
gradle run --args="foo --bar"
===== 참조 =====
* [[https://www.baeldung.com/gradle-command-line-arguments|Passing Command Line Arguments in Gradle | Baeldung]]