스프링 부츠 - 이미 부모 폼을 가지고 있는 경우 부모 폼
이미 필요한 부모 POM이 있는 프로젝트에 스프링 부트 부모 POM을 포함시키기 위해 특별히 권장되는 접근법이 있습니까?
조직의 부모로부터 확장할 필요가 있는 프로젝트에는 무엇을 추천합니까(이것은 지극히 일반적인 일이며, 메이븐 센트럴에 게시된 프로젝트의 대부분은 공급원에 따라 다릅니다).빌드 작업의 대부분은 실행 가능한 JAR(예: 임베디드 Tomcat/Jetty 실행)의 작성과 관련되어 있습니다.부모로부터 확장하지 않고 모든 종속성을 얻을 수 있도록 사물을 구조화하는 방법이 있습니다(구성 대 상속과 유사).하지만 그런 식으로는 건축물을 구할 수 없어요.
따라서 필요한 부모 POM 내에 스프링 부트 부모 POM을 모두 포함하거나 프로젝트 POM 파일 내에 POM 의존 관계를 갖는 것이 좋습니다.
다른 옵션은?
TIA,
스캇
spring-boot-parent-parent를 "bom"(이 기능을 지원하는 다른 프로젝트 c.f. Spring 및 Jersey)처럼 사용하고 scope=import를 사용하여 종속성 관리 섹션에만 포함할 수 있습니다.이렇게 하면 실제 부모 설정을 바꾸지 않고도 이 기능을 사용할 수 있는 많은 이점(의존관계 관리)을 누릴 수 있습니다.
다른 두 가지 주요 기능은 다음과 같습니다.
- 재정의할 종속성 버전을 빠르게 설정하기 위한 속성 로드 정의
- 일부 플러그인을 기본 구성(주로 Spring Boot Maven 플러그인)으로 구성합니다.따라서 친부모를 사용하는 경우 이러한 작업을 수동으로 수행해야 합니다.
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2022-05-29를 1.5.9로 업데이트합니다.풀어주다.
완전한 코드와 실행 가능한 예는 https://github.com/surasint/surasint-examples/tree/master/spring-boot-jdbi/9_spring-boot-no-parent에 있습니다(README.txt 참조).
이게 기본으로 필요해요.
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springframework.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
그러나 그것만으로는 충분하지 않습니다.또한 spring-boot-maven-plugin의 목표를 명시적으로 정의할 필요가 있습니다(Spring Boot을 부모로서 사용하는 경우는, 이것을 명시적으로 정의할 필요는 없습니다).
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springframework.boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
그렇지 않으면 실행 가능한 항아리 또는 전쟁으로 빌드할 수 없습니다.
아직 JSP를 사용하고 있는 경우는, 다음의 정보가 필요합니다.
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
그렇지 않으면 다음 오류 메시지가 나타납니다.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project spring-boot-09: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executi
ng in update mode) -> [Help 1]
NO. 스프링 부트에서 "${}" 대신 "@"를 사용하여 Maven Profile and Resource Filter를 사용하는 경우(이 예에서는 https://www.surasint.com/spring-boot-maven-resource-filter/))로 충분하지 않습니다.그런 다음 이 항목을 에 명시적으로 추가해야 합니다.
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
그리고 이건
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
링크 https://www.surasint.com/spring-boot-with-no-parent-example/ 의 예를 참조해 주세요.
Surasin Tancharoen의 답변에 따라 maven surefire 플러그인을 정의할 수도 있습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
Fail-Fast 플러그인 포함
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
언급URL : https://stackoverflow.com/questions/21317006/spring-boot-parent-pom-when-you-already-have-a-parent-pom
'IT' 카테고리의 다른 글
Wordpress는 언제 메타박스에 hide-if-js 클래스를 추가합니까? (0) | 2023.02.14 |
---|---|
원인: org.apache.logging.log4j.Logging Exception: log4j-slf4j-impl은 log4j-to-slf4j와 함께 사용할 수 없습니다. (0) | 2023.02.14 |
HttpResponse에서 json 가져오기 (0) | 2023.02.14 |
WordPress WooCommerce - WC_Cart 클래스를 사용하여 카트에 변수 제품 추가 (0) | 2023.02.14 |
MongoDB에서 Elastic Search를 사용하는 방법 (0) | 2023.02.14 |