스프링 부트 스타터 부모
스프링-부트-스타터-부모는 프로젝트 시작자입니다. 응용프로그램에 대한 기본 구성을 제공합니다. 모든 종속성에서 내부적으로 사용됩니다. 모든 Spring Boot 프로젝트는 pom.xml 파일의 상위 항목으로 spring-boot-starter-parent를 사용합니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
</parent>
상위 품목을 사용하면 여러 하위 프로젝트 및 모듈에 대해 다음과 같은 사항을 관리할 수 있습니다.
구성: Java 버전 및 기타 관련 속성의 일관성을 유지할 수 있습니다.
종속성 관리: 충돌을 피하기 위해 종속성 버전을 제어합니다.
소스 인코딩입니다.
기본 Java 버전입니다.
리소스 필터링입니다.
또한 기본 플러그인 구성도 제어합니다.
spring-boot-starter-parent는 spring-boot-dependency에서 종속성 관리를 상속합니다. 스프링 부트 버전 번호만 지정하면 됩니다. 추가 스타터의 요구사항이 있다면, 우리는 안전하게 버전 번호를 생략할 수 있습니다.
스프링 부트 스타터 부모 내부
스프링 부팅 스타터 상위에서는 스프링 부팅 종속성을 상위 폼으로 정의합니다. 스프링 부트 종속성에서 종속성 관리를 상속합니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.6.0.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
기본 상위 폼
<properties>
<java.version>1.8</java.version>
<resource.delimiter>@</resource.delimiter>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
속성 섹션은 응용 프로그램 기본값을 정의합니다. 기본 Java 버전은 1.8입니다. 속성 <java.version>1을 지정하여 Java 버전을 재정의할 수도 있습니다.프로젝트 폼에 8개 버전이 있습니다. 상위 폼에는 인코딩 및 소스와 관련된 몇 가지 다른 설정도 포함되어 있습니다. Spring Boot 프레임워크는 application.properties 파일에 정의되지 않은 경우 이러한 기본값을 사용합니다.
플러그인 관리
spring-boot-starter-parent는 maven-failsafe-plugin, maven-jar-plugin 및 maven-sure fire-plugin을 포함한 호스트의 기본 구성을 지정합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>${start-class}</mainClass> <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Tests.java</include>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/Abstract*.java</exclude>
</excludes>
</configuration>
</plugin>
스프링 부트 종속성
spring-boot-starter-parent 종속성은 spring-boot-dependency에서 상속되며 이러한 특성도 모두 공유됩니다. 따라서 Spring Boot은 종속성 관리의 일부로 종속성 목록을 관리합니다.
<properties>
<activemq.version>5.13.4</activemq.version>
...
<ehcache.version>2.10.2.2.21</ehcache.version>
<ehcache3.version>3.1.1</ehcache3.version>
...
<h2.version>1.4.192</h2.version>
<hamcrest.version>1.3</hamcrest.version>
<hazelcast.version>3.6.4</hazelcast.version>
<hibernate.version>5.0.9.Final</hibernate.version>
<hibernate-validator.version>5.2.4.Final</hibernate-validator.version>
<hikaricp.version>2.4.7</hikaricp.version>
<hikaricp-java6.version>2.3.13</hikaricp-java6.version>
<hornetq.version>2.4.7.Final</hornetq.version>
<hsqldb.version>2.3.3</hsqldb.version>
<htmlunit.version>2.21</htmlunit.version>
<httpasyncclient.version>4.1.2</httpasyncclient.version>
<httpclient.version>4.5.2</httpclient.version>
<httpcore.version>4.4.5</httpcore.version>
<infinispan.version>8.2.2.Final</infinispan.version>
<jackson.version>2.8.1</jackson.version>
....
<jersey.version>2.23.1</jersey.version>
<jest.version>2.0.3</jest.version>
<jetty.version>9.3.11.v20160721</jetty.version>
<jetty-jsp.version>2.2.0.v201112011158</jetty-jsp.version>
<spring-security.version>4.1.1.RELEASE</spring-security.version>
<tomcat.version>8.5.4</tomcat.version>
<undertow.version>1.3.23.Final</undertow.version>
<velocity.version>1.7</velocity.version>
<velocity-tools.version>2.0</velocity-tools.version>
<webjars-hal-browser.version>9f96c74</webjars-hal-browser.version>
<webjars-locator.version>0.32</webjars-locator.version>
<wsdl4j.version>1.6.3</wsdl4j.version>
<xml-apis.version>1.4.01</xml-apis.version>
</properties>
<prerequisites>
<maven>3.2.1</maven>
</prerequisites>
스프링 부트 스타터 (부모 없음)
경우에 따라 pom.xml 파일에서 spring-boot-starter-parent를 상속하지 않아도 됩니다. 이러한 사용 사례를 처리하기 위해 Spring Boot은 spring-boot-starter-parent를 상속하지 않고도 종속성 관리를 사용할 수 있는 유연성을 제공합니다.
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
위 코드에서 이것을 위해 <scope> 태그를 사용했음을 알 수 있습니다. 특정 종속성에 대해 다른 버전을 사용하려는 경우 유용합니다.
'SW > Spring Boot' 카테고리의 다른 글
Spring Boot : Spring Data JPA 개념, 예제, 설명 (0) | 2023.03.15 |
---|---|
Spring Boot : 스프링 부트 스타터 웹 개념, 예제, 설명 (0) | 2023.03.14 |
Spring Boot : 스프링 부트 Starters 개념, 설명, 예제, 방법 (0) | 2023.03.12 |
Spring Boot : 스프링 부트 애플리케이션 속성 설명, 방법, 개요 (0) | 2023.03.11 |
Spring Boot : 스프링 부트 어노테이션 설명, 방법, 예제 (0) | 2023.03.10 |