Intellij Spring Maven安装错误“程序包不存在”

时间:2019-10-14 12:56:14

标签: spring maven intellij-idea

Intellij版本:社区2019.2.3 Maven的:3.6.2 春季:2.2.0

我试图用两个子模块(一个独立的模块,另一个独立的模块)创建一个非常简单的Spring maven项目。

根模块-testmultimodule 独立模块-独立 依赖模块-依赖

testmultimodule pom.xml具有所有与Spring相关的声明和模块定义

<modules>
    <module>independent</module>
    <module>dependant</module>
</modules>

独立的poom.xml最简单,并且。只有父Maven声明

<parent>
    <artifactId>testmultimodule</artifactId>
    <groupId>in.org.app</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>

依赖模块pom.xml对独立模块具有如下依赖声明

   <dependencies>
        <dependency>
            <groupId>in.org.app</groupId>
            <artifactId>independent</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

我已经在 dependent 模块下并使用了 independent 模块中的User对象创建了一个Test类。最初,没有上面的依赖声明,通常会出现编译错误。 一旦添加依赖项,并使用“构建”菜单中的“构建Prooject”选项在Intellij IDE中构建了项目,它将成功构建。

但是,如果我尝试在Intellij右侧窗口选项中使用Maven安装选项。它总是无法说明Error:(3,33) java: package in.org.app.independent.bo does not exist

如果您想自己看一下并进行测试,我将提供测试项目的GitHub URL。

GIT URL:

  

https://github.com/DhruboB/testmultimodule

到目前为止,我已经尝试了互联网上进行的各种调整,例如 清除Intellij缓存并重新启动,mvn -U全新安装,mvn作用域验证,代理等。

还有其他解决方法吗?我需要在Intellij社区版中解决此问题。

1 个答案:

答案 0 :(得分:0)

您的父项目包括spring-boot-maven-plugin的定义。这导致每个项目将其定义为父项目,并通过此插件将其重新打包为可执行的JAR。重新打包的JAR不能在另一个项目中用作依赖项。

对于要用作依赖项的项目,您都需要更改spring-boot-maven-plugin的配置。 《 Spring Boot参考指南》中的here对此进行了说明。现在,您基本上已经从该项目中获得了2个jar,一个是普通的,一个是可执行文件。

如果不需要将该项目成为可执行JAR文件,则只需将spring-boot-maven-plugin移至需要的项目即可。所有其他项目将不再是基本的JAR文件。

另请参阅How to add a dependency to a Spring Boot Jar in another project?