maven的<packaging>pom</packaging>

项目打包类型:

1
2
3
<!--    <packaging>pom</packaging>-->
<!-- <packaging>jar</packaging>-->
<packaging>war</packaging>

指定打包类型用标签,默认是jar类型

注意:什么时候会用到pom打包类型

pom的意思是项目里没有java代码,也不执行任何代码,只是为了聚合工程或传递依赖用的。所以并不会寻找配置文件,若想配置文件生效,改为jar

maven 默认的打包类型为 jar,在项目聚合的时候,需要显式的将 父项目的 packing 指定为 pom,然后再指定所属的子模块

如果没有将packing 指定为pom ,那么子模块之间将无法正常的进行依赖传递。我们执行的maven命令的时候将首先对父项目执行,而后当 父项目 的packing 类型为 pom 时,将对所有的子模块执行同样的命令,否则将无法执行同样的命令,那么依赖的传递将无法由maven 编译或者打包命令 得以执行。

所以在使用maven进行多模块项目聚合时候,父项目必须将packing指定为pom,否则会报错。

今天我在改项目结构的时候,原本觉得项目结构拆分粒度过大,打算将子项目和父项目合并,合并完成之后就忘记将原本父项目的pom.xml文件的pom注释掉,导致数据库连接一直报错,折腾了好久才发现是这个错误,导致无法读取配置文件,血的教训。