Gradle 프로젝트 생성
1. gradle init
gradle init
Select type of project to generate: <== 프로젝트 유형 선택
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2
Select implementation language: <== 프로그래밍에 사용할 언어 선택
1: C++
2: Groovy
3: Java
4: Kotlin
5: Scala
6: Swift
Enter selection (default: Java) [1..6] 3
Split functionality across multiple subprojects?:
1: no - only one application project
2: yes - application and library projects
Enter selection (default: no - only one application project) [1..2] 1
Select build script DSL: <== 빌드 스크립트 파일을 작성할 때 사용할 언어 선택
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2] 1
Select test framework: <== 단위 테스트로 사용할 프레임워크 선택
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4] 1
Project name (default: sksiltron_kafka): <== 프로젝트 이름 설정
Source package (default: sksiltron_kafka): com.example.app <== 자바 패키지 설정
> Task :init
Get more help with your project: https://docs.gradle.org/6.9.3/samples/sample_building_java_applications.html
BUILD SUCCESSFUL in 1m 37s
2 actionable tasks: 2 executed
2. tree 확인
tree
.
├── app
│ ├── build.gradle
│ └── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── app
│ │ │ └── App.java
│ │ └── resources
│ └── test
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── app
│ │ └── AppTest.java
│ └── resources
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
- gradlew: gradle로 빌드한 프로젝트를 누군가 서버에 올리고 동료가 클론했을 때, 동료는 굳이 따로 gradle을 설치하지 않아도 gradlew 파일이 gradle-wrapper.jar를 풀어서 실행할 수 있게 한다.
- settings.gradle: 프로젝트 이름은 settings.gradle 파일 안에 rootProject.name = ‘프로젝트이름’으로 적혀 있다.
3. 프로젝트 실행
gradle run
gradle 도구가 클래스를 실행한다. 실행하는 메인을 build.gradle에 적어줘야 한다.
application {
// Define the main class for the application.
mainClassName = 'com.example.app.App'
}
자바 프로젝트 빌드
gradle build
- 빌드 절차
- 소스 파일 컴파일
- 단위 테스트 수행
- .jar 아카이브 파일 생성
- 실행과 관련된 파일 생성
- .tar, .zip 배포 파일 생성
- /build/distributions/에 배포파일이 생긴다.
├── build
│ ├── distributions
│ │ ├── bitcamp-java-project.tar <== Unix/Linux 사용자에게 배포하는 파일
│ │ └── bitcamp-java-project.zip <== Windows 사용자에게 배포하는 파일
배포 파일의 압축을 플고 그 안의 스크립트 파일을 실행해보자.
➜ distributions git:(master) ✗ tar -xvf *.tar <== 압축파일 푸는 명령어 ➜ distributions git:(master) ✗ cd bitcamp-java-project ➜ bitcamp-java-project git:(master) ✗ tree . ├── bin │ ├── bitcamp-java-project │ └── bitcamp-java-project.bat └── lib ├── bitcamp-java-project.jar ├── checker-qual-2.11.1.jar ├── error_prone_annotations-2.3.4.jar ├── failureaccess-1.0.1.jar ├── guava-29.0-jre.jar ├── j2objc-annotations-1.3.jar ├── jsr305-3.0.2.jar └── listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
2 directories, 10 files ➜ bitcamp-java-project git:(master) ✗ cd bin ➜ bin git:(master) ✗ ./bitcamp-java-project <== 스크립트 파일 실행 Hello world. 이때 Windows os의 경우 bat파일을 실행한다. 특히 우리가 만든 app.class 가 lib안의 bitcamp-java-project.jar에 있다. 여기에 있는 app.class를 실행하는 명령어가 bin에 있는 거!!! => 이게 바로 shell script이다. 이 스크립트는 고객 컴퓨터가 어떤지 모르니까 모든 경우의 수를 다 따져봐서 실행할 수 있게 만들어졌다. 개발자라면 그냥 jvm의 java 명령어로 실행할 수 있겠지만 빌드는 일반 사용자를 위해 배포파일을 만드는 과정이다. gradle clean: 빌드한 걸 삭제하는 명령어