Gradle 설치 마스터 클래스 - 단계별로 익히는 간편한 설정 가이드
[ 목 차 ]
1. Gradle 설치
2. 환경 변수 설정
3. Gradle 버전 확인
4. 기본 프로젝트 생성
5. 프로젝트 디렉토리 구조 확인
6. gradle 설정으로 "Hello World" 프로젝트 만들기
7. gradle로 프로젝트 컴파일하고 실행하기
8. 특정 클래스만 컴파일 하고 테스트 하기
# Setting Up for Gradle # compile and run with gradle
Gradle을 설정하는 것은 프로젝트를 시작하는 첫 번째 단계입니다. 아래는 Gradle을 설정하는 예시입니다.
1. Gradle 설치
먼저, [Gradle 공식 웹사이트](https://gradle.org/install/)에서 Gradle을 다운로드합니다. 다운로드한 파일을 압축 해제하고 적절한 경로에 설치합니다.
```bash
$ unzip gradle-x.x.x-bin.zip
$ mv gradle-x.x.x /usr/local/gradle
```
2. 환경 변수 설정
Gradle을 사용하기 위해 환경 변수를 설정합니다. `~/.bashrc` 또는 `~/.zshrc` 파일에 다음을 추가합니다.
```bash
export PATH=$PATH:/usr/local/gradle/bin
```
변경 사항을 적용하려면 터미널을 다시 열거나 `source ~/.bashrc` 또는 `source ~/.zshrc`를 실행합니다.
3. Gradle 버전 확인
설치가 올바르게 되었는지 확인하기 위해 다음 명령어로 Gradle 버전을 확인합니다.
```bash
$ gradle -v
```
올바르게 설치되었다면 Gradle 버전 정보가 표시됩니다.
4. 기본 프로젝트 생성
Gradle을 사용하여 기본 프로젝트를 생성합니다. 새로운 디렉토리를 만들고 터미널에서 해당 디렉토리로 이동한 후 다음 명령어를 실행합니다.
```bash
$ gradle init --type java-application
```
이 명령어는 기본적인 Java 애플리케이션 프로젝트를 생성합니다.
5. 프로젝트 디렉토리 구조 확인
Gradle이 생성한 프로젝트 디렉토리를 확인합니다. `src` 디렉토리에 소스 코드 및 테스트 코드가 위치하고, `build` 디렉토리에 빌드된 파일이 생성됩니다.
```plaintext
my-project/
├── build/
└── src/
├── main/
│ └── java/
│ └── mypackage/
│ └── App.java
└── test/
└── java/
└── mypackage/
└── AppTest.java
```
이제 Gradle이 성공적으로 설정되었으며 기본 프로젝트를 생성했습니다. 추가적인 설정 및 의존성 관리는 `build.gradle` 파일을 수정하여 수행할 수 있습니다.
6. gradle 설정으로 "Hello World" 프로젝트 만들기
아래는 간단한 Java "Hello World" 프로그램을 포함하고 이를 컴파일하는 Gradle의 build.gradle 예시입니다.
gradle init 명령어를 사용하여 Gradle 프로젝트를 초기화하는 과정은 다음과 같습니다.
1. 프로젝트 디렉토리 만들기
새로운 프로젝트를 생성할 디렉토리를 만듭니다. 예를 들어, "my-gradle-project"라는 디렉토리를 생성합니다.
$ mkdir my-gradle-project
$ cd my-gradle-project
2. Gradle 프로젝트 초기화
아래 명령어를 실행하여 Gradle 프로젝트를 초기화합니다. 이때 --type 옵션을 사용하여 프로젝트의 유형을 지정합니다.
$ gradle init --type java-application
위 명령어는 Java 어플리케이션 프로젝트를 생성합니다. 초기화 과정에서 Gradle은 프로젝트 디렉토리 및 파일, 기본적인 설정을 생성합니다.
윈도우에서 다음과 같이 my-project를 초기화 하는 과정
D:\Dev_workspac\eclipse_workspace_2024\my-gradle-project>gradle init --type java-application
Select build script DSL:
1: Kotlin
2: Groovy
Enter selection (default: Kotlin) [1..2] 2
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit Jupiter) [1..4] 1
Project name (default: my-gradle-project2): my-project
Source package (default: my.project):
Enter target version of Java (min. 7) (default: 21):
Generate build using new APIs and behavior (some features may change in the next minor release)? (default: no) [yes, no]
> Task :init
To learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.5/samples/sample_building_java_applications.html
BUILD SUCCESSFUL in 14s
2 actionable tasks: 2 executed
3. 프로젝트 디렉토리 확인
초기화가 완료되면 프로젝트 디렉토리 구조를 확인합니다. 생성된 디렉토리 및 파일은 다음과 비슷할 것입니다.
"실제는 app.src.main.java.my.gradle.project " 로 생성이 되는데 아래와 같이 수정하였습니다. "
my-gradle-project/
├── build.gradle
├── gradle/
│ └── wrapper/
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── app/
└── src/
├── main/
│ ├── java/
│ │ └── my/
│ │ └── project/
│ │ └── App.java
│ └── resources/
└── test/
├── java/
│ └── my/
│ └── project/
│ └── AppTest.java
└── resources/
4. 프로젝트 구조 변경
src/main/java 디렉토리에 my/project 디렉토리를 만들고, 그 안에 HelloWorld.java 파일을 추가합니다.
$ mkdir -p src/main/java/my/project
$ touch src/main/java/my/project/HelloWorld.java
5. HelloWorld.java를 작성합니다.
이제 프로젝트 루트 디렉토리에 src/main/java/my/project/HelloWorld.java 파일을 생성하고 아래의 Java 코드를 추가하세요.
// src/main/java/my/project/HelloWorld.java
package my.project;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
6. 변경된 구조에 맞게 수정된 build.gradle 파일의 예시
// build.gradle
// Java 플러그인을 추가합니다.
plugins {
id 'java'
}
// 프로젝트의 설정을 정의합니다.
repositories {
mavenCentral()
}
// 프로젝트의 의존성을 정의합니다.
dependencies {
// 여기에 추가적인 의존성이 있다면 정의합니다.
testImplementation 'junit:junit:4.12'
}
// Java 소스 및 컴파일 설정을 정의합니다.
java {
// Java 버전을 설정합니다.
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
// 실행 가능한 JAR 파일을 만들기 위한 설정입니다.
jar {
manifest {
attributes(
'Main-Class': 'my.project.HelloWorld'
)
}
}
// 프로젝트의 디렉토리 구조를 설정합니다.
sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
}
}
// Gradle이 빌드를 어떻게 수행할지 정의합니다.
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
// 프로젝트의 디렉토리에 소스 코드를 저장할 위치를 설정합니다.
sourceSets.main.java.srcDirs = ['src']
// Hello World 프로그램의 소스 코드를 저장합니다.
// src/main/java/my/project/HelloWorld.java
7. 프로젝트 빌드
프로젝트를 Gradle로 빌드하는 방법은 터미널 또는 명령 프롬프트에서 다음 명령어를 사용하는 것입니다. 프로젝트 디렉토리로 이동한 후에 아래의 명령어를 실행하세요.
cd your/project/directory
gradle build
이제 터미널에서 프로젝트 디렉토리로 이동하여 gradle build 명령어를 실행하면 프로젝트가 빌드되고 build/libs 디렉토리에 JAR 파일이 생성됩니다. JAR 파일을 실행하여 "Hello, World!"를 출력할 수 있습니다.
Gradle을 설정하는 과정을 이해하셨다면, 다음으로는 Java 프로젝트를 생성하고 의존성을 관리하는 방법을 알아보겠습니다.
`gradle build` 를 실행했을때 다음과 같이 오류가 발생하였습니다.
"D:\Dev_workspac\eclipse_workspace\my-gradle-project\app\src\test\java\my\project\AppTest.java:6: error: package org.junit does not exist"
// build.gradle 파일에 추가 라이브러리를 인식하도록 합니다
...
dependencies {
// 여기에 추가적인 의존성이 있다면 정의합니다.
// Use JUnit test framework.
testImplementation libs.junit
}
...
7. gradle로 프로젝트 컴파일하고 실행하기
프로젝트를 Gradle로 빌드하고 나면, HelloWorld.java 파일을 실행하는 방법은 다음과 같습니다.
1) 터미널에서 실행:
터미널에서 프로젝트 디렉토리로 이동한 후, 다음 명령어를 실행합니다.
gradle run
이 명령어는 프로젝트를 빌드하고 main 메소드가 있는 클래스를 실행합니다. HelloWorld 클래스에 main 메소드가 있으므로, "Hello, World!"가 터미널에 출력될 것입니다.
2) 만들어진 JAR 파일 실행:
gradle build 명령을 실행하면 build/libs 디렉토리에 JAR 파일이 생성됩니다. 이 JAR 파일을 실행할 수 있습니다. 터미널에서 다음 명령어를 실행합니다.
java -jar build/libs/your-jar-file-name.jar
8. 특정 클래스만 컴파일 하고 실행 테스트 하기
Gradle을 사용하여 특정 파일만 컴파일하고 실행하는 것은 가능합니다. 여기에는 두 가지 방법이 있습니다.
8.1. 특정 클래스만 컴파일 및 실행하기:
만약 특정 클래스만을 대상으로 컴파일하고 실행하려면 다음과 같이 할 수 있습니다.
# HelloWorld 클래스만 컴파일
gradle compileJava --args="mypackage.HelloWorld"
# HelloWorld 클래스 실행
gradle run --args="mypackage.HelloWorld"
여기서 `--source-file` 옵션을 사용하여 특정 소스 파일의 경로를 지정할수 있습니다. 그리고 `mypackage.HelloWorld`는 실행하려는 클래스의 전체 경로입니다.
D:\Dev_workspac\eclipse_workspace>gradle run --args="my.project.HelloWorld"
> Task :app:runHelloWorld
Hello, World!
.
8.2 gradle Task를 추가하여 컴파일 하고 실행
... 생략 ...
task runHelloWorld(type: JavaExec) {
main = 'mypackage.HelloWorld'
classpath = sourceSets.main.runtimeClasspath
}
// main = 'my.project.HelloWorld'와 classpath = sourceSets.main.runtimeClasspath입니다.
// 여기서 my.project.HelloWorld는 실행하려는 클래스의 정확한 패키지 및 클래스 경로를 나타내어야 합니다.
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
command> gradle :app:runHelloWorld 를 실행하여 테스트 할 수 있습니다.
D:\Dev_workspac\eclipse_workspace>gradle :app:runHelloWorld
> Task :app:runHelloWorld
Hello, World!
이러한 방법을 통해 Gradle을 사용하여 특정 파일 또는 클래스만을 대상으로 컴파일하고 실행하는 방법까지 알아 보았습니다.
감사합니다.
'Programming' 카테고리의 다른 글
브라우저 확장 - 자동 로그인 입력기 작성 예제 - Auto Login Extension (94) | 2024.06.20 |
---|---|
[python] python virtualenv (가상환경) 사용하기 (32) | 2024.04.26 |
[엑셀] Excel VBA 코드 작성 - 엑셀 문자열 찾는 ZLOOKUP - 사용자 정의 엑셀 함수 만들기 (117) | 2024.04.09 |
자바 개발자를 위한 필수 도구 설치 가이드 - JDK, Gradle, Maven 한 번에 완성하기 (65) | 2024.01.02 |
웹사이트 소셜 공유를 위한 Open-Graph 필수값 (158) | 2023.12.21 |
■(꿀팁)-웹페이지 성능- 랜더링의 이해와 속도 개선을 위한 Java-Script 기능 (async , defer, crossorign) (41) | 2023.11.11 |
Python 기초 - 튜플(Tuple) 자료형의 특징과 활용 (158) | 2023.10.17 |