当前位置: 首页 > 知识库问答 >
问题:

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

龚永新
2023-03-14

这是我的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>


下面是我的java类:

import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.JobParameters;
import org.springframework.batch.core.launch.JobLauncher;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        String[] springConfig  =
            {
                "spring/batch/jobs/job-hello-world.xml"
            };
        ApplicationContext context =
            new ClassPathXmlApplicationContext(springConfig);
        JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
        Job job = (Job) context.getBean("helloWorldJob");
        try {
            JobExecution execution = jobLauncher.run(job, new JobParameters());
            System.out.println("Exit Status : " + execution.getStatus());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

我得到一个错误的导入语句在我的App.java类,这是消息:

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

我清楚地提到了POM. xml中的依赖项,但是我的java类仍然不能从那里选择依赖项。

共有3个答案

傅砚
2023-03-14

对我有效的解决方案是右键单击该项目--

萧成文
2023-03-14

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

强烨
2023-03-14

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

1) mvn clean dependency:tree查看输出,查看您得到了什么,并验证您的依赖项是否都存在。

2)mvn清洁编译。这会失败吗?如果没有,这是否意味着你只在Eclipse中得到错误?

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

一些风格的东西...

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

spring batch test应为test范围。

 类似资料:
  • 问题内容: 这是我的POM.xml文件: 下面是我的java类: 我在App.java类的import语句中遇到错误,这是消息: “导入org.springframework无法解析。” 我清楚地提到了POM.xml中的依赖关系,但是我的java类仍然不能从那里选择依赖关系。 问题答案: 您需要按照一些步骤进行正确的调试。 1)查看输出,以确切地了解所获得的内容并验证依赖项是否全部存在。 2)。这

  • 问题内容: 出于某种原因,在完成了Phonegap的非包含性说明(甚至没有提到设置ANT,或者没有遇到Ant和JDK的麻烦)之后,这根本不起作用: 它给出了5个错误,指出无法解析org.apache.cordova的事实。我完全确定此时该怎么办。请帮忙。这是在尝试使sdk正常工作并最终能够在eclipse中打开项目的3个小时之后。按照他们的文档中的步骤进行操作后,除非能弄清楚,否则我将浪费3个小时

  • 问题内容: 我在用macOS 10.13.5编写的MacBookPro上安装了Eclipse [Version:Photon Release(4.8.0)]和JDK 10。 我得到错误: 导入java.awt无法解析 是包含在JDK 10?如果是,在哪里,如何使Eclipse可见?如果没有,如何添加java.awt? 问题答案: 是包含在JDK 10? 是的,包裹确实存在。Java10 API文档

  • 问题内容: 我有一个问题,日食说它找不到javax.ejb.Schedule(或时间表),但与其他类(如javax.ejb.MessageDriven)没有问题。我正在处理一个我不太了解的大型应用程序。所以我的问题是如何解决这个问题?还是寻找方法? 问题答案: JBoos 4是兼容JEE5的服务器,因此JEE6功能不可用。

  • 问题内容: 我正在尝试使用 Eclipse for Java EE 开发Web应用程序。 我需要使用 Tomcat 作为 服务器 。我已经下载了Tomcat并且它正在运行。但是我的程序无法编译。 我收到以下错误: 导入javax.servlet无法解析。 我需要做什么? 问题答案: 您需要将Servlet API添加到类路径中。在Tomcat 6.0中,它位于Tomcat 文件夹中的JAR 中。您

  • 问题内容: 我需要为面试解决一个Java问题,他们已经向我发送了测试课程。它开始于 并且还具有以下语法: 我已经有一段时间没有使用Java了,这让我有些困惑。我下载了eclipse,当我尝试编译该测试文件时,在导入和@符号处出现错误。导入错误引发: @RunWith甚至无法识别,因为它试图将其解析为一种类型。 问题答案: 您需要将库添加到项目的类路径。有多种选择可以实现它,具体取决于您的开发设置。