IDEA中导入eclipse项目会受到.classpath和.project的影响

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA中导入eclipse项目会受到.classpath和.project的影响相关的知识,希望对你有一定的参考价值。

参考技术A IDEA中导入eclipse项目会受到.classpath和.project的影响

出现问题:JAVA----idea maven工程的module的Language Level总是自动变到5 enum的问题

直接删除,重新导入即可。

在 IntelliJ IDEA 中导入 Maven 依赖项

【中文标题】在 IntelliJ IDEA 中导入 Maven 依赖项【英文标题】:Import Maven dependencies in IntelliJ IDEA 【发布时间】:2012-07-12 09:06:40 【问题描述】:

我有一个关于 IntelliJ IDEA 11 的小问题。我刚刚从 subversion 导入了一个项目 - 它是一个 maven 项目。但是我在 maven 库依赖项中有一个问题,因此我无法自动包含所有 maven 依赖项 - 只有当我打开该类/这就是我在这里得到的内容时,IDEA 才会显示依赖项错误:

所以我希望自动添加所有依赖项——这可能吗,还是我必须通过所有类文件来识别和添加 maven 依赖项?!

更新:在做了一些修改后,我发现了如何以某种方式解决我的问题。这就是我所做的:

但我认为从逻辑上讲它不会包含并提前检查新的依赖项?!... intelliJ 中是否有任何设置区域 - 自动将依赖项导出到类路径?!

【问题讨论】:

它会下载所有依赖项,但似乎并未将所有依赖项都添加到类路径中...... 另一个问题是,只有当我打开该 java 文件时,intelliJ 才会向我显示红色下划线的错误... 出现这条红线的一个例子是,如果您有一个带有分类器的 SNAPSHOT 依赖项,其中存在不带分类器的较新版本的依赖项。这在 Maven 中是完全合法的,但是 IntelliJ 在尝试找出本地 Maven 存储库中物理文件的路径时会感到困惑。 仅供参考,这仍然可能在 15.0.2 中发生。刚刚发生在我身上。不得不吹走我的 .iml 文件和 .idea 文件夹并重新导入。令人难以置信的令人沮丧的 b/c 我花了 2 个小时与之抗争,最终丢失了我所有精心制作的运行配置。 @KevinPauli 无需为此删除 IDEA 项目文件,您只需在“Maven 项目”选项卡下“重新导入所有 Maven 项目”即可手动重新导入。 【参考方案1】:

解决方案:-

    转到文件 -> 设置 -> maven -> maven 主路径 在那里你会发现捆绑的(maven 3)类似的东西 选择系统中存在 maven 文件的适当的 maven 主路径 (环境变量中给出的路径) 点击应用 刷新项目。

【讨论】:

【参考方案2】:

IntelliJ 2020.3.3

这个是为我做的。

构建、执行、部署 > 构建工具。

更改“构建脚本更改后重新加载项目”:

从默认的“外部更改”到“任何更改”

有了这个,项目重建需要一段时间,但现在我可以在 IntelliJ 中看到 Maven 依赖项:

【讨论】:

【参考方案3】:

所以我在组织的许多代码库中也遇到了这个问题。除了上面建议的答案之外,我们还可以调整 jvm 的分配池内存。这是因为,大型代码库中引入的依赖项的数量可能会令 jvm for IDE 无法完全构建项目。因此尝试增加 XMX 值并且它起作用了! Added -Xmx3072 to resolve the issue of "not building" my Java project in IntelliJ

【讨论】:

工作就像一个魅力,这就是我一直在寻找的 :)【参考方案4】:

使缓存无效对我有用:

文件 > 使缓存无效

检查:

清除文件系统缓存和本地历史 清除下载的共享索引

然后无效并重新启动

【讨论】:

Invalidate Caches and restart 解决了我的问题,谢谢。【参考方案5】:

这个问题的一个可能模式是你没有连接到 Nexus,基本上你想在离线模式下构建项目。但是,当您导入项目时,Idea 会尝试自动下载 Maven 依赖项......但失败了。您在“设置”中设置了“脱机工作”复选框,但为时已晚:在初始下载尝试期间某些内容已损坏。此处列出的任何一个选项都不能帮助我解决这个问题。相反,我做了以下事情:

    第一次创建空的 Java(不是 Maven)项目 选中 Maven 设置中的脱机工作选项 将我的项目作为 Maven 模块添加到这个新项目中

这样就成功了。

【讨论】:

