"Импорт org.springframework не может быть разрешен".

 <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>

Below is my java class




 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 не может выбирать зависимость оттуда.

Ответ 1

Вам нужно выполнить несколько шагов для правильной отладки.

1) mvn clean dependency:tree Взгляните на результат, чтобы увидеть, что именно вы получаете, и убедитесь, что все ваши зависимости находятся там.

2) mvn clean compile. Это не так? Если это не означает, что вы получаете ошибку только в Eclipse?

Вы упомянули в комментарии "И я запустил обе команды выше, но я получаю эту ошибку". Работает ли mvn clean compile? Или вы получили ошибку за это? Если это сработало, это просто проблема IDE, и я бы посмотрел на плагин m2eclipse. Еще лучше, используйте IntelliJ, поскольку бесплатная версия имеет лучшую поддержку maven, чем Eclipse; -)

Некоторые вещи стиля...

Люди часто добавляют слишком много зависимостей в свой файл pom, когда им это не нужно. Если вы посмотрите на несколько ссылок на mavenrepository.com, вы можете увидеть, что spring-oxm и spring-jdbc оба зависят от spring-core, поэтому вам не нужно явно добавлять это (например). mvn clean dependency:tree покажет вам, что происходит после всего этого, но это более утончает.

spring-batch-test должен быть областью test.

Ответ 2

Наконец, моя проблема решена. Я импортировал проект как "Существующий проект в рабочее пространство". Это было совершенно неправильно. После этого я выбрал "Существующий проект Maven", после чего было удалено несколько икота и все ошибки. В этом процессе мне пришлось многому научиться в Maven, которые важны для нового посетителя в проекте Maven.

Ответ 3

Мое прямое решение для этой проблемы: щелкните правой кнопкой мыши проект → Maven --- > Add Dependency ==, затем выберите имя или родительское имя отсутствующей зависимости

enter image description here

Ответ 4

Решение, которое работало для меня, состояло в том, чтобы щелкнуть правой кнопкой мыши на проекте → Maven → Обновить проект, затем нажать OK.

Ответ 5

Добавьте эти зависимости

</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>

Ответ 6

Щелкните правой кнопкой мыши имя проекта в Eclipse, → Maven → Выберите Maven Profiles... Затем отметьте профиль maven, который вы хотите установить. После нажатия OK, Eclipse автоматически импортирует настройку maven в ваш проект. Если вы проверите свое Свойство проекта, вы найдете Maven Dependencies Library.

Ответ 7

Этот ответ отсюда помог мне:

Вы должны взглянуть на путь сборки вашего проекта, чтобы проверить, остались ли ссылки на библиотеки. Таким образом, щелкните правой кнопкой мыши на вашем проекте, затем "Свойства → Путь сборки Java → Библиотеки" и проверьте, есть ли у вас все еще библиотеки JAR файлов spring в том месте, которое там упомянуто. Если нет, просто добавьте их в свой путь к классу в этом диалоговом окне.

http://forum.spring.io/forum/spring-projects/springsource-tool-suite/98653-springframework-cannot-be-resolved-error

Ответ 8

org.springframework.beans.factory.support.beannamegenerator, была моя ошибка. Я сделал maven clean, maven build и т.д., Что было бесполезно, и я обнаружил, что моя папка .m2 отсутствует в моей папке установки eclipse. Я обнаружил, что папка .m2 выходит из папки eclipse, которую я вставил в папку eclipse, а затем в eclipse мне удалось это сделать: -

Открыть путь сборки конфигурации специалист Интеграция Java EE Выберите архиватор Maven, создающий файлы в каталоге сборки применять и закрывать

Мой проект запущен и запущен.

Ответ 9

если вы уверены, что ваш pom.xml довольно хорош, вам просто нужно обновить этот проект. щелкните правой кнопкой мыши по проекту - Maven - обновите проект. или просто alt + F5.

Ответ 10

В моем случае мне пришлось удалить .m2/repository внутри .m2/repository а затем Maven->Update Maven Project

Похоже, банки были повреждены, и удаление и загрузка свежей банки решило проблему.

Ответ 11

Я импортировал проект как "Существующий проект Maven" и получил эту проблему.

Решение: изменен путь сборки Java системной библиотеки JRE на JRE [jdk 1.8] по умолчанию для рабочей области.

шаги:

Щелкните правой кнопкой мыши по проекту → путь сборки → настройте путь сборки → вкладка "Библиотеки" → дважды щелкните "Системная библиотека JRE" → изменить на JRE для рабочей области по умолчанию [jdk 1.8]

Ответ 12

Единственное решение, которое сработало для меня, это добавить maven-compiler-plugin в 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>

Ответ 13

В моем случае эта проблема была решена путем обновления зависимостей maven:

enter image description here

Ответ 14

В моем случае я использовал ниже файл pom.xml здесь

и это сработало для меня.

Ответ 15

Простое вложение библиотек в YourProject/WEB-INF/lib решило бы вашу проблему. Библиотеки:

commons-logging-x.y.z.jar
org.springframework.asm-x.y.z.jar
org.springframework.beans-x.y.z.jar
org.springframework.context-x.y.z.jar
org.springframework.core-x.y.z.jar
org.springframework.expression-x.y.z.jar
org.springframework.web.servlet-x.y.z.jar
org.springframework.web-x.y.z.jar
spring-web.jar