HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/
Java
Java
/
Gradle
Gradle
/
⛳
Gradle Tasks
⛳

Gradle Tasks

Gradle 기본 명령어.gitignore에 추가해야 할 gradle 파일들Locating tasksTest task에서 stdout console에 출력하기Jar task외부 의존성 포함 안되는 문제

Gradle 기본 명령어

  • gradle init, gradle build, gradle run 명령들은 다 task 단위임
  • gradle은 task를 수행함으로써 그 내용이 수행됨
//build.gradle plugins { // Apply the application plugin to add support for building a CLI application in Java. id 'application' } tasks.named('test') { // Use JUnit Platform for unit tests. useJUnitPlatform() } // -> gradle test 로 해당 task 실행가능함
  • gradle init → gradle 프로젝트 셋팅됨
  • gradle build → gradle 프로젝트 빌드
    • 테스트 없이 build : gradle build -x test
  • gradle run → 빌드된 프로젝트 실행
    • 위의 세 task는 build.gradle에 명시되어 있지 않지만, 관습적인 사용 방식이기에 plugin에 추가함으로써 자동으로 task가 생성됨(id ‘application’)
 

.gitignore에 추가해야 할 gradle 파일들

  • gradle wrapper 명령 실행 시 아래 파일들 자동으로 생성됨
    • gradle 폴더 - gradle이 실행되기 위한 jar 파일들이 존재
    • .gradle 폴더
    • gradlew, gradlw.bat
  • build 폴더

Locating tasks

[ Gradle 문서 ] Authoring Gradle Builds > Develoing Gradle Tasks > Authoring Tasks > Locating tasks
tasks.named('asciidoctor') { inputs.dir snippetsDir configurations 'asciidoctorExtensions' dependsOn test }
  • 기존에 정의되어 있는 task에 대해서 configure를 하거나 의존성을 위해서 사용할 때 사용하는 명령어임

Test task에서 stdout console에 출력하기

[ Gradle Docs 참고 ]
plugins { id 'java' // adds 'test' task } test { // Discover and execute JUnit4-based tests useJUnit() // Discover and execute TestNG-based tests useTestNG() // Discover and execute JUnit Platform-based tests useJUnitPlatform() testLogging.showStandardStreams = true }
 

Jar task

외부 의존성 포함 안되는 문제

[ Gradle forums] How to include dependencies in jar?
[ StackOverflow ] NoClassDefFoundError at Runtime with Gradle
  • 위의 Gradle link 를 확인해보면 외부 의존성은 default로는 포함이 안된다고 함
  • 기본값은 프로젝트의 소스코드의 클래스 파일들만 포함
    • 그 이유는 dependency 가 이미 제공되어 있는 상황일 수도 있다고 하고, war plugin을 사용하면 WEB-INF/lib 안에 포함되어야 한다고 함
⇒ shadow plugin을 사용해라! gradle shadow
plugins { id 'java' id 'com.github.johnrengelman.shadow' version '7.0.0' }