【参考方案6】:
    在 maven 选项卡中单击 + 并选择 pom.xml 从 maven 选项卡单击下载源和文档 在项目结构上(您可以在其中查看项目文件/目录)右键单击您要构建的项目并选择构建模块项目名称。 从选项卡运行 - 使用 + 添加应用程序编辑配置并填写以下字段: i.主类 - 从项目选项卡中手动选择主类 ii。使用模块的类路径 - 选择应用程序名称 iii。缩短命令行 - 类路径文件 现在只需运行应用程序。

【讨论】:

【参考方案7】:

re-import-maven -> close-intellij -> 删除整个 -.idea-文件夹->重新打开项目->构建->构建- project/build-module-'你的父模块'

【讨论】:

【参考方案8】:

在我的情况下,MAVEN 使用的 JAVA 路径未设置为机器上配置的 JAVA_HOME。因此,它甚至没有尝试下载依赖项。 我遵循的步骤解决了这个问题,

    检查了 JAVA 路径,设置 >> 构建 >> 构建工具 >> 导入 >> JDK for importer。将其指向 JAVA_HOME。

    mvn clean install -U

    使用上述命令强制下载依赖项。

    重新导入 Maven 项目

【讨论】:

【参考方案9】:

您可能在公司的内部网络下工作。

如果是这样,要下载或添加外部 Maven 依赖项,您可能需要更新 user/<username>/.m2 文件夹下的 settings.xml 文件。

联系您的管理员以提供正确的settings.xml 文件,然后将其粘贴到您的.m2 文件夹中。

【讨论】:

【参考方案10】:

在 IntelliJ 14 之前修复

File [menu] -> Settings -> maven -> importing and uncheck "use maven3 to import project"

ref:http://youtrack.jetbrains.com/issue/IDEA-98425(可能还有其他想法)

修复 IntelliJ 15+

再次遇到这个问题,这次是 IntelliJ 15,它不再提供“使用 maven3 导入”选项。原因是有时 IntelliJ“不能正确解析 maven 依赖项”,如果它不能正确解析其中一个,它显然会放弃其中的 all。您可以通过打开 maven 项目工具窗口(查看菜单 -> 工具窗口 -> Maven 项目)来判断是否是这种情况。然后扩展您的一个 Maven 项目及其依赖项。如果依赖关系都用红色下划线,“休斯顿,我们有问题”。

您实际上可以通过将鼠标悬停在项目名称本身上来查看真正的失败。

在我的例子中,它说“问题:没有可用于 XXX 的版本”或“无法读取工件 org.xy.z 的描述符”参考:https://youtrack.jetbrains.com/issue/IDEA-128846 和 https://youtrack.jetbrains.com/issue/IDEA-152555

在这种情况下,我似乎正在处理一个没有关联 pom 文件的 jar(在我们的 maven nexus repo 和我的本地存储库中)。如果这也是您的问题,“当前的解决方法:如果您实际上不需要在自己的代码中使用该 jar 中的类(例如仅传递 maven 依赖项),您实际上可以从 pom 中注释掉它(暂时),maven项目重新加载,然后取消注释。不知何故,IntelliJ“记住”它的旧工作依赖项。临时添加一个maven传递排除也可能这样做,如果你从传递依赖链中遇到它。 "

另一件可能有帮助的事情是使用比捆绑的 3.0.5 更“新版本”的 maven。 为了将其设置为默认值,关闭所有 intellij 窗口,然后打开首选项 -> 构建、执行和部署 -> 构建工具 -> maven,然后更改 maven 主目录,它应该说“默认project”在您调整它时显示在顶部,但您也可以针对特定项目调整它,只要您在调整后“重新导入”即可。

清除缓存

删除您的 intellij 缓存文件夹(Windows:HOMEPATH/.IntellijIdea,IdeaCXXX linux ~/.IdeaIC15)和/或卸载并重新安装 IntelliJ 本身。这也可以通过转到文件 [菜单] -> Invalidate Caches / Restart... 来完成。点击invalidate and restart。这将为您的整个项目重新编制索引,并解决 IntelliJ 的许多难以追踪的问题。

【讨论】:

奇怪的是,几乎所有其他帖子都建议选中“使用 Maven3 导入项目”选项来解决这个问题,而实际上取消选中它为我解决了这个问题。为什么?我不知道。谢谢! 在 v14 终极版中,我选择了一个外部 maven,一切都恢复正常了。 @AlikElzin-kilaka 将 maven 主目录更改为外部 maven 主目录确实有很大帮助。在我将 IDEA 更新到 v14 终极版后,由于“找不到 tomcat6 插件”,我无法在 IDEA 中启动我的项目,但我可以使用 mvn 命令启动项目,并将 maven 主目录更改为外部目录解决了它 在 IntelliJ 2016.2.1 中,禁用自动导入将 Maven home directory 更改为我们的堆栈正在使用的版本 (3.3.9) 解决了我的问题。 maven home directoryBundle (Maven 3) 更改为安装我的 maven 的路径 .../maven/3.6.1/libexec 为我工作【参考方案11】:

