Maven (web.xml)
특징
• Java를 사용하여 프로젝트 빌드 자동화에 주로 사용되는 압축 소프트웨어 프로젝트 관리 도구
• 종속성, 관리, 모듈화, 일관성, 많은 플러그인 및 규칙(구성 초과)이 선호될 때 사용
성능
• 프로젝트와 연결된 목표가 정의
• 증분 컴파일은 지원하지 않음
종속성 관리
• 버전에 의해서만 종속성을 재정의
• 내장된 종속성 범위가 거의 없음
• 게시자가 선택적 종속성을 통해 메타데이터를 제공할 수 있지만 문서로만 제공
의존성에 대한 제약사항
• <packaging>pom</packaging>를 정의하여 의존성에 대한 제약사항을 공유
프로젝트에서 일괄된 라이브러리를 가지도록 하게 해줌
• process-resource 페이즈 웹 리소스, 패키지 속성 파일 등과 같은 다양한 파일에 대한 변수를 대체
Gradle (build.gradle)
특징
• Apache Ant 및 Apache Maven의 개념을 기반으로 하는 오픈 소스 빌드 자동화 도구
• 유연성, 사용 편의성, 속도 및 증분 빌드가 중요한 경우 사용
성능
• 작업이 수행되는 작업을 기반
• 변경된 파일만 처리 (증분성)
• 다른 Gradle 빌드의 빌드 출력을 재사용
• 수명이 긴 프로세스 (대규모 빌드의 경우 100배 더 빠름)
종속성 관리
• 사용자 지정 가능한 종속성 선택 및 대체 규칙을 제공
• 여러 소스 프로젝트를 함께 빌드하여 복합 빌드를 만들 수 있음
• 버전을 엄격하게 선언하여 전이 버전보다 우선 하여 종속성을 다운그레이드 할 수 있음
• 기능 변형 및 선택적 종속성을 완벽하게 지원
의존성에 대한 제약사항
• 4.6 이상 - pom.xml 파일을 사용할 때 종속성 제약 조건 생성
• 5.0 이하 - settings.gradle 에 아래 코드 추가
enableFeaturePreview('IMPROVED_POM_SUPPORT')
build.gradle
dependencies
{
// 스프링 부트 의존성 BOM
implementation 'org.springframework.boot:spring-boot-dependencies:1.5.8.RELEASE'
//버전 없이도 의존성이 해결된다.
implementation 'com.google.code.gson:gson'
implementation 'dom4j:dom4j'
}
• processResources 태스크
• FilterReader
processResources {
expand(version: version, buildNumber: currentBuildNumber)
}
왼쪽 토큰 이름, 오른쪽이 프로젝트 속성
이 변수 대체는 모든 리소스 파일에 적용됨
(보통 src/main/resources 에 있는 것들)
버전에 따른 Java 호환 버전
Maven Version | Release Date | Required Java Version | Gradle Version | Required Java Version |
3.8.4 | 2021-11-14 | Java 7 | 7.3 | Java 17 |
3.8.3 | 2021-09-27 | 7 | Java 16 | |
3.8.2 | 2021-08-04 | 6.7 | Java 15 | |
3.8.1 | 2021-04-04 | 6.3 | Java 14 | |
3.6.3 | 2019-11-25 | 6 | Java 13 | |
3.6.2 | 2019-08-27 | 5.4 | Java 12 | |
3.6.1 | 2019-04-04 | 5 | Java 11 | |
3.6.0 | 2018-10-24 | 4.7 | Java 10 | |
3.5.4 | 2018-06-21 | 4.3 | Java 9 | |
3.5.3 | 2018-03-08 | 2 | Java 8 | |
3.5.2 | 2017-10-24 | |||
3.5.0 | 2017-04-07 | |||
3.5.0-beta-1 | 2017-03-24 | |||
3.5.0-alpha-1 | 2017-02-28 | |||
3.3.9 | 2015-11-14 | |||
3.3.3 | 2015-04-28 | |||
3.3.1 | 2015-03-18 |
참고
ContentFilterable (Gradle API 4.7)
Expands property references in each file as it is copied. More specifically, each file is transformed using Groovy's SimpleTemplateEngine. This means you can use simple property references, such as $property or ${property} in the file. You can also include
docs.gradle.org
[Interface & Abstract class] 인터페이스와 추상클래스 (0) | 2022.10.20 |
---|---|
[Java] Web Server & Web Application Server (WAS) (1) | 2022.10.13 |
[Java] java.util.function (0) | 2022.10.04 |
[Java] POJO란? (0) | 2022.10.04 |
댓글 영역