일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- Gradle
- docker
- intellij
- Linux
- apache storm
- Angular2
- Storm
- hibernate
- hdfs
- 제주
- SBT
- scala
- Spring
- 스프링 배치
- Spring Boot
- design pattern
- DDD
- elastic search
- Spring XD
- hadoop
- elasticsearch
- Hbase
- Clean Code
- Domain Driven Design
- Java
- 엘라스틱서치
- 도메인주도설계
- Spring Batch
- nginx
- spark
- Today
- Total
욱'S 노트
Spring Boot - 빌드시스템 본문
디펜던시 관리를 지원하는 빌드 시스템을 선택하기를 강력하게 추천하고 Maven Central 리파지토리에서 배포한 artifacts를 사용하기를 권고한다. 그래서 우리는 Maven 이나 Gradle을 추천한다. Spring Boot는 다른 빌드시스템(예 - Ant)를 지원하지만, 부분적으로 잘 지원하지 못할 수 있다.
메이븐 사용자는 spring-boot-starter-parent 프로젝트를 상속받을 수 있다. parent 프로젝트는 다음과 같은 내용을 지원한다.
- 기본 컴파일러 Java 1.6
- UTF-8 소스 인코딩
- 디펜던시 관리 부분 - spring-boot-dependencies POM으로 상속되는 공통적인 디펜던시에 대한 version 태그를 누락할 수 있게 제공한다.
- 합리적인 리소프 필터링
- 합리적인 플러그인 설정 (exec plugin, surefire, Git commit ID, shade)
- application.properties 및 application.yml을 위한 합리적인 리소스 필터링
기본 설정 파일이 Spring 스타일 placeholders(${})를 지원하기 때문에 메이븐 필터링은 @..@ placeholders를 사용하기 위해 변경한다. (Maven property resource.delimiter를 오버라이드 할수 있다.)
프로젝트를 설정하기 위해선 spring-boot-starter-parent를 상속받으면 된다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.2.RELEASE</version>
</parent>
모두가 spring-boot-starter-parent를 상속받기를 원하지 않을 수 있다. 회사만의 표준 parent가 있거나 명시적으로 메이븐 설정을 하기를 원한다면 다음과 같이 디펜던시로 추가하면 된다.
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.2.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
spring-boot-starter-parent는 적절한 보수적인 자바 버젼을 선택한다. 만약 최신의 자바버젼으로 변경하고 싶다면 java.version property를 추가함으로써 변경할 수 있다.
<properties>
<java.version>1.8</java.version>
</properties>
Spring Boot는 executable jar로 프로젝트를 패키징할 수 있는 메이븐 플러그인을 포함하고 있다. plugins 섹션에 plugin을 추가할 수 있다. 만약 Spring Boot parent pom을 상속 받았고 parent pom에 정의된 설정을 변경할 필요가 없다면 플러그인만 추가하면 된다.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Starter POM은 어플리케이션에 포함시킬 수 있는 편리한 디펜던시 정의 세트이다. 당신이 필요한 Spring과 그와 연관된 기술들을 모아놓은 원스톱샵이다. 예를 들어 Spring과 데이터베이스 접근을 위해 JPA를 사용하기를 원한다면 spring-boot-starter-data-jpa 디펜던시만 프로젝트에 포함하면 된다.
모든 starter는 비슷한 이름 패턴을 가지고 있다 : spring-boot-starter-*. *은 어플리케이션의 특별한 타입이다. 이러한 네이밍 구조는 필요한 starter를 찾는데 도움을 준다.
'Programming > Spring Boot' 카테고리의 다른 글
Spring Boot - SpringApplication (0) | 2015.06.03 |
---|---|
Spring Boot - 데이터베이스 연동 (0) | 2015.04.09 |
Spring Boot - 프로젝트 구성하기 (0) | 2015.03.23 |
Spring Boot - 시작하기 (1) | 2015.03.23 |