テストと生産のためのさまざまな言語レベルを使用します

DodgyCodeException:

私たちは、Java 6互換性ライブラリ(jarファイル)を構築するプロジェクトを持っていますが、私たちのユニットテストは、Java 8を使用して実行されていると、彼らは、Java 8の構文を使用します。私たちのMavenのpom.xmlファイルには、この含まれています:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.6</source>
            <target>1.6</target>
            <testSource>1.8</testSource>
            <testTarget>1.8</testTarget>
        </configuration>
    </plugin>

IntelliJ IDEAプロジェクトは、Mavenプロジェクトとして構築されています。残念ながら、あるIntelliJ IDEAの扱いプロジェクト全体JDK 1.6、でも単体テストを使用するなど、これはJava 6でサポートされていないと言って(例えば、ラムダ式など)は、Java 8構文の下に赤いラインエディタウィンドウプットがように方法はあります製品コードのテストとJava 6のJava 8の構文を使用するためにそれを教えてください。彼らは別のディレクトリツリーに住んでいるが、同じモジュールの一部です。

アレクサンダーPushkarev:

IntelliJ IDEAの資料によると、1は、異なるモジュールに異なるJDLsを設定することができますが、彼らは、テストおよびソースコードの異なるJDKをサポートしていません。

でも公式の応答があります:

:これは、現時点ではサポートされていないhttps://youtrack.jetbrains.com/issue/IDEA-85478

ここで(詳細:https://intellij-support.jetbrains.com/hc/en-us/community/posts/360001335500-Set-different-java-language-level-between-source-code-and-test-in -the-最新の安定版・オブ・Idea-

やや不器用な回避策があります - あなたはIDEAのためにのみ使用されます異なるMavenのプロファイルを使用することができます。

<profiles>
  <profile>
    <id>ide</id>
    <activation>
      <activeByDefault>false</activeByDefault>
      <property>
        <name>idea.maven.embedder.version</name>
      </property>
    </activation>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.2</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <testSource>1.8</testSource>
            <testTarget>1.8</testTarget>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
<profiles>

より詳細な情報はここで見つけることができます:https://youtrack.jetbrains.com/issue/IDEA-85478

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=364217&siteId=1