首页 > 解决方案 > 为什么 Intellij IDEA 说已使用的属性未使用?

问题描述

我的 Java Maven 项目中有一个属性文件。我有一个类可以加载这些属性并将它们存储为常量。

//Constants.java file has this code.
Properties properties = new Properties(blah...);
String username = properties.getProperty("my.username");
System.out.println(username);

尽管使用了 my.username 属性和用户名变量,Intellij IDEA 说它没有被使用。为什么 ?我试图使缓存无效并重新启动 IDE,但它没有改变任何东西。

因此,很难找出哪些属性实际上未使用并删除它们。

这是项目结构:

PROJECT1

-> PROJECT2
--> src > main > resources > folder > my.properties
--> pom.xml

-> PROJECT3
--> src > main > java > packagea.b.c > packaged > packagee > Constants.java
--> pom.xml

pom.xml

标签: intellij-ideaproperties-file

解决方案


该问题不可重现:

未使用的财产

如果您有最小、完整和可验证的示例,请分享它,以便我们调查它为什么会在您的特定项目中发生。

这是正常工作的示例:unused-properties.zip


为了从描述中匹配您的多模块 Maven 项目,我创建了另一个示例项目来说明配置和正常工作的检查。

在此处获取示例项目:used-multimodule-maven.zip

pom.xml该项目在根目录中有一个聚合和 2 个模块: appproperties其中app依赖于properties

工作截图证明:

多模块 Maven 也可以

请注意,应用模块依赖于属性模块。这种依赖关系是通过以下应用程序模块的pom.xml配置来实现的。

    <dependencies>
        <dependency>
            <groupId>com.jetbrains.support</groupId>
            <artifactId>properties</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

推荐阅读