springboot2.5编译时对java程序的约定处理
private void configureJavadocConventions(Project project) { project.getTasks().withType(Javadoc.class, (javadoc) -> { javadoc.getOptions().source("1.8").encoding("UTF-8"); withOptionalBuildJavaHome(project, (javaHome) -> javadoc.setExecutable(javaHome + "/bin/javadoc")); }); } private void configureJavaCompileConventions(Project project) { project.getTasks().withType(JavaCompile.class, (compile) -> { compile.getOptions().setEncoding("UTF-8"); withOptionalBuildJavaHome(project, (javaHome) -> { compile.getOptions().setFork(true); compile.getOptions().getForkOptions().setJavaHome(new File(javaHome)); compile.getOptions().getForkOptions().setExecutable(javaHome + "/bin/javac"); }); Listargs = compile.getOptions().getCompilerArgs(); if (!args.contains("-parameters")) { args.add("-parameters"); } if (JavaVersion.current() == JavaVersion.VERSION_1_8) { args.addAll(Arrays.asList("-Werror", "-Xlint:unchecked", "-Xlint:deprecation", "-Xlint:rawtypes", "-Xlint:varargs")); } }); } private void withOptionalBuildJavaHome(Project project, Consumer consumer) { String buildJavaHome = (String) project.findProperty("buildJavaHome");// javahome取配置 if (buildJavaHome != null && !buildJavaHome.isEmpty()) { consumer.accept(buildJavaHome); } } private void configureSpringJavaFormat(Project project) { project.getPlugins().apply(SpringJavaFormatPlugin.class); project.getTasks().withType(FormatTask.class, (formatTask) -> formatTask.setEncoding("UTF-8")); project.getPlugins().apply(CheckstylePlugin.class); CheckstyleExtension checkstyle = project.getExtensions().getByType(CheckstyleExtension.class); checkstyle.setToolVersion("8.29");// 设置checkstyle的版本为8.29 checkstyle.getConfigDirectory().set(project.getRootProject().file("src/checkstyle")); String version = SpringJavaFormatPlugin.class.getPackage().getImplementationVersion(); DependencySet checkstyleDependencies = project.getConfigurations().getByName("checkstyle").getDependencies(); checkstyleDependencies .add(project.getDependencies().create("io.spring.javaformat:spring-javaformat-checkstyle:" + version)); } private void configureDependencyManagement(Project project) { ConfigurationContainer configurations = project.getConfigurations(); Configuration dependencyManagement = configurations.create("dependencyManagement", (configuration) -> { configuration.setVisible(false); configuration.setCanBeConsumed(false); configuration.setCanBeResolved(false); }); configurations .matching((configuration) -> configuration.getName().endsWith("Classpath") || JavaPlugin.ANNOTATION_PROCESSOR_CONFIGURATION_NAME.equals(configuration.getName())) .all((configuration) -> configuration.extendsFrom(dependencyManagement)); Dependency springBootParent = project.getDependencies().enforcedPlatform(project.getDependencies() .project(Collections.singletonMap("path", ":spring-boot-project:spring-boot-parent"))); dependencyManagement.getDependencies().add(springBootParent); // 通过项目插件容器配置可选依赖,这类依赖仅在该项目编译时生效,不会影响其他项目 project.getPlugins().withType(OptionalDependenciesPlugin.class, (optionalDependencies) -> configurations .getByName(OptionalDependenciesPlugin.OPTIONAL_CONFIGURATION_NAME).extendsFrom(dependencyManagement)); } }
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《springboot2.5编译时对java程序的约定处理》
本文地址:http://www.xiupu.net/archives-10629.html
关注公众号:
微信赞赏
支付宝赞赏