Maven 错误 "Property ${samedir} has not been set"

maven error "Property ${samedir} has not been set"

如何修复maven checkstyle插件错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.2:check (validate) on project yourproject: 
Failed during checkstyle execution: 
Failed during checkstyle configuration: unable to parse configuration stream:
com.puppycrawl.tools.checkstyle.api.CheckstyleException: 
Property ${samedir} has not been set -> [Help 1]

${samedir} 是一个 属性 可以很好地与 eclipse 插件一起工作的插件,并且需要获取 checkstyle 配置中提到的相关文件与 eclipse IDE 一起很好地工作。所以要么我需要一致的替换,要么我可以告诉 maven 定义 属性

有解决此问题的想法吗?

您必须通过 pom 中的插件配置来设置这些值。

如果您的项目根目录中有一个名为 checks 的目录,pom.xml 的示例配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>3.1.2</version>
    <configuration>
        <configLocation>${basedir}/checks/checkstyle.xml</configLocation>
        <propertiesLocation>${basedir}/checks/checkstyle_maven.properties</propertiesLocation>
    </configuration>
</plugin>

以及checkstyle_maven.properties内容:

samedir=checks

作为 <propertiesLocation> 的替代方案,您还可以使用以下内容,在这种情况下您不需要 .properties 文件:

<propertyExpansion>samedir=${basedir}/checks</propertyExpansion>

这将确保 checkstyle.xml 中的任何配置都将像这样工作:

<module name="Checker">
    <module name="SuppressionFilter">
        <property name="file" value="${samedir}/suppress.xml"/>
    </module>
</module>

参考参考: