web-dev-qa-db-fra.com

"L'import org.springframework ne peut pas être résolu."

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

Je reçois une erreur dans les instructions d'importation de la classe App.Java. "L'import org.springframework ne peut pas être résolu." J'ai clairement mentionné les dépendances dans POM.xml, mais ma classe Java ne peut pas choisir une dépendance à partir de là.

25
Vaibhav

Vous devez suivre quelques étapes pour déboguer correctement.

1) mvn clean dependency:tree Regardez la sortie pour voir exactement ce que vous obtenez et vérifiez que vos dépendances sont toutes là.

2) mvn clean compile. Est-ce que cela échoue? Sinon, cela signifie-t-il que vous n'obtenez que l'erreur dans Eclipse?

Vous avez mentionné dans un commentaire "Et je lance les deux commandes ci-dessus mais je reçois cette erreur". Est-ce que mvn clean compile a fonctionné? Ou avez-vous eu une erreur pour cela aussi? Si cela fonctionne, alors c'est juste un problème IDE et je regarderais le plugin m2Eclipse. Mieux encore, utilisez IntelliJ car la version gratuite dispose d’un meilleur support technique que Eclipse ;-)

Certaines choses de style ...

Les gens ajoutent souvent trop de dépendances dans leur fichier pom quand ils n'en ont pas besoin. Si vous examinez quelques liens dans mavenrepository.com, vous remarquerez que spring-oxm et spring-jdbc dépendent tous deux de spring-core. Vous n'avez donc pas besoin de l'ajouter explicitement (par exemple). mvn clean dependency:tree va vous montrer ce qui va arriver après tout ça, mais c'est plus rangé.

spring-batch-test devrait être test portée.

32
Matt Byrne

Enfin, mon problème a été résolu. J'importais le projet en tant que "Projet existant dans l'espace de travail". C'était complètement faux. Après cela, j'ai sélectionné "Projet Maven existant", après quoi quelques erreurs et toutes les erreurs ont été supprimées. Au cours de ce processus, j'ai appris beaucoup de choses dans Maven qui sont importantes pour un nouveau venu dans le projet Maven.

14
Vaibhav

Ma solution directe à ce problème: Cliquez avec le bouton droit de la souris sur le projet -> Maven ---> Ajouter une dépendance == puis choisissez le nom ou le nom parent de la dépendance manquante

enter image description here

5
Feras

Ajouter ces dépendances

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

La solution qui a fonctionné pour moi était de cliquer avec le bouton droit de la souris sur le projet -> Maven -> Mettre à jour le projet, puis de cliquer sur OK.

4
moisu

Cette réponse d'ici m'a aidé:

Vous devriez jeter un coup d'œil au chemin de construction de votre projet pour vérifier si les bibliothèques référencées sont toujours présentes. Cliquez donc avec le bouton droit de la souris sur votre projet, puis sur "Propriétés -> Chemin de construction Java -> Bibliothèques" et vérifiez si vous avez toujours les fichiers JAR de la bibliothèque Spring à l'emplacement indiqué. Sinon, rajoutez-les simplement à votre chemin de classe dans cette boîte de dialogue.

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

2
Osama Al-Banna

Cliquez avec le bouton droit sur le nom du projet dans Eclipse, -> Maven -> Sélectionner les profils Maven ....__, puis cochez le profil Maven que vous souhaitez définir. Après avoir cliqué sur OK, Eclipse importera automatiquement le paramètre maven dans votre projet. Si vous vérifiez la propriété de votre projet, vous découvrirez que la bibliothèque de dépendances Maven a été ajoutée.

2
Shun

Avait le même problème dans Eclipse STS . Changer la portée dans le pom de "fourni" à "compiler" corrigé le problème et quand je l'ai changé en arrière tout était encore OK.

0
Ron Wheeler

La seule solution qui a fonctionné pour moi est d’ajouter maven-compiler-plugin au fichier 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

J'ai importé un projet en tant que «Projet Maven existant» et je rencontrais ce problème.

Résolution: Le chemin de génération Java modifié de la bibliothèque système JRE a été remplacé par un espace de travail JRE [jdk 1.8]

Pas:

Faites un clic droit sur le projet -> chemin de construction -> configurer le chemin de construction -> onglet Bibliothèques -> double-cliquez sur Bibliothèque du système JRE -> passer à l'espace de travail défini JRE [jdk 1.8]

0
Zest

org.springframework.beans.factory.support.beannamegenerator, était mon erreur. J'ai fait un maven clean, maven build, etc., ce qui n'était pas utile et j'ai constaté que mon dossier .m2 n'est pas présent dans mon dossier d'installation Eclipse. J'ai trouvé le dossier .m2 en dehors du dossier Eclipse que j'ai collé dans le dossier Eclipse, puis dans Eclipse:

Ouvrir configurer le chemin de construction maven Intégration Java EE Sélectionnez Maven archiver génère des fichiers dans le répertoire de construction appliquer et fermer

Mon projet est maintenant opérationnel.

Dans mon cas, j'ai dû supprimer les bocaux à l'intérieur de .m2/repository et ensuite faire un Maven->Update Maven Project

On dirait que les pots ont été corrompus et la suppression et le téléchargement du nouveau pot ont corrigé le problème.

0
Deepak Sharma

si vous êtes sûr que votre pom.xml est assez bon, il vous suffit de mettre à jour le projet. clic droit sur le projet - Maven - projet de mise à jour. ou simplement alt + F5.

0
Moh Lamine