webentwicklung-frage-antwort-db.com.de

"Das import org.springframework kann nicht aufgelöst werden."

 <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();
        }           
      }
    }

Ich erhalte Fehler in Importanweisungen in der App.Java-Klasse. "Das import org.springframework kann nicht aufgelöst werden." Ich habe Abhängigkeiten in POM.xml klar erwähnt, aber meine Java-Klasse kann keine Abhängigkeit von dort auswählen.

25
Vaibhav

Sie müssen einige Schritte ausführen, um das Debuggen ordnungsgemäß durchzuführen.

1) mvn clean dependency:tree Sehen Sie sich die Ausgabe an, um genau zu sehen, was Sie erhalten, und vergewissern Sie sich, dass alle Abhängigkeiten vorhanden sind.

2) mvn clean compile. Scheitert das? Wenn nicht heißt das, dass Sie nur den Fehler in Eclipse erhalten?

Sie haben in einem Kommentar erwähnt "und ich führe beide Befehle aus, aber ich erhalte diesen Fehler". Hat mvn clean compile funktioniert? Oder hast du auch dafür einen Fehler bekommen? Wenn es funktioniert hat, ist es nur ein IDE Problem und ich würde mir das m2Eclipse-Plugin ansehen. Besser noch, verwenden Sie IntelliJ, da die kostenlose Version eine bessere Unterstützung für Maven bietet als Eclipse ;-).

Einige Stilsachen ...

Die Benutzer fügen oft zu viele Abhängigkeiten in ihre POM-Datei ein, wenn sie dies nicht brauchen. Wenn Sie sich einige Links in mavenrepository.com ansehen, können Sie feststellen, dass spring-oxm und spring-jdbc beide von spring-core abhängen, sodass Sie dies nicht explizit hinzufügen müssen (beispielsweise). mvn clean dependency:tree zeigt Ihnen, was nach all dem kommt, aber das ist aufgeräumter.

spring-batch-test sollte test sein.

32
Matt Byrne

Endlich wurde mein Problem gelöst. Ich habe das Projekt als "Vorhandenes Projekt in den Arbeitsbereich" importiert. Das war völlig falsch. Danach wählte ich "Existing Maven project" aus und danach wurden einige kleine Probleme und alle Fehler beseitigt. In diesem Prozess lernte ich so viele Dinge in Maven, die für ein neues Projekt in Maven wichtig sind.

14
Vaibhav

Meine direkte Lösung für dieses Problem: Klicken Sie mit der rechten Maustaste auf das Projekt -> Maven ---> Add Dependency == und wählen Sie den Namen oder den übergeordneten Namen der fehlenden Abhängigkeit aus

enter image description here

5
Feras

Fügen Sie diese Abhängigkeiten hinzu

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

Die Lösung, die für mich funktionierte, war, mit der rechten Maustaste auf das Projekt zu klicken -> Maven -> Projekt aktualisieren, und dann auf OK zu klicken.

4
moisu

Diese Antwort von hier hat mir geholfen:

Sie sollten den Erstellungspfad Ihres Projekts überprüfen, um zu prüfen, ob die referenzierten Bibliotheken noch vorhanden sind. Klicken Sie also mit der rechten Maustaste auf Ihr Projekt, dann auf "Eigenschaften -> Java-Erstellungspfad -> Bibliotheken" und prüfen Sie, ob Sie noch die Spring Library-JARs an der dort genannten Stelle haben. Wenn nicht, fügen Sie sie einfach wieder zu Ihrem Klassenpfad in diesem Dialogfeld hinzu.

http://forum.spring.io/forum/spring-projects/springsource-tool-suite/98653-springframework-cannot-be-auflösungsfehler

2
Osama Al-Banna

Klicken Sie in Eclipse mit der rechten Maustaste auf den Projektnamen, -> Maven -> Maven-Profile auswählen ....__ und markieren Sie das Maven-Profil, das Sie festlegen möchten. Nachdem Sie auf OK geklickt haben, importiert Eclipse die Maven-Einstellung automatisch in Ihr Projekt. Wenn Sie die Eigenschaft Ihres Projekts überprüfen, wird die Maven-Abhängigkeitsbibliothek hinzugefügt.

2
Shun

Hatte das gleiche Problem in Eclipse STS . Das Ändern des Gültigkeitsbereichs im Pom von "Bereitgestellt" in "Kompilieren" behebte das Problem und als ich es zurückveränderte, war alles noch in Ordnung.

0
Ron Wheeler

Die einzige Lösung, die für mich funktioniert hat, ist das Hinzufügen von maven-compiler-plugin zur 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

Ich habe ein Projekt als "Existing Maven Project" importiert und dieses Problem wurde angezeigt.

Lösung: Der Java-Erstellungspfad der JRE-Systembibliothek wurde in den Arbeitsbereich geändert, da JRE [jdk 1.8] fehlgeschlagen ist

Schritte:

Klicken Sie mit der rechten Maustaste auf Projekt -> Erstellungspfad -> Erstellungspfad konfigurieren -> Registerkarte Bibliotheken -> Doppelklicken Sie auf JRE-Systembibliothek.

0
Zest

org.springframework.beans.factory.support.beannamegenerator, war mein Fehler. Ich habe ein Maven Clean gemacht, Maven Build usw., was nicht nützlich war und ich fand, dass mein .m2-Ordner nicht in meinem Eclipse-Installationsordner vorhanden ist. Ich fand den .m2-Ordner außerhalb des Eclipse-Ordners, den ich in den Eclipse-Ordner und dann in Eclipse eingefügt habe:

Öffnen Sie den Konfigurationspfad Maven Java EE-Integration Select Maven archiver generiert Dateien unter dem Build-Verzeichnis anwenden und schließen

Mein Projekt läuft jetzt.

In meinem Fall musste ich die Gläser in .m2/repository löschen und dann einen Maven->Update Maven Project

Sieht so aus, als wären die Gläser korrupt und das Löschen des Downloads und das Herunterladen des neuen Jar löste das Problem.

0
Deepak Sharma

wenn Sie sicher sind, dass Ihre pom.xml ziemlich gut ist, müssen Sie nur das Objekt aktualisieren. Klicken Sie mit der rechten Maustaste auf das Projekt - Maven - Projekt aktualisieren. oder einfach alt + F5.

0
Moh Lamine