Springboot项目 -- 多模块
多模块
在实际的springboot项目时,一般不会直接在新建的springboot工程中写逻辑代码,而是再新建Maven模块作为子模块,在子模块中去写代码。比如ruoyi-vue-pro项目:
图中粗字体的文件夹即表示一个子模块。
- 删掉父工程的src文件夹
- 在某个子模块中添加启动项
pom.xml配置文件
为了让各个子模块和父工程之间联系起来,需要利用pom.xml文件。
父工程的pom.xml文件:设置打包类型、管理依赖版本和公共依赖
1 | <!-- 打包类型 --> |
构建springboot项目有两种方式:
第一种是继承spring-boot-starter-parent
第二种是通过dependencyManagement进行依赖管理
一般情况下,企业都有自己的parent依赖包,然后所有的项目都必须继承对应的parent包,这时候,我们就可以通过这种方式使用springboot,使用这种方式记得指定maven编译版本.
1 | <dependencyManagement> |
这两种方式,我们在pom中引入spring-boot-starter类的依赖时都不需要指定版本;
继承spring-boot-starter-parent其实也算是继承自spring-boot-dependencies,我们点开spring-boot-starter-parent,可以看到parent其实也是继承dependencies,parent里面就增加了一些插件,然后指定了maven编译版本:
在子模块的pom.xml中:指定父工程和当前子模块使用的依赖
1 | <!-- 通过<parent>标签继承父工程下的pom.xml--> |
驱动(如spring-boot-maven-plugin)只放在含启动类的子模块的pom文件中,此驱动必须要启动类,否则出错。不能放在父工程的pom中,会被其他没有启动类的子模块继承。
Maven
在打开一个新的项目时,Maven会解析pom.xml文件中配置的依赖。它会先从本地仓库中查找已下载的依赖,如果没有找到,会尝试从网络上下载:
- Maven 中央仓库(默认):由 Maven 社区管理,其中包含了大量常用的库。要浏览中央仓库的内容,maven 社区提供了一个 URL。使用这个仓库,开发人员可以搜索所有可以获取的代码库。
- 远程仓库:开发人员自己定制仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
Idea自带一个Maven,可在File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven中查看。Idea自带maven的xml配置文件的位置: idea安装目录\plugins\maven\lib\maven3\conf\settings.xml。下载的jar包默认在C盘中,可以在其中去配置jar包的存储位置和镜像:
修改jar包的存储位置:在配置文件中搜索
<localRepository>
标签。修改镜像:中央仓库的位置在国外。在
<mirrors>
标签内。1
2
3
4
5
6
7<!--有问题-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>或者在父工程的pom文件中添加:
1
2
3
4
5
6
7
8
9
10
11
12
13<repositories>
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
其他:
【IntelliJ IDEA】idea修改设置默认maven,解决每次新建和导入项目都需要重新配置maven
idea每次检出项目之后,都会变成默认的 Bundled (Maven 3)
我倒是想改掉,使用我自己配置maven,不过尝试了很多方法,发现不是很好,解决不了检出的maven版本,那就解决idea自带的maven公司内网必须配置镜像才能正常使用maven,公司都有自己的settings.xml文件,所以需要替换掉 原本的settings.xml文件。
多模块项目运行
下载好别人的项目,等待maven解析完成之后,运行报错,比如IDE能识别到某个类但显示无法加载,或者提示找不到启动类,可能在启动之前还需要做一些的工作。
以ruoyi-vue-pro项目为例,启动项目前需要依次将yudao-dependencies和yudao-framework两个模块中的jar包打包安装到本地Maven仓库。
“使用 IDEA 打开 Terminal 终端,在 根目录 下直接执行 mvn clean install package '-Dmaven.test.skip=true'
命令,将项目进行初始化的打包,然后再执行启动类。”
如果使用的是IDEA自带的maven,会显示无法识别 mvn
,可以这样做:
启动还是报类不存在?
可能是 IDEA 的 bug,点击 [File -> Invalidate Caches] 菜单,清空下缓存,重启后在试试看。