2015-11-25 3 views
5

コマンドラインからmavenを使用してSpring @org.springframework.web.bind.annotation.CrossOriginアノテーションを含むクラスをコンパイルすると、うまくコンパイルされます。私はIntelliJのアイデア15を使用して同じコードをコンパイルしようとする。しかし、私はこの奇妙なエラーが出ます:@CrossOrigin注釈はIntelliJでコンパイルを中止します

[ERROR] /Users/gregederer/devewx2/geoengine/src/main/java/geoengine/controller/rest/TimeSeriesController.java:[34,1] annotation org.springframework.web.bind.annotation.CrossOrigin is missing value for the attribute <clinit> 

これはhttps://community.oracle.com/message/4827054に関連している可能性が。しかし、その問題は決して決して解決されませんでした。

提案がありますか?

答えて

-2

IntelliJによる検証でエラーが除外され、右クリックしてコンパイルする必要がなくなります。

編集:JDKを更新するのが適切な修正であると思われます。私の提案は、問題をすばやく回避することを目的としていました。彼女の説明はニッキーの答えを参照してください。

+0

これは受け入れられた回答ではありません。ニッキーの答えを参照してください。 http://stackoverflow.com/a/35544977/423045 – Jesse

1

私は同じ問題を抱えています...検証から除外しても私の場合は助けになりませんでした。私がmvnでcmdからコンパイルすると、すべて正常に動作しますが、intellijからはそれはありません。 私のintellij設定は、java jdk 1.7(プロジェクトに必要)の使用を余儀なくされました。 1.8に設定すると問題はありません。これはjavac 7のバグだと思います(here参照)。

​​
+0

ありがとうございます。これは私のために働いた –

12

JDK 1.7.0_80を試してみてください。この問題は、JDK 1.7.0_79を使用して発生しました。しかし1.7.0_80で働いた。

0

oracle jdk 1.7.0_76がインストールされていたtravis ciに自分のアプリをデプロイする際に同じ問題が発生しました。私はjdk7を強制更新し、次に1.7.0_80にアップグレードしました。 @CrossOrigin注釈はそれ以降は不平を言っていませんでした。

0

今日この問題に直面した後、私はインターネットでも閲覧して、まっすぐ答えを見つけることができませんでした。プロジェクトがJDK 6にデプロイされていたため、私の場合は上位バージョンのJavaを使用することはできませんでしたが、最終的には解決策が見つかったので、他の人に役立つことを願っています。

重要ポイントはJavaは下位互換性です。

これは答えです:)。 1.7 or 1.8のようなより高いJDKバージョンを使用してプロジェクトをコンパイルし、-targetオプションを使用してより低いバージョンにクロスコンパイルすることができます。

-target version

Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are 1.1, 1.2, 1.3, 1.4, 1.5 (also 5), 1.6 (also 6), and 1.7 (also 7).

The default for -target depends on the value of -source:

If -source is not specified, the value of -target is 1.7

If -source is 1.2, the value of -target is 1.4

If -source is 1.3, the value of -target is 1.4

If -source is 1.5, the value of -target is 1.7

If -source is 1.6, the value of -target is 1.7

For all other values of -source, the value of -target is the value of -source.

参考:私はMavenを使用していたhttp://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html

ので、私はちょうどPOM<java.version>プロパティを変更しなければならなかったし、それはそれでした。私はまだJava 8を使用していましたが、最新のMavenではMavenがJDK6にクロスコンパイルされていました。

関連する問題