不知道这里有什么问题。我从本地maven存储库中删除了所有文件,让它从头开始下载所有文件,但我无法摆脱这个错误:
为什么我会看到这个以及如何摆脱它?
[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
答案 0 :(得分:15)
IDEA没有任何问题,也没有您的依赖关系或本地maven缓存,它正确识别不匹配。
以下是检查方法:
您可以清楚地看到(忽略JavaDoc和FQCN)类文件包含@NonNull
注释参数的额外检查。导入显示lombok.NonNull
,documentation表示此转换将会发生。
我想最好的做法是要么忽略这个警告,要么让项目的维护者从lombok处理的源代码中构建sources.jar,如果可能的话。我认为他们需要使用delomboking和this Maven plugin,但我自己从未构建过lombok代码。
答案 1 :(得分:8)
在解决这个问题时,我没有必要乱用Maven,只处理IntelliJ IDEA。
对我来说,这个问题源于IntelliJ IDEA中的三个概念之间的混淆:模块,库和依赖项。我有不同的项目,使用不同的包,其中一些以不一致的方式互相引用。我对如何引用下载的第三方软件包也不一致。
一旦我区分了模块,库和依赖关系的三个概念,这很容易。我如何在脑海中澄清它们:
1)库是指代码(已编译或未编译),不会改变。
2)模块是指项目的一部分(如果你是独自工作的话),代码可能会发生变化。
3)依赖(对于此对话)是特定模块将使用的库或其他模块。
我从最初由另一个IDE创建的正在进行的项目的代码中添加了错误,作为IntelliJ IDEA中的依赖项。从理论上说这应该有效,而且确实如此,但是就像你一样,我无法忽略开发环境顶部的大红色横幅!
解决问题:
<强>模块强> 打开文件&gt;项目结构&gt;模块,并使用左上角的绿色加号(不是右边的那个)添加了代码可能会更改的其他项目。这使他们活着#39;对于IntelliJ,而不是一个尘土飞扬的旧的不可变图书馆,如果改变,可能会导致警报横幅向你大喊大叫。在这个阶段,只使用占据大部分对话框的大面板来检查导入的jar,源代码等,以验证你想要的内容。
<强>库强> 打开文件&gt;项目结构&gt;库,再次使用左上角的绿色加号添加包含不会更改的代码的文件夹。右边的另一个绿色加号允许您将内部文件夹添加到已添加的库中,但IntelliJ擅长在不同的项目结构中找到它们,因此请考虑从头开始添加新库,而不是添加您认为的特定文件夹缺少并导致存在多个副本,这是导致IntelliJ混淆(可理解)的另一个原因。
<强>依赖关系强> 现在一切都准备就绪,您可以返回文件&gt;项目结构&gt;模块。这一次转到占据大部分对话框的大面板,并转到“依赖关系”。标签。我在这个阶段工作的首选方式(特别是在项目规模庞大且复杂的时候)是沿着列出的模块工作,在我去的时候为每个模块添加库和模块依赖关系。这次为每个模块使用右侧的绿色加号来添加您需要的每个库或模块,这些应该从最后一步添加的库中提供给您。
警告强> 完成此过程时应注意两个重要步骤:
1。确保为每个模块添加的每个依赖具有范围&#39;编译&#39;在依赖项选项卡中。
2. 完成后,在单击“确定”之前,单击“项目结构”对话框底部的应用按钮。看起来它应该是自动的,就像IntelliJ中的其他许多东西一样,但我认为不是。在退出对话框之前,我没有单击“应用”,因此我对项目结构所做的更改丢失了。
答案 2 :(得分:8)
有同样的问题 - 从命令行执行 gradlew clean ,然后进入Android Studio并执行了文件 - &gt;使高速缓存无效并重新启动,一切都很好......
答案 3 :(得分:0)
我刚刚复制了文件的内容并将其删除。后来我刚创建了一个与旧文件同名的新文件,并将代码粘贴在其中。它对我有用。
对我来说,重新创建文件已经有效了。
答案 4 :(得分:0)
我遇到了这个问题,据我所知,我知道两种解决方案:
和/或
答案 5 :(得分:0)
就我而言,这有助于后续步骤:
答案 6 :(得分:0)
刚才我有这个问题,
什么帮助了我:
通过右键单击jar文件后在上下文菜单中选择“复制路径”,我找到了.ideaLibSources
文件夹(当文件为在编辑器中打开并聚焦),然后从该文件夹中删除unwonted-sources.jar。
重新下载。
btw无效/重新启动没有帮助
答案 7 :(得分:0)
这是由依赖 .m2 /存储库的软件包的旧编译版本引起的。
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
答案 8 :(得分:0)
检查lib附带的多个来源
可能是由于库中定义了多个来源。
检查并删除File > Project Structure > Libraries > lib with issue > Sources
例如文件>项目结构>库> Maven:com.rohit:example:1.0.0>源->删除多个源
答案 9 :(得分:0)
这就是我所做的:
为我工作。
答案 10 :(得分:0)
将旧版应用迁移到Androidx之后,我遇到了这个问题。该问题原来是使用与Androidx不兼容的AppTheme样式的ActionBar的问题。调试器未选择此选项。我通过
解决了该问题
<style name="AppBaseTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
</style>
答案 11 :(得分:0)
以下情况适用于我的情况:
答案 12 :(得分:0)
在我的例子中,我的项目中有一个辅助 pom.xml 用于备份 (pom.xml.versionBackup),这导致了“库源与类的字节码不匹配”的噩梦。没有其他工作(清理库缓存,远程 .idea 文件夹,删除 ~/.m2 文件夹,删除 *.iml 文件,远程目标文件夹,...)
答案 13 :(得分:0)
通常会使缓存和“gradle clean build”无效,但这次由于某种原因没有。在尝试了所有答案后,我决定关闭项目窗口,删除项目文件夹中的 .idea 文件夹,然后使用 IntelliJ 再次打开该项目(一旦将其作为项目打开,它会重新创建 .idea 文件夹)。工作完美。