<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à.
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.
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.
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
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>
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.
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.
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.
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.
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>
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]
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.
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.