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:
到目前为止,我已经尝试了互联网上进行的各种调整,例如 清除Intellij缓存并重新启动,mvn -U全新安装,mvn作用域验证,代理等。
还有其他解决方法吗?我需要在Intellij社区版中解决此问题。
答案 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?