IDE--Spring Tool Suite(sts),无法导入maven项目的问题解决方式

从使用Spring Tool Suite(sts),即另一个版本的Eclipse


Spring Tool Suite

使用至今已经接近2年,不知道是不是当时设置错误的问题,一直无法导入maven项目,整得头疼务必,在工作上造成了巨大的不便。如今,由于新项目的开发,死磕加机缘巧合下,问题终于解决,项目导入成功,现在聊以此文,记录这个这么我许久的问题解决方式!

首先在导入Maven项目的时候一切如常,选择导入Existing Maven Projects


导入Maven项目

导入后看上去一切正常,如图


导入后的Maven项目

但打开项目后,发现其中的所有.java文件图标全部都和以往的图标不同,


图标异常

J是空心而非实心,标识该文件无法使用Java运行

正常的图标是这样

解决办法:
在导入Maven项目后,在项目文件夹中,会生成一个.project文件,用编辑器打开,原本的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>security-login-db-encrypt</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

需修改为

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>security-login-db</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
    </natures>
</projectDescription>

修改完成后,重新导入项目


重新导入后报错

可以看到项目报错了,但所有的Java文件都为可执行文件,有进步,那么下一步就需要查看是什么地方报错

首先,文件package所在的路径与项目classpath不符

包名不符

包名不符

在项目的Build Path中,将原来的classpath删除,添加新的classpath
更改classpath

完成后,项目的依赖包仍然报错,原因是Maven的所有依赖都未引入
此处仅引入了jdk,未引入Maven依赖

在网上参考了一篇文章:
https://blog.csdn.net/weixin_41550116/article/details/79485417
将项目文件夹中的,.classpath文件中的内容,添加一行

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>

添加完成后内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src/main/java"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry kind="output" path="bin"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
</classpath>

然后再次重新导入项目文件


导入成功

至此,折磨我这么就的问题终于搞定了!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容