Maven项目是否存在获取packaging(打包类型)的属性?
获取Maven项目打包类型的属性
project.packaging是Maven内置的有效属性,对应pom.xml中<packaging>标签的配置值(默认值为jar),你可以直接通过${project.packaging}或者更简洁的${packaging}引用它。
如果遇到引用无效的情况,可能是这些原因:
- 生命周期阶段问题:某些插件配置中,若在属性初始化前的阶段引用,会获取不到值。比如在
initialize之前的阶段执行插件,可能需要调整到validate及之后的阶段。 - 父子模块场景限制:父POM无法直接引用子模块的
packaging属性,因为父POM的构建流程先于子模块,子模块的属性还未被初始化。
举个实际使用的例子,在maven-antrun-plugin中打印打包类型:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <phase>validate</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>当前打包类型:${project.packaging}</echo> </tasks> </configuration> </execution> </executions> </plugin>
执行mvn validate命令即可在控制台看到对应的打包类型输出。
内容的提问来源于stack exchange,提问作者user27772
相关产品推荐
相关产品推荐

