spring-boot-maven-plugin打破了兄弟模块依赖

时间:2017-04-11 23:52:35

标签: spring maven spring-boot

我有一个多模块maven设置。一个父模块,加上两个子模块(子),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&#39;在父模块级别。但是,一旦在模块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中的依赖关系,您将看到&#39;包不存在&#39;,&#39;找不到符号&#39;等信息,表明它可以&# 39;看模块A中的课程。

这是一个错误吗?任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

希望post可以帮到你。