为啥 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 说已使用的属性未使用?的主要内容,如果未能解决你的问题,请参考以下文章