gpt4 book ai didi

java - 使用不同的语言级别进行测试和生产

转载 作者:行者123 更新时间:2023-11-30 05:19:49 25 4
gpt4 key购买 nike

我们有一个项目构建了一个与 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 8 语法(例如 lambda 表达式)下放置了一条红线,表示 Java 6 不支持此功能。有没有办法告诉它使用 Java 8 语法进行测试并使用 Java 6 进行生产代码?它们位于不同的目录树中,但属于同一模块。

最佳答案

根据IntelliJ IDEA文档,可以为不同的模块配置不同的JDL,但它们不支持用于测试和源代码的不同JDK。

甚至还有官方回应:

It's not supported at the moment: 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-lastest-stable-version-of-Idea-)

有一个有点笨拙的解决方法 - 您可以使用不同的 Maven 配置文件,该配置文件仅用于 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>

更详细的信息可以在这里找到:https://youtrack.jetbrains.com/issue/IDEA-85478

关于java - 使用不同的语言级别进行测试和生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59750471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com