Problème d'éclipse avec Maven build et JDK lors de la génération de Qclasses dans Querydsl
quand j'Ajoute ce code ci-dessous dans mon pom.xml
pour supporter Querydsl
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.0.6</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
j'ai eu cette erreur en construisant avec Eclipse. Je pense que ça a rapport avec le chemin de classe et JDK pots
You need to run build with JDK or have tools.jar on the classpath.
If this occures during eclipse build make sure you run eclipse under JDK as well
(com.mysema.maven:apt-maven-plugin:1.0.6:process:default:generate-sources)
.classepath :
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v8.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Informations supplémentaires:
Mon Installation maven
JAVA_HOME : C:Program fichiersJavajdk1.7.0_45
chemin: %JAVA_HOME % bin;
8 réponses
SOLUTION 1
suite à ce lien
"le plugin Maven APT a un problème connu qui empêche son utilisation directement depuis Eclipse. Les utilisateurs d'Eclipse doivent créer la requête Querydsl tapez manuellement en lançant la commande mvn generate-sources à la commande invite."
donc j'exécute la ligne de commande mvn generate-sources
dans mon projet floder avec console cmd
et j'ai eu mes Qclasses générées.
SOLUTION 2 from @informatik01 comment
nous pouvons explicitement JVM spécifiée dans le eclipse.ini
comme cela :
-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe
-vmargs
...
l'option -vm
doit apparaître avant l'option -vmargs
et pour plus d'informations, lire le commentaire @informatik01 ci-dessous.
Vous pouvez essayer avec ce dans le pom:
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.0.6</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.7</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</plugin>
et voir si ça change quelque chose. Ça devrait forcer les outils.bocal dans le chemin de construction.
Éditer. puisque cela n'a pas aidé, essayez de spécifier
-vm
D:/work/Java/jdk1.6.0_13/bin/javaw.exe
dans eclipse.ini (les lignes séparées sont importantes), comme expliqué dans ce fil .
<groupId>com.mysema.maven</groupId>
<artifactId>maven-apt-plugin</artifactId>
<version>1.0.6</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources/java</outputDirectory>
<processor>com.mysema.query.apt.jpa.JAPAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
ajouter le plugin ,vous le résoudrez
cette question m'arrivait parce que comme mentionné ci-dessus, Eclipse elle-même courait à travers le JRE au lieu du JDK.
Je l'ai résolu en ajoutant %JAVA_HOME%\bin à l'avant de ma variable D'environnement PATH.
j'ai trouvé ce que JVM eclipse utilisait en lisant: découvrez ce que JVM Eclipse utilise sur
si vous construisez par commond shell comme mvn install. Ensuite, lancez cette commande dans la fenêtre shell ou cmd: echo $CLASSPATH. Cette commande montre votre chemin de classe.
si vous utilisez Eclipse, ouvrez Window > Preferences > Java > Installed JREs, assurez-vous que vos JREs installés sont à l'emplacement de la racine jdk. Pour moi, c'est C:\Java\jdk1.7.0_51
J'espère que ça aidera.
essayez de mettre à jour le JDK dans Eclipse comme ci-dessous:
définir le JRE dans
regardez le chemin ci - dessous-ayant program files
(mais dans votre chemin mentionné il n'est pas avoir program files
dans votre chemin , habituellement java et tous les programmes se installe dans program files
alors assurez-vous que le chemin)
Window->Preferences...->Java->Installed JREs:
JRE type: Standard VM JRE
Name: jdk1.6.0_18
JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18
alos s'assurer que JAVA_HOME
le chemin est réglé correctement à JDK\bin
correctement(sans espaces et tout dans ce chemin)
essayez de copier votre JDK
à un endroit différent et mettez à jour votre JAVA_HOME
avec ce nouvel endroit.
prévenez-moi pour tout autre problème.
n'oubliez pas de vérifier le réglage du environnement D'exécution dans les paramètres de votre projet Eclipse: chemin de construction de projet -> bibliothèques -> bibliothèque système JRE .
si ce n'est pas le cas (par exemple jre ), passez à un jdk one.
dans mon cas, cela a résolu le problème ("vous devez exécuter build avec JDK ou avoir des outils.un bocal sur le chemin de la classe." disparaître.)
puis les env. la quatrième ligne du journal D'exécution Maven change de (e.g.)
...
Java home: C:\Program Files\Java\jre1.8.0_66
....
à
...
Java home: C:\Program Files\Java\jdk1.8.0_66\jre
...
Espérons que cette aide.
j'avais fait tout ce qui est suggéré ci-dessus, mais en vain. Enfin, parce que je mettais en place un nouvel ordinateur, je me suis rendu compte que je n'avais pas de variable JAVA_HOME
.
donc tout ce que j'ai fait était d'ajouter la variable JAVA_HOME
à mes variables système et mettre cela à un chemin JDK: C:\Program Files\Java\jdk1.8.0_172
Et voilà mvn generate-resources
a commencé à travailler à nouveau.