Querydslをサポートするためにpom.xml
にこのコードを追加するとき
<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>
Eclipseでビルドするとこのエラーが発生しました。クラスパスやJDK jarと関係があると思います
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>
追加情報:
私のMavenのインストール
Java_HOME:C:\ Program Files\Java\jdk1.7.0_45
PATH:%Java_HOME%\ bin;
ソリューション1
これに続いて リンク
「Maven APTプラグインには、Eclipseから直接使用できない既知の問題があります。Eclipseユーザーは、コマンドプロンプトでmvn generate-sourcesコマンドを実行してQuerydslクエリタイプを手動で作成する必要があります。」
それで、プロジェクトfloderでコマンドラインmvn generate-sources
をコンソールcmd
で実行し、Qclassesを生成しました。
SOLUTION 2from @ informatik01コメント
明示的に 指定されたJVM でEclipse.ini
のように:
-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe
-vmargs
...
-vm
オプションは-vmargs
オプションの前に指定する必要があります。詳細については、以下の@ informatik01コメントを参照してください。
あなたは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>
そして、それが何かを変更するかどうかを確認します。ビルドパスにtools.jarを強制する必要があります。
編集。それは助けにならなかったので、指定してみてください
-vm
D:/work/Java/jdk1.6.0_13/bin/javaw.exe
このスレッド で説明されているように、Eclipse.iniで(個別の行が重要です)。
<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>
プラグインを追加すると、解決します
上記のように、Eclipse自体はJDKではなくJREを介して実行されていたため、この問題は私に起こっていました。
PATH環境変数の先頭に%Java_HOME%\ binを追加して解決しました。
読み通すことで、JVM Eclipseが使用しているものを見つけました: JVM Eclipseが実行されているものを見つける
上記の提案はすべて行いましたが、役に立ちませんでした。最後に、新しいコンピューターをセットアップしていたので、Java_HOME
変数のセットアップ。
したがって、私がしたことはJava_HOME
変数をシステム変数に設定し、JDKパスに設定します:C:\Program Files\Java\jdk1.8.0_172
そして出来上がり-mvn generate-resources
は再び働き始めました。
Eclipseプロジェクト設定で実行環境の設定を確認することを忘れないでください:プロジェクトビルドパス->ライブラリ-> JREシステムライブラリ。
これが間違っている場合(例jre)、これをjdkに切り替えます。
私の場合、これで問題は解決しました(「JDKでビルドを実行するか、クラスパスにtools.jarが必要です。」が消えました)。
その後、約。 Maven実行ログの4行目の変更(例)
...
Java home: C:\Program Files\Java\jre1.8.0_66
....
に
...
Java home: C:\Program Files\Java\jdk1.8.0_66\jre
...
お役に立てれば。
Mvn installのようなシェルcommondでビルドする場合。次に、シェルまたはコマンドウィンドウで次のコマンドを実行します:echo $ CLASSPATH。このコマンドは、クラスパスを表示します。
Eclipseを使用している場合は、[ウィンドウ]> [設定]> Java>インストール済みJREを開き、インストール済みJREがjdkルートの場所であることを確認します。私にとってはC:\ Java\jdk1.7.0_51です。
それが役に立てば幸い。
以下のようにEclipseでJDKを更新してみてください。
jREを設定します
以下のパスを見てください-program files
があります(ただし、前述のパスではprogram files
がパスにありません。通常はJavaで、すべてのプログラムはprogram files
そのパスを確認してください)
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は、Java_HOME
パスがJDK\bin
に適切に設定されていることを確認します(そのパスにスペースやすべてを含めないでください)
JDK
を別の場所にコピーして、Java_HOME
をその新しい場所に更新してみてください。
その他の問題についてお知らせください。