Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 자동화봇
- 국비지원 예습
- 강아지 더위
- 강아지 유기농
- 샤로수길 맛집
- 신포동 맛집
- 부산 맛집
- 강아지 홀리스틱
- 쿠팡매크로
- 서울대입구 맛집
- 반려견
- 티켓팅메크로
- 강아지 열사병
- 강아지 유기농 사료
- 샤로수길 데이트
- 닥스훈트
- 티켓팅매크로
- 반려견 홀리스틱
- 반려견 사료등급
- 강아지 종류
- 반려견 열사병
- 반려견 더위
- 강아지
- 홀리스틱 유기농
- 반려견 유기농 사료
- 강아지종류
- 반려견 종류
- 반려견 유기농
- 쿠팡메크로
- 동인천 맛집
Archives
- Today
- Total
심심한잉여의 잡동사니
[Maven&Gradle]메이븐(Maven)과 그래들(Gradle) 본문
반응형
메이븐(Maven)이란?
자바용 프로젝트 관리 도구이다.
아파치 앤트의 대안으로 만들어 졌으며, 아파치 라이센스로 배포되는 라이브러리를 관리해주는 오픈 소스이다.
특징은 네트워크를 통해 라이브러리를 관리해주기 때문에 과거에 일일히 수동으로 다 업데이트 혹은 연결 시켜주던 것을 자동으로 해주는 것이다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.kh</groupId>
<artifactId>Basic</artifactId>
<version>0.1</version>
<name>Basic</name>
<description>Test</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
그래들(Gradle)이란?
Groovy라는 언어를 기반으로 만들어진 빌드 도구.
Groovy란 JAVA가상 머신에서 실행되는 스크립트 언어이다.
JAVA와 마찬가지로 소스 코드를 작성하고 JVM에서 작동하지만 JAVA와 달리 컴파일을 할 필요가 없다.
따라서 Groovy를 JAVA의 방언이라고 부르는 사람도 있다.
이러한 Groovy를 사용하는 것이 그래들(Gradle)이다.
메이븐은 XML을 사용하여 복잡한 내용으로 접어들면 사용을 어려워하는 개발자들이 많았으나
그래들은 Groovy(자바의 방언)을 사용하기 때문에 개발자들이 보다 쉽게 사용이 가능하다고 말하는 사람들이 많다.
plugins {
id 'org.springframework.boot' version '2.6.5'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.test'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
메이븐(Maven) vs 그래들(Gradle)
메이븐은 프로젝트가 커질수록 내용이 길어지고 가독성이 떨어진다.
그래들은 훨씬 적은 양의 스크립트로 짧고 간결하게 작성이 가능하다.
소규모 프로젝트에서는 큰 차이가 없지만 규모가 커질수록 그래들(Gradle)을 사용하는 것이 더욱 유리하다.
그 이유는 따로 컴파일하지 않기 때문이다.
Groovy를 따로 익혀 사용해야하는 것이 단점이라면 단점이지만 최근 그래들로 많이 넘어가고 있는 추세라고 한다.
반응형
'코딩일기 > Spring&SpringBoot' 카테고리의 다른 글
[Spring]스프링 빈(Bean)이란? (0) | 2022.09.13 |
---|---|
[Spring]의존성 주입 @RequiredArgsConstructor (0) | 2022.09.06 |
[Spring]필터(Filter) 와 인터셉터(Interceptor)차이 및 용도 (0) | 2022.03.21 |
REST, REST API, RESTful 이란? (0) | 2022.03.13 |
[Spring]좋은 객체 지향의 설계 5가지 SOLID (0) | 2022.03.10 |