it-swarm.com.ru

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

25
Vaibhav

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

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

32
Matt Byrne

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

14
Vaibhav

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

enter image description here

5
Feras

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

</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>
4
Shamik Guha Ray

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

4
moisu

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

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

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

2
Osama Al-Banna

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

2
Shun

Была такая же проблема в Eclipse STS . Изменение области действия в pom с «предоставлено» на «компилировать» устранило проблему, и когда я вернул ее обратно, все было в порядке.

0
Ron Wheeler

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

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

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

Шаги:

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

0
Zest

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

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

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

0
mummadi venkata ravi teja

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

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

0
Deepak Sharma

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

0
Moh Lamine