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:

enter image description here

Mon Installation maven

enter image description here

JAVA_HOME : C:Program fichiersJavajdk1.7.0_45

chemin: %JAVA_HOME % bin;

23
demandé sur informatik01 2014-06-30 06:36:24

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.

44
répondu Youssef 2015-03-06 19:20:36

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 .

5
répondu eis 2017-05-23 12:18:22

<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

1
répondu chenyayi 2016-03-05 04:41:26

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

1
répondu River 2017-05-23 12:18:22

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.

0
répondu user3313007 2014-06-30 02:54:17

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.

0
répondu Karibasappa G C 2014-06-30 02:55:54

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.

0
répondu Hartmut 2015-12-28 20:36:40

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.

0
répondu RVP 2018-05-18 20:39:29