我可以通过在 pom.xml 文件中的 build 标记之后添加这行代码来修复我的问题,我从我正在运行的项目中比较了它,发现这就是区别,现在我一切都很好。

<repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>

【讨论】:

【参考方案12】:

我遇到了同样的问题,并尝试了这里提到的所有答案,但都没有奏效。

简单的解决方案是转到您的项目文件夹并删除所有 .idea 和 .iml 文件并重新启动 IntelliJ ide。有用。无需对设置进行任何操作。

【讨论】:

【参考方案13】:

就我而言,其中一个模块由于某种原因被忽略了。 要解决这个问题:右键单击有问题的模块并选择“Unignore Projects”。

【讨论】:

【参考方案14】:

从项目目录中删除 .idea 文件夹,然后将项目重新导入为 Maven 项目,这对我有用。

【讨论】:

【参考方案15】:

我遇到了类似的问题,在我的情况下,我使用的是不是从 IntelliJ 挑选的自定义 settings.xml

解决方案:File &gt; Settings &gt; Build, Execution, Deployment &gt; Maven: User settings file(在此处选择我的自定义 settings.xml)。

【讨论】:

【参考方案16】:

我能够通过从 Project Settings -> Modules 列表中删除不必要的模块来解决它。

事实证明,当我通过从项目文件夹(而不是打开 pom.xml)导入创建 IntelliJ 项目时,IntelliJ IDEA 自动创建了这些附加模块。然后,在将项目声明为 Maven 项目后,创建了适当的模块,并且现有模块与它们发生冲突。也可以在项目创建期间排除这些模块。

【讨论】:

【参考方案17】:

我的 macbook 也有类似的问题,只是在 pom.xml 中做了一个小改动,它开始下载所有依赖项:

早期的依赖是为我的 windows 机器编写的如下:

<dependencies>
 <dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>
</dependencies>

我刚刚删除了&lt;dependencies&gt;&lt;/dependencies&gt; 标签,它开始下载所有依赖项:

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>

我不确定它是否适合你。但对我来说效果很好。

谢谢

【讨论】:

【参考方案18】:

首先检查 User Settings 文件指定的路径:Settings -> Build,Execution,Development -> Build Tools -> Maven 中。 该字段应具有您的 maven 的 settings.xml 的路径。此外,settings.xml 应该有正确的远程存储库路径。

【讨论】:

这对我有用,在 settings.xml 文件中,嵌套在 标记中的 标记的条目已过时。我与我的同事商议以获得更新的条目值。我对 ~/.m2/settings.xml 进行了更改,关闭了 intelliJ 并重新启动它。重新启动后,什么都不做,出现在 Maven 视图中的红色下划线消失了。奇怪的是,在我执行此修复之前和之后,突出显示的大多数根依赖项始终存在于项目视图的“外部库”条目中。【参考方案19】:

问题似乎是,尽管在 pom.xml 中列出了您的依赖项,但 IntelliJ IDEA 不会在您运行项目时重新构建这些依赖项。

对我有用的是:

转到“运行”->“编辑配置...”,找到您的应用程序,确保“启动前:”部分已展开,单击绿色加号,然后选择“构建项目”。

【讨论】:

【参考方案20】:

Maven - 重新导入对我不起作用。 我在 STS(Eclipse) 中有 Spring 项目,我的解决方案是将项目导入 IDEA,如下所示: 1) File - New - Project from Existing Sources... - 选择目录 - 选择 Eclipse。 2) 在设置中将 Maven 自动导入设置为 true。 3) 然后右键单击 pom.xml 并选择 Add as Maven Project。 在此之后它已导入所有内容。

【讨论】:

【参考方案21】:

在 Maven 中,当我删除了dependencyManagement xml 部分并且直接在项目部分下有依赖项时,依赖项已包含在内

【讨论】:

【参考方案22】:

如果一切都失败了,请检查本地 .m2 存储库中的 jar 文件是否确实有效且未损坏。就我而言,该文件尚未完全下载。

【讨论】:

【参考方案23】:

IntelliJ 应该自动下载所有依赖项并将其添加到项目的类路径中,只要您的 POM 兼容并且所有依赖项都可用。

将 Maven 项目导入 IntelliJ 时,通常会出现一个信息框,询问您是否要为 Maven 项目配置自动导入。这意味着如果您对 POM 进行任何更改,这些更改将自动加载。

您可以在文件 > 设置 > Maven > 导入中启用此类功能,有一个复选框显示“自动导入 Maven 项目”。

