为啥 Intellij IDEA 说已使用的属性未使用?

Posted

技术标签:

【中文标题】为啥 Intellij IDEA 说已使用的属性未使用?【英文标题】:Why does Intellij IDEA say that used properties are unused?为什么 Intellij IDEA 说已使用的属性未使用? 【发布时间】:2020-01-14 19:20:48 【问题描述】:

我的 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

【问题讨论】:

您还需要更好的答案吗?我有什么可以改进的吗? @CrazyCoder - 请再给我一些时间。我会设法解决这个问题并回来。 【参考方案1】:

问题不可重现:

如果您有Minimal, Complete, and Verifiable example,请分享它,以便我们调查为什么它会在您的特定项目中发生。

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


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

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

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

工作截图证明:

注意app module depends on the properties module.这个依赖是 achieved 通过 app 模块的以下 pom.xml 配置。

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

【讨论】:

不幸的是,我在专有代码中看到了这一点,因此我无法共享代码/视频/屏幕截图。我正在尝试将代码库的结构复制到我可以分享的示例中。同时,我有什么调试技巧可以弄清楚为什么使用的属性显示为未使用? 我用项目的结构更新了问题。希望这会有所帮助。不幸的是,我不知道如何用多个 pom 复制该结构。我只记得这样的结构叫做多模块项目。 @BoratSagdiyev 项目 3 是否依赖项目 2? 如何检查? @BoratSagdiyev 在module dependencies.

以上是关于为啥 Intellij IDEA 说已使用的属性未使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何用intellij idea 12 写一个helloworld,为啥新建不出来类啥的呢

为啥intellij idea安装eclipse code formatter插件装不上

为啥 Intellij Idea 建议在使用循环将数组转换为 Set 时创建中间列表?

如何使用 IntelliJ IDEA 查找所有未使用的代码?

intellij idea解析本地maven仓库无效是为啥

为啥 Intellij Idea 的嵌入式终端中只有 75 个可见字符?