当前位置: 首页 > 知识库问答 >
问题:

IntelliJ从Gradle同步时覆盖Scala附加编译器选项

周兴朝
2023-03-14

我正在IntelliJ IDEA中从事一个Scala项目,并使用Gradle进行配置和依赖关系管理。

每次我添加一些新的依赖项并将其同步到IDEA中时,它都会将附加的编译器选项重写到-target:jvm-1.8中,当我试图使用IDEA创建它时,会导致一个错误:

Error:scalac: 'jvm-1.8' is not a valid choice for '-target'
Error:scalac: bad option: '-target:jvm-1.8'

所以我需要手动修复。

我是否可以在build.gradle中设置目标JVM版本或编译器参数(还需要-feature选项),以便从那里获取这些参数?

谢谢!

共有1个答案

蒋原
2023-03-14

您可以将sourcecompatibility='1.7'添加到分级生成文件中,然后刷新,项目将正常生成。请注意,这样您的代码中就不能包含Java8源代码,这是暂时的攻击,直到gradlewarejetbrains解决了这个问题。

您还可以篡改在运行gradle IDEA时生成的IDEA项目XML。这将使您可以选择包括其他标志。您可以通过打开项目.iml文件并确定需要更改的内容来检查当前的xml,然后使用以下代码:

apply plugin: 'idea'

idea {
  module {
    iml {      
      withXml {
        def node = it.asNode()
        //modify xml
      }
    }
  }
}

但是我不推荐它,因为您必须坚持使用gradle IDEA,并且无法直接从IDEA正确导入,但是目前没有更好的方法来添加其他标志。文档-idea插件和idea模块

 类似资料:
  • 问题内容: 我有一个文件和。 当我进行调试构建时,我得到: 如何将添加到基础任务?关于Java编译选项的Gradle插件用户指南无济于事。 问题答案: 我根据有关操作任务的Gradle插件用户指南和有关JavaCompile的Gradle DSL文档 找到了以下解决方案: 添加到: 应用程序变体在Gradle的配置阶段,所需的任务也不存在,因此我在执行阶段进行了修改。

  • 我有一个与jacoco的项目,我希望能够过滤某些类和/或包。 我阅读了以下文档: 使用Sonarrunner和Gradle(不使用sonar)从Jacoco报告中排除包 Jacoco-从报表中排除JSP(它似乎适用于maven,我使用的是gradle) Maven Jacoco配置-从不工作的报告中排除类/包(这似乎适用于Maven,我使用的是gradle)

  • 是否有可能拥有一个Scala Maven项目,并在Scala类中编译时编织AspectJ方面? 我已经能够使加载时编织工作,但到目前为止没有成功的编译时。

  • 我正在使用IntelliJ IDEA 2019.1。1.默认情况下,Builds现在委托给gradle。在很大程度上,我喜欢这个想法,但对于我的一个项目来说,这个格拉德尔的代表团似乎造成了一个构建问题。我在构建输出中看到了这一点: 看起来IntelliJ正在选择从我的构建中自动运行这些任务。格拉德尔。问题是这样运行任务“:stepsapi:querydslClasses”总是会导致编译错误。在--

  • 我使用maven命令来清理、构建整个项目、创建war并部署到服务器。我不能使用Intellij来做这件事,因为我只有社区版。它在与intellij相同的目录中构建项目。 为了加快速度,我编写了一个脚本,可以在本地“target”目录中找到比服务器中更新的已编译文件,并进行复制。虽然一切正常,但问题是Intellij并没有将使用maven编译的类视为应该跳过并重新构建整个项目的类。 目前它的工作原理