思维导图:
我们先看看pom.xml文件:
标签最常用的四个属性标签:
groupId:项目组织唯一的标识符,实际对应JAVA的包的结构。
artifactId:项目唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
version:jar包的版本号。可以直接填版本数字,也可以在properties标签中设置属性值。
scope:jar包的作用范围。可以填写compile、runtime、test、system和provided。用来在编译、测试等场景下选择对应的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多模块工程,让项目看起来很秀~
如图所示:
我们把其他两个工程依赖到web下的pom.xml文件里面去:
我们这里的api和common两个模块依赖于web这个模块,类似于这两个模块相当于作为web的一个jar包; 在这里,我们可以先把子模块打包导出来,然后父工程也可以导出来,都可以作为独立的工程导出来,这也就是多模块工程的意思。 父工程导出来的时候是批量进行导出,具体需要某一个工程包的时候,它需要的依赖会自动去本地仓库寻找; 值得注意的是,我们所选的web工程,它是一个war包,可以嵌套的;如果是jar包,那就不行;