20

参加したばかりの新しいプロジェクトで発生した問題について、同僚と一緒に取り組んでいます。簡単に言うと、maven が .war ファイルを正しく構築していません。同僚に私の war ファイルを渡すと、彼は私と同じ問題を経験し、コンパイルした .war ファイルを渡すと、すべてが機能します。私たちは両方とも同じソースで作業しています。だから、私はmavenを正しくセットアップしようとしています(彼と同じ)、私たちは両方とも同じバージョンのmavenを持っています。ただし、maven は java_home を間違って見ていると思います。

mvn -version コマンドを実行すると、次のようになります。

C:\java\KME_workspace\CU-KME>mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 03:44:56-0500)
Maven home: C:\java\tools\apache-maven-3.0.4
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: C:\java\jdks\jdk1.6.0_45\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

私のシステムの JAVA_HOME 変数は C:\java\jdks\jdk1.6.0_45 に正しく設定されています。

私のmavenがjreを見ていることを知っている人はいますか?それをJDKに正しく戻すにはどうすればよいですか? 私も問題を正しく見ている可能性があるので、何かアイデアがあれば、それは素晴らしいことです.

ありがとう。


一部の人が指摘したように、Maven バージョンの Java ホームでの JRE 参照は、私の側では赤いニシンのウサギの穴でした。さらにテストすると、いくつかの新しい興味深い情報が得られました。コマンドラインから直接mavenコマンドを実行しています。Eclipse を使用して svn リポジトリからコードをチェックアウトし、そのコードで maven パッケージを実行しようとしましたが、.war が正しくビルドされません。ただし、eclipse で新しいディレクトリにチーム エクスポートを行い、その上で maven パッケージを実行すると、.war が正常にビルドされ、完全に機能します。私が理解しているように、Eclipse でのチーム エクスポートは、エクスポートされたディレクトリ内のすべてのサブバージョン ファイルを削除します。誰でもこれを解決する方法について何か考えがありますか?

4

7 に答える 7

26

Maven プロパティ ガイドから:

${java.home} は、現在の JRE_HOME 環境へのパスを指定し、相対パスを使用して取得します。例: ${java.home}../bin/java.exe

java.homeプロパティは JAVA_HOME 環境設定と同じではありません。実際には、どの JRE がコードを実行しているかを示す動的プロパティです。 

java.home プロパティを正しく設定してみて、機能するかどうかを確認してください。

于 2013-07-12T17:27:50.987 に答える
3

コンパイラが使用できないことも示されている場合は、次のように Eclipse IDE で環境を jre から jdk に置き換えることができます。

  • (右クリック) your_project_name > Build Path > Configure Build Path > Libraries > (ダブルクリック) JRE System Libraries > Alternate Jre : jdk 1.8 >ok
  • 次に、Libraries の Installed JRES オプションから jdk 1.8 を選択します。
  • プロジェクト > クリーン
  • Maven > 更新
于 2018-08-07T10:11:58.640 に答える