Maven默认激活的QA Profile未生效问题咨询
Maven多模块Profile激活问题解答
问题1:构建mdr-parent时QA Profile未激活,但mdr-commons模块构建时正常激活的原因
这是Maven activeByDefault 类型Profile的核心激活规则导致的:
- 父POM中QA Profile设置了
<activeByDefault>true</activeByDefault>,这类Profile仅在没有任何其他Profile被显式/自动激活时才生效。 - 当mdr-commons文件夹存在时,父POM中定义的
mdr-commonsProfile会通过文件存在性规则(检查${basedir}/mdr-commons/pom.xml存在)自动激活。此时因为已有其他Profile被激活,默认的QA Profile会被Maven自动禁用,所以父模块构建时spotless-maven-plugin不执行。 - 而构建mdr-commons子模块时,当前模块的
basedir是mdr-commons目录,此时文件存在性检查的路径${basedir}/mdr-commons/pom.xml不存在,mdr-commonsProfile不会被激活。因为没有其他Profile激活,默认的QA Profile就会生效,spotless-maven-plugin正常执行。
问题2:删除mdr-commons文件夹后QA Profile正常激活的原因
删除mdr-commons文件夹后,父POM中mdr-commons Profile的文件存在性激活条件不再满足,没有任何其他Profile被激活。此时父POM中设置为activeByDefault的QA Profile就会触发激活,所以执行mvn clean install时QA Profile正常生效。
内容的提问来源于stack exchange,提问作者clembo590
相关产品推荐
相关产品推荐

