2

私はここ数日、Mavenを使用してJavaで開発しています。今日、私はこれらの指示に基づいてpom.xmlを編集しました。突然実行mvn compileすると、古いバージョンのJavaでコンパイルしているかのようにエラーが発生します。のようなもの:

エラー:ジェネリックは-source1.3ではサポートされていません

これで、pom.xmlを元のコンテンツにペアリングしましたが、まだこのエラーが発生します。を実行し、mvn cleanターゲットの下にあるすべてのものを削除しましたが、まだこの問題が発生しています。

コンパイルフェーズを実行しているMavenのスニペットは次のとおりです。

[情報]プロジェクトをスキャンしています...
[情報]                                                                         
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報]bahToBeh1.0の構築-スナップショット
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報]
[情報]---maven-resources-plugin:2.3:resources(default-resources)@ bahToBeh ---
[警告]プラットフォームエンコーディング(実際にはUTF-8)を使用して、フィルタリングされたリソースをコピーします。つまり、ビルドはプラットフォームに依存します。
[情報]存在しないresourceDirectory/home / doug / lucid / bah-bio-demo / bahToBeh / src / main/resourcesをスキップします
[情報]
[情報]---maven-compiler-plugin:2.0.2:compile(default-compile)@ bahToBeh ---
[情報]9つのソースファイルを/home/ doug / lucid / bah-bio-demo / bahToBeh / target/classesにコンパイルします
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報]ビルドの失敗
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[情報]合計時間:2.880秒
[情報]終了日:Thu Dec 20 13:52:06 EST 2012
[情報]最終メモリ:7M / 105M
[情報]  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - - -------------------------
[エラー]プロジェクトbahToBehでゴールorg.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile(default-compile)を実行できませんでした:コンパイルの失敗:コンパイルの失敗:
[エラー]/home/doug/lucid/bah-bio-demo/bahToBeh/src/main/java/com/lucid/bahdemo/parsers/pm/MeshReader.java:[23,4]エラー:ジェネリックはサポートされていません-ソース1.3

そして、私のペアになったpom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.lucid</groupId>
  <artifactId>bahToBeh</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>bahToBeh</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
  </dependency>
    <dependency>
      <groupId>com.digitalpebble</groupId>
      <artifactId>behemoth-core</artifactId>
      <version>1.0</version>
  </dependency>
  <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-core</artifactId>
      <version>1.0.4</version>
  </dependency>
  <dependency>
      <groupId>marc4j</groupId>
      <artifactId>marc4j</artifactId>
      <version>2.4</version>
  </dependency>
  </dependencies>
</project>

これは今日までうまく機能していました。どの設定を変更したのか、またはプロジェクトをどのように変更できたのかわかりません。正しいバージョンのJavaがインストールされていることを再確認しました。

doug @ doug-VirtualBox:〜/ lucid / bah-bio-demo / bahToBeh $ java -version
Javaバージョン「1.7.0_10」
Java(TM)SEランタイム環境(ビルド1.7.0_10-b18)
Java HotSpot(TM)64ビットサーバーVM(ビルド23.6-b04、混合モード)
doug @ doug-VirtualBox:〜/ lucid / bah-bio-demo / bahToBeh $ javac -version
javac 1.7.0_10

これがJAVA_HOMEです

doug @ doug-VirtualBox:〜/ lucid / bah-bio-demo / bahToBeh $ echo $ JAVA_HOME
/ usr / lib / jvm / java-7-oracle

Mavenはpom.xmlを使用しています。実行すると、次のようmvn -X compileになります。

デバッグ](f)プロジェクト= MavenProject:com.lucid:bahToBeh:1.0-SNAPSHOT @ /home/doug/lucid/bah-bio-demo/bahToBeh/pom.xml

また、Mavenリポジトリを削除し、Mavenrm -rf ~/.m2が同じ問題をすべて再ダウンロードするのを見ました。

編集-それは突然不思議に機能し ます私は何が起こったのか分かりませんが、突然今は機能しています。私が変更したことの1つは、テストをコメントアウトしたことだと思いました。私は行ってテストのコメントを外してから実行mvn compileし、今回はコンパイルしました。どこかで同期がとれておらず、魔法のように機能する状態がありますか?

私のツールが突然不安定になる理由がわからないのは嫌なので、これは質問に対する答えではなく、単なる詳細情報です。

編集-そしてそれはまた突然動作を停止しまし たコンパイルするバージョンを完全に指定するように見えますが、それが勝者です。

4

2 に答える 2

8

ソースとターゲットの Java バージョンを明示的に設定します。http://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>
于 2012-12-20T19:27:44.127 に答える
-1

回避策として、これを試すことができます(環境に非常に固有である場合、これは役立つ可能性があります)。

プラグインを使用して、コンパイルのバージョンを適用できます。 Mavenコンパイルプラグイン

幸運を!

于 2012-12-20T19:11:34.213 に答える