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

如何使用Gradle强制执行java编译器版本?

屈昊天
2023-03-14

在我的所有项目中,我都使用gradle并指定以下内容:

sourceCompatibility = "1.7"; // for example
targetCompatibility = "1.7"; // defaults to sourceCompatibility

现在,我安装了三个不同版本的JDK,从1.6到1.8。为了从一个版本切换到另一个版本,Isourceshell文件更改pathjava_home甚至jdk_home

偶然的是,我可能会使用错误的JDK版本,而我不希望这样...是否有可能在尝试任何编译任务之前检查编译器版本是否等于targetCompatibility?

共有1个答案

唐修能
2023-03-14

我使用以下内容:

task checkJavaVersion << {
    if (!JavaVersion.current().isJava6()) {
        String message = "ERROR: Java 1.6 required but " +
                          JavaVersion.current() +
                          " found. Change your JAVA_HOME environment variable.";
        throw new IllegalStateException(message);
    }
}

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

  • 我在HashMap中存储的对象作为键覆盖equals(),但不是hashCode();当我在映射中放置一个对象时,equals()方法没有被调用。如果我还重写hashCode(),则会调用equals()方法。为什么? 为什么我不能使用自定义的equals方法来阻止向映射中添加对象,而不管我是否重写hashCode()? 谢谢 如果注释了hashCode(),则大小为2,否则大小为1。 我在想,如

  • 问题内容: 似乎这应该是一个简单的任务,它具有“首选项”菜单中用于不同JRE的选项,并且能够为每个项目设置不同的编译器和构建路径。但是,这似乎也根本行不通。 例如,我将JAVA_HOME设置为Java 1.6的jre。我仍然不清楚Eclipse如何使用此功能,但是它似乎是默认设置,并且未采用项目替代。我还安装了Java 1.5,并在Eclipse的Java-> Installed JREs部分中为

  • 问题内容: 我在一个项目上使用JAXB。JAXB的吸引力在于它与JDK捆绑在一起,我一直在命令行上使用xjc.exe从架构生成.java文件。我似乎找不到JAXB ant任务,请确保在http://jaxb.java.net上有下载,但是我想使用捆绑到JDK中的JAXB,是否有某种方法可以从ant调用JAXB? xjc.exe调用的类? 问题答案: 刚刚在tools.jar中打猎,并在com.su

  • 我的模块的分级文件:

  • 渐变-泊坞插件和Spring靴版本 2.0.0.M4 M4 使用较新的客户端,并且使用 docker 插件以异常结尾,存在一个问题: 我的主项目中的构建脚本: 如您所见,我们加载spring-boot-gradle-plugin version=2.0.0。M4及其所有依赖项。 我的子项目构建:gradle: 最重要的是,docker.gradle文件与子项目的build.gradle文件位于同一