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 lors de la construction avec Eclipse. Je pense qu'il a une relation avec Classpath et JDK.
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)
.classpath :
<?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>
Informaitons supplémentaires :
Mon maven installation
Java_HOME: C:\Program Files\Java\jdk1.7.0_45
PATH:% Java_HOME%\bin;
SOLUTION 1
Suite à cela link
"Le plug-in Maven APT a un problème connu qui l'empêche d'utiliser Directement à partir d'Eclipse. Les utilisateurs d'Eclipse doivent créer la requête Querydsl .__ manuellement à l'aide de la commande mvn generate-sources à la commande Invite . "
Donc, j'exécute la ligne de commande mvn generate-sources
dans mon projet floder avec la console cmd
et j'ai obtenu mes Qclasses générées.
SOLUTION 2 from @ informatik01 comment
nous pouvons explicitement spécifier la JVM dans le Eclipse.ini
comme ceci:
-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe
-vmargs
...
L'option -vm
doit exister avant l'option -vmargs
et pour plus d'informations, lisez le commentaire @ informatik01 ci-dessous.
Vous pouvez essayer avec ceci 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. Il faut forcer tools.jar dans le chemin de construction.
Modifier. 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>
ajoutez le plugin, vous allez le résoudre
Ce problème me arrivait car, comme mentionné ci-dessus, Eclipse lui-même passait par le JRE au lieu du JDK.
Je l'ai résolu en ajoutant % Java_HOME%\bin au début de ma variable d'environnement PATH.
J'ai compris ce que JVM Eclipse utilisait en lisant: Découvrez sur quoi JVM Eclipse est exécuté
J'avais fait tout ce qui était suggéré ci-dessus mais en vain. Enfin, comme je configurais un nouvel ordinateur, je me suis rendu compte que je n'avais pas de variable Java_HOME
configurée.
Donc, tout ce que j'ai fait est d'ajouter la variable Java_HOME
à mes variables système et de la définir comme chemin JDK: C:\Program Files\Java\jdk1.8.0_172
Et voila - mvn generate-resources
a recommencé à fonctionner.
N'oubliez pas de vérifier les paramètres du Environnement d'exécution dans vos paramètres de projet Eclipse: Chemin de construction du projet -> Bibliothèques -> Bibliothèque système JRE .
Si cela n’est pas correct (par exemple, jre ), réglez-le sur un jdk one.
Dans mon cas, cela a résolu le problème ("Vous devez exécuter build avec JDK ou avoir tools.jar sur le chemin d'accès aux classes." A disparu).
Puis les env. La quatrième ligne du journal d'exécution Maven est modifiée (par exemple).
...
Java home: C:\Program Files\Java\jre1.8.0_66
....
à
...
Java home: C:\Program Files\Java\jdk1.8.0_66\jre
...
J'espère que cela t'aides.
Si vous construisez par Shell commond comme mvn install. Exécutez ensuite cette commande dans la fenêtre Shell ou cmd: echo $ CLASSPATH. Cette commande affiche votre chemin de classe.
Si vous utilisez Eclipse, ouvrez Fenêtre> Préférences> Java> JRE installés, assurez-vous que vos JRE installés sont situés à l'emplacement racine de jdk. Pour moi, c'est C:\Java\jdk1.7.0_51
J'espère que ça aide.
Essayez de mettre à jour le JDK dans Eclipse comme ci-dessous:
mettre la JRE en
regardez le chemin ci-dessous - ayant program files
(mais dans votre chemin mentionné, il n'y a pas program files
dans votre chemin, généralement Java et tous les programmes sont installés dans program files
alors assurez-vous que ce chemin est)
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 assurez-vous que Java_HOME
path est correctement défini sur JDK\bin
correctement (sans espace ni tout dans ce chemin)
Essayez de copier votre JDK
vers un autre emplacement et mettez à jour votre Java_HOME
avec ce nouvel emplacement.
laissez-moi savoir pour d'autres questions.