본문 바로가기

Java/Spring

Spring 5 입문: Chapter 02A. 스프링 프로젝트 시작하기

더보기

이 프로젝트의 개발 환경

  • 개발 언어 및 개발 환경
    • OpenJDK 17
  • 기타 환경
    • macOS Sonoma 14.1.1
    • IntelliJ IDEA 2020.3 Ultimate Edition

Gradle로 Spring 프로젝트 생성

예제 진행을 위해서 프로젝트 디렉토리 spring5fs/sp5-chap02를 생성합니다.

프로젝트 루트 디렉토리에서 src/main/javasrc/main/resources 디렉토리를 생성합니다.

$ tree
.
└── spring5fs
    └── sp5-chap02
        └── src
            └── main
                ├── java
                └── resources

6 directories, 0 files

spring5fs/sp5-chap02 디렉토리에서 build.gradle 파일을 생성합니다.

apply plugin: 'java'

sourceCompatibility = '17'
targetCompatibility = '17'
compileJava.options.encoding = "UTF-8"

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.springframework:spring-context:5.0.2.RELEASE'
}

tasks.wrapper {
    gradleVersion = '6.7.1'
}

프로젝트 루트 디렉토리에서 gradle wrapper를 입력합니다.

$ gradle wrapper

BUILD SUCCESSFUL in 507ms
1 actionable task: 1 up-to-date

빌드가 성공하면 프로젝트 루트 디렉토리에 gradlew gradlew.bat 파일과 .gradle 디렉토리가 생성됩니다.

더보기

gradlew.bat은 Windows 환경에서 Gradle 사용을 위한 Wrapper 파일입니다.

gradlew는 macOS 또는 Linux 환경에서의 Wrapper 파일입니다.

Wrapper 파일을 사용하면 별도의 Gradle 설치 없이도 Gradle 명령어를 사용 할  수 있습니다.

예를 들어 ./gradlew compileJava를 실행하면 다음과 같이 Gradle Wrapper가 Gradle 명령문을 대신 실행합니다.

$ ./gradlew compileJava
.........10%..........20%..........30%..........40%..........50%.........60%..........70%..........80%..........90%..........100%
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.7.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 16s

이제 프로젝트 전체 구조는 다음과 같습니다.

$ tree -al
.
└── spring5fs
    └── sp5-chap02
        ├── .gradle
        │   ├── 6.7.1
        │   │   ├── executionHistory
        │   │   │   ├── executionHistory.bin
        │   │   │   └── executionHistory.lock
        │   │   ├── fileChanges
        │   │   │   └── last-build.bin
        │   │   ├── fileHashes
        │   │   │   ├── fileHashes.bin
        │   │   │   └── fileHashes.lock
        │   │   ├── gc.properties
        │   │   └── vcsMetadata-1
        │   ├── buildOutputCleanup
        │   │   ├── buildOutputCleanup.lock
        │   │   ├── cache.properties
        │   │   └── outputFiles.bin
        │   ├── checksums
        │   │   └── checksums.lock
        │   ├── configuration-cache
        │   │   └── gc.properties
        │   └── vcs-1
        │       └── gc.properties
        ├── .idea
        │   ├── .gitignore
        │   ├── misc.xml
        │   ├── modules.xml
        │   ├── sp5-chap02.iml
        │   └── workspace.xml
        ├── build.gradle
        ├── gradle
        │   └── wrapper
        │       ├── gradle-wrapper.jar
        │       └── gradle-wrapper.properties
        ├── gradlew
        ├── gradlew.bat
        └── src
            └── main
                ├── java
                └── resources

19 directories, 22 files

IntelliJ IDEA에서 프로젝트를 다시 열면 다음과 같은 팝업이 표시됩니다.

팝업에서 Load Gradle Project를 누르면 Gradle 프로젝트가 열리게 됩니다.

이제 IDE에서 Gradle Tool Window를 사용 할 수 있습니다.

정리 및 복습

  • 새로운 프로젝트 디렉토리를 생성하고 안내된 내용에 따라서 프로젝트를 구성합니다.
  • gradle wrapper를 입력하면 프로젝트 루트 디렉토리에 gradlew gradlew.bat 파일과 .gradle 디렉토리가 생성됩니다.
  • gradlew.bat은 Windows 환경에서 Gradle 사용을 위한 Wrapper 파일입니다. gradlew는 macOS 또는 Linux 환경에서의 Wrapper 파일입니다.
  • Gradle Wrapper를 사용하면 별도의 Gradle 설치 없이도 Gradle 명령어를 사용 할 수 있습니다.
  • IDE에서 Gradle 프로젝트로 로드합니다.