복붙노트

[SPRING] spring-boot-maven-plugin은 형제 모듈 의존성을 깨뜨린다.

SPRING

spring-boot-maven-plugin은 형제 모듈 의존성을 깨뜨린다.

멀티 모듈 메이븐 셋업이 있습니다. 상위 모듈과 두 개의 하위 모듈 (하위), A와 B. 모듈 B는 A에 종속성을가집니다. 그러나 모듈 A에서 spring-boot-maven-plugin을 사용하면 컴파일 종속성이 해결되지 않습니다 모듈 B의 컴파일 목표는 '심볼을 찾을 수 없습니다'및 '패키지가 존재하지 않습니다'라는 오류를 발생시킵니다. 플러그인을 사용하지 않으면 모든 것이 작동하지만이 프로젝트에서 제거 할 수 없습니다.

문제를 재현하는 방법은 다음과 같습니다.

상위 pom.xml

<modelVersion>4.0.0</modelVersion>
<groupId>com.whatever</groupId>
<artifactId>theparent</artifactId>
<version>2.7.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
    <module>service</module>
    <module>serviceClient</module>
</modules>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
</parent>

모듈 A

<modelVersion>4.0.0</modelVersion>
<artifactId>service</artifactId>
<packaging>jar</packaging>
<parent>
    <groupId>com.whatever</groupId>
    <artifactId>theparent</artifactId>
    <version>2.7.0-SNAPSHOT</version>
    <relativePath>../</relativePath>
</parent>

모듈 B

<modelVersion>4.0.0</modelVersion>
<artifactId>serviceClient</artifactId>
<parent>
    <groupId>com.whatever</groupId>
    <artifactId>theparent</artifactId>
    <version>2.7.0-SNAPSHOT</version>
    <relativePath>../</relativePath>
</parent>
<dependencies>
    <dependency>
        <groupId>com.whatever</groupId>
        <artifactId>service</artifactId>
        <version>2.7.0-SNAPSHOT</version>
    </dependency>
</dependencies>

이제는 모듈 A에 클래스가 있고 모듈 B에 다른 클래스가 있는데이 클래스는 첫 번째 클래스를 가져와 사용합니다. 부모 모듈 수준에서 'mvn clean install'을 실행하면 컴파일이 잘됩니다. 그러나 일단이 플러그인이 모듈 A에 추가되면 :

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.whatever.Application</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

모듈 B는 모듈 A의 종속성을 더 이상 해결할 수 없으며 모듈 A의 클래스를 볼 수 없다는 것을 나타내는 '패키지가 존재하지 않음', '찾을 수 없음'등의 메시지를 보게됩니다.

이거 버그 야? 누구든지이 문제를 해결할 수 있도록 도와 줄 수 있습니까?

해결법

  1. ==============================

    1.희망이 게시물은 당신을 도울 수 있습니다.

    희망이 게시물은 당신을 도울 수 있습니다.

  2. from https://stackoverflow.com/questions/43358016/spring-boot-maven-plugin-breaks-sibling-module-dependency by cc-by-sa and MIT license