首页 > 解决方案 > 作为插件参数的“用户属性”的 Maven 属性与作为同一参数的“默认”属性之间的区别

问题描述

一些 Maven 插件具有“编码”参数,该参数具有与之关联的属性,并且还具有也是属性的默认值。

<encoding>
User Property: encoding
Default: ${project.build.sourceEncoding}

看起来这两个属性做同样的事情:

<properties>
        <encoding>UTF-8</encoding>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

这种冗余是否有原因?作为插件参数的“用户属性”的属性和作为同一参数的“默认”属性之间有区别吗?

标签: mavenmaven-plugin

解决方案


两者不等价。

  • project.build.sourceEncoding指所有源文件的编码。这包括资源。
  • encoding特定于 Java 源文件的编码。

推荐阅读