Maven多模块工程讲解~

1,670 阅读3分钟

写在前面:

小伙伴儿们,大家好!上一篇我们讲了Maven中的简介;

我们这次学习下Maven的多模块工程!

思维导图:

一、Maven配置文件;

我们先看看pom.xml文件:

标签最常用的四个属性标签:

groupId:项目组织唯一的标识符,实际对应JAVA的包的结构。

artifactId:项目唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

versionjar包的版本号。可以直接填版本数字,也可以在properties标签中设置属性值。

scopejar包的作用范围。可以填写compileruntimetestsystemprovided。用来在编译、测试等场景下选择对应的classpath

这里我们可以找到对应的文件夹,是mysql文件夹:

二、插件设置;

pom.xml默认是Maven提供的build插件,这里我们手动设置成jdk的插件;

设置成这个代码后, 我们可以看IDEA的右下角,正在加载安装;

然后,我们可以看下Maven的常用命令:

mvn compile
编译主程序代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时。
mvn test-compile
编译测试代码,compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。
mvn test
行应用程序中的单元测试。
mvn site
生成项目相关信息的网站。
mvn clean
清除目标目录中的生成结果。
mvn package
依据项目生成jar文件,打包之前会进行编译,测试。
mvn package -Dmaven.test.skip=true
依据项目生成jar文件,打包之前会进行编译,跳过测试

其实这些都对应了右侧的图形化界面,功能几乎都差不多:

三、Maven多模块讲解;

这里我们来聊一下如何闯将Maven多模块工程,让项目看起来很秀~

  • 首先建立一个父工程parent:

  • 然后在父工程下创建三个子模块:

    如图所示:

    我们把其他两个工程依赖到web下的pom.xml文件里面去:

    我们这里的api和common两个模块依赖于web这个模块,类似于这两个模块相当于作为web的一个jar包;

    在这里,我们可以先把子模块打包导出来,然后父工程也可以导出来,都可以作为独立的工程导出来,这也就是多模块工程的意思。

    父工程导出来的时候是批量进行导出,具体需要某一个工程包的时候,它需要的依赖会自动去本地仓库寻找;

    值得注意的是,我们所选的web工程,它是一个war包,可以嵌套的;如果是jar包,那就不行;


好了,今天就先分享到这里了,下期继续给大家带来Maven系列后续讲解!欢迎关注我的原创技术公众号~