Java &引用;无法解析导入org.springframework。”;

Java &引用;无法解析导入org.springframework。”;,java,eclipse,maven,Java,Eclipse,Maven,这是我的POM.xml文件: <project> <properties> <jdk.version>1.6</jdk.version> <spring.version>3.2.2.RELEASE</spring.version> <spring.batch.version>2.2.0.RELEASE</spring.batch.version>

这是我的POM.xml文件:

<project>
    <properties>
        <jdk.version>1.6</jdk.version>
        <spring.version>3.2.2.RELEASE</spring.version>
        <spring.batch.version>2.2.0.RELEASE</spring.batch.version>
        <mysql.driver.version>5.1.25</mysql.driver.version>
        <junit.version>4.11</junit.version>
    </properties>

    <dependencies>

        <!-- Spring Core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- Spring jdbc, for database -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- Spring XML to/back object -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-oxm</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- MySQL database driver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.driver.version}</version>
        </dependency>

        <!-- Spring Batch dependencies -->
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-core</artifactId>
            <version>${spring.batch.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-infrastructure</artifactId>
            <version>${spring.batch.version}</version>
        </dependency>

        <!-- Spring Batch unit test -->
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-test</artifactId>
            <version>${spring.batch.version}</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

    </dependencies>
    <build>
        <finalName>spring-batch</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>false</downloadJavadocs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
我在我的App.java类中的import语句中收到错误消息,如下所示:

“无法解析导入org.springframework。”


我在POM.xml中清楚地提到了依赖项,但我的java类仍然无法从中提取依赖项。

您需要遵循几个步骤来正确调试

1)
mvn clean dependency:tree
查看输出,查看您得到的确切信息,并验证您的依赖项是否都存在

2)
mvn干净编译
。这失败了吗?如果不是,这是否意味着您只能在Eclipse中获得错误

您在评论中提到“我运行上述两个命令,但我得到了这个错误”。
mvn clean编译是否有效?还是你也因此而犯了错误?如果它能工作,那么它只是一个IDE问题,我会看看
m2eclipse
插件。更好的是,使用IntelliJ,因为免费版本比Eclipse具有更好的maven支持;-)

一些时尚的东西

人们通常在不需要的时候在pom文件中添加太多依赖项。如果你看一下mavenrepository.com上的几个链接,你会发现
spring-oxm
spring-jdbc
都依赖于
spring-core
,所以你不需要明确地添加它们(例如)<代码>mvn clean dependency:tree
将向您显示所有这些之后将出现的内容,但这更整洁


spring批测试
应该是
测试
范围。

最后我的问题得到了解决。我正在将项目作为“现有项目导入工作区”。这是完全错误的。在那之后,我选择了“现有的Maven项目”,在那之后,一些小问题和所有错误都被消除了。在这个过程中,我在Maven中学到了很多东西,这些东西对于Maven项目的新参与者来说非常重要。

我对这个问题的直接解决方案: 右键单击项目-->Maven-->Add Dependency==然后选择缺少依赖项的名称或父名称


在Eclipse中右键单击项目名称,-->Maven-->选择Maven概要文件。。。
然后勾选要设置的maven配置文件。单击OK之后,Eclipse将自动将maven设置导入到您的项目中。如果检查项目的属性,您会发现已添加Maven依赖项库。

这里的回答对我有帮助:

您应该查看项目的构建路径,以检查引用的库是否仍然存在。因此,右键单击您的项目,然后单击“属性->Java构建路径->库”,并检查您是否仍然在上面提到的位置有spring库JAR。如果没有,只需在此对话框中将它们重新添加到类路径中

添加这些依赖项

</dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.7.RELEASE</version>
    </dependency>
</dependencies>

org.springframework
春豆
4.3.7.1发布
org.springframework
spring上下文
4.3.7.1发布

org.springframework.beans.factory.support.beannamagenerator是我的错误。我做了一个maven清理、maven构建等,但没有用,我发现我的.m2文件夹不在eclipse安装文件夹中。我在eclipse文件夹的外侧找到了.m2文件夹,我将其粘贴到eclipse文件夹中,然后在eclipse中碰巧执行了以下操作:-

打开配置生成路径 专家 javaee集成 选择Maven archiver在build目录下生成文件 应用并关闭


我的项目现在已经启动并运行。

如果您确信pom.xml非常好,那么您只需更新项目即可。右键单击project-Maven-update项目。或者简单地按alt+F5键。

在我的例子中,我不得不删除
.m2/存储库中的jar,然后执行
Maven->updatemaven项目


jar似乎已损坏,删除并下载新的jar修复了此问题。

对我有效的解决方案是右键单击project-->Maven-->更新项目,然后单击“确定”。

我将一个项目作为“现有Maven project”导入,并解决了此问题

决议: 将JRE系统库的Java构建路径更改为Workspace defailt JRE[jdk 1.8]

步骤:


右键单击项目->构建路径->配置构建路径->库选项卡->双击JRE系统库->更改到工作区定义JRE[jdk 1.8]

在我的例子中,我使用了下面的pom.xml文件


这对我很有效

唯一适合我的解决方案是将maven编译器插件添加到pom.xml中

<project ...>
    ...
    <build>
        ...
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <fork>true</fork>
                    <executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>
    ...
</project>

...
...
maven编译器插件
3.1
1.7
1.7
真的
C:\ProgramFiles\Java\jdk1.7.0\U 79\bin\javac
...

在我的例子中,通过更新maven的依赖项解决了这个问题:


在Eclipse STS中也有同样的问题。
将pom中的范围从“提供”更改为“编译”修复了问题,当我将其更改回时,一切仍然正常。

您可以遵循的步骤很少

  • 删除存储库文件夹

    C:/Users/user_name/.m2

  • 然后使用IDE终端运行命令或在项目文件夹中打开cmd

    mvn清洁安装

  • 重新启动ide

  • 如果无法解决问题,请运行此命令

    mvn理念:理念


  • 添加以下JPA依赖项

      <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
    
    
    org.springframework.boot
    spring引导启动器数据jpa
    
    对我来说,这个问题是在我忘记添加SpringWeb依赖项时出现的。我在eclipse的
    autocomplete中检查,我的项目没有可用的
    org.springframework.web
    。然后从
    project>spring>addstarters
    I向
    pom.x添加了web依赖项