Utilizar diferentes niveles de idioma para la prueba y producción

DodgyCodeException:

Tenemos un proyecto que crea una biblioteca (un archivo jar) con compatibilidad Java 6, pero nuestras pruebas unitarias se ejecutan utilizando Java 8 y que el uso de Java 8 sintaxis. pom.xml nuestra Maven incluye lo siguiente:

    <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>

El proyecto de IntelliJ IDEA está construido como un proyecto Maven. Por desgracia, IntelliJ IDEA trata todo el proyecto como el uso de JDK 1.6, incluso las pruebas de unidad, por lo que los pone ventana del editor de una línea roja debajo de Java 8 sintaxis (como expresiones lambda) diciendo que esto no es compatible con Java 6. ¿Hay una manera de que lo utilice Java 8 sintaxis para las pruebas y Java 6 para el código de producción? Viven en árboles de directorios separados, pero son parte de un mismo módulo.

Alexander Pushkarev:

De acuerdo con la documentación IntelliJ IDEA, se puede configurar diferentes JDLs para diferentes módulos, pero que no son compatibles con diferentes JDK para código de prueba y la fuente.

Incluso hay una respuesta oficial:

No es compatible en la actualidad https://youtrack.jetbrains.com/issue/IDEA-85478 .

(Más detalles aquí: https://intellij-support.jetbrains.com/hc/en-us/community/posts/360001335500-Set-different-java-language-level-between-source-code-and-test-in -la-lastest-estable-versión-de-idea- )

Hay una solución algo torpe - se puede utilizar diferentes perfiles de Maven que será utilizada sólo para IDEA:

<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>

Más información detallada se puede encontrar aquí: https://youtrack.jetbrains.com/issue/IDEA-85478

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=364220&siteId=1
Recomendado
Clasificación