본문 바로가기
Programming/Spring

3. gradlew (gradle wrapper) - spring 사용하기

by guru_k 2019. 8. 2.
728x90
반응형

source code: https://github.com/kgmhk/spring-boot-tutorial/tree/gradlew

gradlew (gradle wrapper) 란

  • gradle wrapper 줄여서 gradlew 는 새로운 환경에서 프로젝트를 설정할 때 java나 gradle을 설치하지 않고 바로 빌드할 수 있게 해주는 역할을 한다.
  • gradlew 를 생성하면 아래와 같은 파일들이 생성된다. (참고 : https://docs.gradle.org/current/userguide/gradle_wrapper.html)
.
├── build.gradle
├── settings.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat
  • gradlew 는 shell script 이며 gradlew.bat는 Window batch script 이다.
  • gradlew 를 사용하는 가장 큰 이유는 아래와 같이 로컬환경에서 빌드할 경우 로컬 환경에 설치된 java와 gradle 버전에 영향을 받게 된다.
$ gradle build
  • gradlew 를 이용하여 빌드하면 로컬 환경 java와 gradle 버전과 상관없이 새로운 프로젝트를 빌드할 수 있다.
$ ./gradlew build

 

gradlew 생성하기

  • 프로젝트 초기에 gradlew 생성 시 아래 명령어를 이용하여 gradlew 생성
$ gradle init
  • 이미 로컬 환경에서 build.gradle 를 사용하여 빌드를 진행하고 있던 프로젝트라면 아래 명령어로 gradlew 생성
$ gradle wrapper
> Task :wrapper

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

 

gradlew 를 이용한 빌드

  • gradlew 빌드
$ ./gradlew build
  • gradlew 빌드 후 기존 어플리케이션 실행
$ ./gradlew build && java -jar build/libs/helloworld-0.1.0.jar

BUILD SUCCESSFUL in 1s
4 actionable tasks: 4 up-to-date

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.6.RELEASE)

2019-08-02 09:40:27.901  INFO 54669 --- [           main] hello.Application                        : Starting Application on apseonote344.ad.ea.com with PID 54669 (/Users/gkwak/Documents/spring/helloworld/build/libs/helloworld-0.1.0.jar started by gkwak in /Users/gkwak/Documents/spring/helloworld)
2019-08-02 09:40:27.904  INFO 54669 --- [           main] hello.Application                        : No active profile set, falling back to default profiles: default
2019-08-02 09:40:28.927  INFO 54669 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-08-02 09:40:28.957  INFO 54669 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-08-02 09:40:28.957  INFO 54669 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.21]
2019-08-02 09:40:29.046  INFO 54669 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-08-02 09:40:29.046  INFO 54669 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1092 ms
2019-08-02 09:40:29.241  INFO 54669 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-08-02 09:40:29.447  INFO 54669 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-08-02 09:40:29.452  INFO 54669 --- [           main] hello.Application                        : Started Application in 1.956 seconds (JVM running for 2.353)

 

 

728x90
반응형

댓글