如果这没有帮助,那么我建议进行全面清理并重新开始:

关闭您的项目窗口(和 IntelliJ)并删除所有 *.iml 文件和所有 .idea 文件夹(每个模块应该有一个) 从命令行运行mvn clean install 将项目重新导入 IntelliJ 并在提示您启用自动导入时注意

IntelliJ 2016 更新

自动导入 Maven 项目设置已移至 IntelliJ 首选项中的构建、执行、部署 > 构建工具 > Maven > 导入

【讨论】:

所以您的解决方案是将依赖项标记为已导出?这很奇怪!我经常使用 IntelliJ 和 Maven,但我的所有项目(其中一些是多项目)都没有启用导出功能……是 Community Edition 还是 Ultimate? 它是终极版,但我导入的项目是在 Eclipse 上构建的 - 因此 .classpath 在那里启用但 IntelliJ 使用 .iml - 所以我认为第一次包含这些库是合乎逻辑的如果这个项目之前没有 .iml 文件.. ?! 哦,好的 - 您是否尝试将其作为 Maven 项目而不是 Eclipse 项目导入?在使用 Maven 项目时,我习惯于不将 IDE 相关文件签入到我的源存储库中:如果它是一个 Maven 项目,那么 Maven 规则 您可以在首选项/设置中启用自动导入。打开首选项/设置并搜索“自动导入 Maven 项目”。它位于 Build,Execution,Deployment>Build Tools>Maven>Importing @JustinBlank 对此并不感到惊讶,因为这是 2012 年的答案。设置仍然存在,只是被移到了其他地方(答案已更新)。【参考方案24】:

我遇到了一些子依赖在 IntelliJ 2016.3.X 中无法解决的问题。这可以通过将 Settings > Build, Execution, Deployment > Build Tools > Maven 中的 Maven home directoryBundled (Maven 3) 更改为 /usr/share/maven 来解决。

之后,所有子依赖项都像以前的 IntelliJ 版本一样得到解决。

【讨论】:

【参考方案25】:

对于 IntelliJ 2016-2.4(我相信其他新版本):

查看 > 工具窗口 > Maven 项目

在新显示的工具栏中,选择 Maven 设置(工具集的图标)。

当此屏幕打开时,展开 Maven 菜单并单击“导入”

在此处,单击“自动导入 Maven 项目”。还要确保“JDK for Importer”选项与您要使用的 JDK 版本相匹配。

点击确定。现在转到 pom.xml 中的红色依赖项,选择红色灯泡,然后单击“更新 Maven 索引”。

【讨论】:

为导入程序选择正确的 JDK 帮助了我。我还必须运行 mvn idea:clean idea:idea 来关闭最后一个问题。【参考方案26】:

我遇到了同样的问题并尝试了所有建议但没有解决问题,我使用的是 Intellij 版本 13.1.3

在花了几个多小时试图修复它之后,我决定尝试升级版本并在 14.1.4 版本中打开项目,最终解决了这个问题。我认为这可能是以前版本中的一个错误。

我希望这会有所帮助!

【讨论】:

【参考方案27】:

对我有什么帮助:

导航: 设置 |构建、执行、部署 |马文

指定“Maven 主目录” - 安装 maven 的位置

【讨论】:

【参考方案28】:

导入项目时,选择pom.xml,而不是项目目录。它应该可以工作。

【讨论】:

有时点击 Maven Projects 窗口下的“Reimport all maven projects”选项 也许这是最优雅、最干净的解决方案(有点尴尬,intellij 无法帮助您猜测) 也为我工作,使用 IntelliJ 社区版 2019.3.4。感谢您提供如此简单的解决方案。 :)【参考方案29】:

重新导入项目。如果你安装了 maven 插件,你可以使用它。

右键项目-> Maven -> 重新导入

【讨论】:

【参考方案30】:

劫持一点以添加最终对我有用的东西:

进入 IDE 右侧边缘的 Maven Projects 侧边栏,并验证您的依赖项是否在您的模块下正确列出。假设它们是,只需让 IDEA 重新导入(顶部的第一个按钮,看起来像两个蓝色箭头形成一个逆时针圆圈)。

一旦我这样做了,并让 IDEA 为我重新加载项目,我的所有依赖项都神奇地被理解了。

供参考:这是IDEA 13.1.2

【讨论】:

以上是关于IDEA中导入eclipse项目会受到.classpath和.project的影响的主要内容,如果未能解决你的问题,请参考以下文章

如何在intellij IDEA中导入ECLIPSE的android项目

如何在eclipse中导入.class文件?

如何在Android项目中导入OpenCV库?

怎样在eclipse中导入Web项目

Eclipse中导入外部jar包

如何往eclipse中导入maven项目