Intellij idea 库源与类的字节码不匹配

Intellij idea 库源与类的字节码不匹配,intellij-idea,Intellij Idea,不知道这里怎么了。。我删除了本地maven存储库中的所有文件,并让它从头开始下载所有内容,但我无法摆脱此错误: 为什么我会看到这个,我怎么才能摆脱它 IDEA、依赖项或本地maven缓存都没有问题,它正确地识别了不匹配 以下是如何检查: 有问题的公开课 单击“显示差异” 选择“忽略空白和空行” 您可以清楚地看到(忽略JavaDoc和FQCNs),类文件包含了对@NonNull注释参数的额外检查。导入显示为lombok.NonNull,显示将发生此转换 我想最好的做法是忽略这个警告,或者

不知道这里怎么了。。我删除了本地maven存储库中的所有文件,并让它从头开始下载所有内容,但我无法摆脱此错误:

为什么我会看到这个,我怎么才能摆脱它



IDEA、依赖项或本地maven缓存都没有问题,它正确地识别了不匹配

以下是如何检查:

  • 有问题的公开课
  • 单击“显示差异”
  • 选择“忽略空白和空行”

您可以清楚地看到(忽略JavaDoc和FQCNs),类文件包含了对
@NonNull
注释参数的额外检查。导入显示为
lombok.NonNull
,显示将发生此转换


我想最好的做法是忽略这个警告,或者如果可能的话,让项目的维护人员从lombok处理的源代码中构建sources.jar。我认为他们需要使用delomboking和,但我自己从来没有构建过lombok代码。

在解决这个问题时,我没有必要和Maven混在一起,而是单独处理IntelliJ IDEA

对我来说,这个问题源于IntelliJ思想中三个概念之间的混淆:模块、库和依赖项。我有不同的项目,使用不同的包,其中一些以不一致的方式相互引用。对于如何引用下载的第三方软件包,我也不一致

一旦我区分了模块、库和依赖项这三个概念,就很容易了。我是如何在脑海中澄清这些问题的:

1) 指的是不会更改的代码(已编译或未编译)

2) 模块指的是项目中代码可能更改的部分(如果您单独工作,则指您的部分)

3) 依赖项(对于本对话)是特定模块将使用的库或其他模块

我在添加一个正在进行的项目的代码时出错,该项目最初是由另一个IDE创建的,作为IntelliJ IDEA中的依赖项。从理论上讲,这应该是可行的,的确如此,但像你一样,我不能忽视我的开发环境顶部的一条巨大的红色横幅

要解决这个问题:

模块 打开文件>项目结构>模块,并使用左上角的绿色加号(不是右边的加号)添加代码可能更改的其他项目。这使它们对IntelliJ“充满活力”,而不是一个尘封已久的不可变库,如果更改,可能会导致警报横幅向您呼喊。在这个阶段,只使用占据大部分对话框的大面板来检查导入的jar、源代码等,以验证您想要的已经到达

打开文件>项目结构>库,然后再次使用左上角的绿色加号添加包含不会更改的代码的文件夹。右边的另一个绿色加号允许您在已添加的库中添加内部文件夹,但因特利利擅长在不同的项目结构中查找这些文件,因此请从头开始添加新的库,而不是添加您认为缺少的并导致多个副本存在的特定文件夹。另一件使IntelliJ感到困惑的事情(可以理解)

依赖关系 现在一切都准备好了,您可以返回到文件>项目结构>模块。这次转到占据大部分对话框的大面板,并更改为“依赖项”选项卡。在这一阶段,我的首选工作方式(特别是当项目很大且复杂时)是沿着列出的模块向下工作,为每个模块添加库和模块依赖项。这一次,对于每个模块,使用右侧的绿色加号添加您需要的每个库或模块,这些库或模块应该从上一步添加的库或模块中提供给您

警告 有两个重要步骤
,您在完成该过程时应小心:

1。确保为每个模块添加的每个依赖项都在“依赖项”选项卡中具有范围“编译”


2。完成后,单击“项目结构”对话框底部的“应用”按钮,然后单击“确定”。它似乎应该是自动的,就像IntelliJ中的许多其他功能一样,但我认为它不是。由于在退出对话框之前未单击“应用”,我丢失了对项目结构所做的更改。

我只是复制了文件的内容并将其删除。后来,我创建了一个与旧文件同名的新文件,并将代码粘贴到其中。这对我有用


对我来说,只是重新创建文件就行了。

也遇到了同样的问题-从命令行执行了gradlew清理,然后进入Android Studio执行了文件->无效缓存并重新启动,一切都恢复正常。

我遇到了这个问题,据我所知,我知道有两种解决方案:

  • 单击IntellIj窗口顶部的“构建”,然后单击“构建项目”
  • 和/或

  • 在右侧,单击“maeven项目”(垂直书写为小字体),然后单击“清理”

  • 就我而言,这有助于下一步:

  • 从本地存储库中删除库
  • 重建项目

  • 刚才我有这个问题,

    帮助我的是:

    我找到了
    .ideaLibSources
    文件夹,在右键单击jar文件后,在上下文菜单中选择“复制路径”(当文件在编辑器中打开并处于焦点时,您可以在idea的上部区域找到jar文件链接),然后从该文件夹中删除ununonted-sources.jar。 aa并重新下载


    顺便说一句,无效/重新启动没有帮助

    这是由依赖于.m2/repo的包的旧编译版本引起的
    [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ wordvectors ---
    [INFO] masterthesis.code:wordvectors:jar:1.0-SNAPSHOT
    [INFO] +- org.apache.spark:spark-core_2.10:jar:1.6.0:compile
    [INFO] |  \- org.apache.hadoop:hadoop-client:jar:2.2.0:compile
    [INFO] |     \- org.apache.hadoop:hadoop-common:jar:2.2.0:compile
    [INFO] |        \- commons-configuration:commons-configuration:jar:1.6:compile
    [INFO] |           \- (commons-collections:commons-collections:jar:3.2.1:compile - omitted for conflict with 20040616)
    [INFO] \- org.deeplearning4j:deeplearning4j-ui:jar:0.4-rc3.8:compile
    [INFO]    \- org.deeplearning4j:deeplearning4j-nlp:jar:0.4-rc3.8:compile
    [INFO]       \- it.unimi.dsi:dsiutils:jar:2.2.2:compile
    [INFO]          \- commons-collections:commons-collections:jar:20040616:compile
    
     All you need to do is
      -> Find the package in m2 folder and delete it
      -> Rebuild the required package or re-download from the repository
      -> Reimport all packages in the project