gradle多模块依赖管理最佳实践
多模块项目依赖管理
依赖管理是项目开发过程中必不可少的操作,在gradle如何优雅的管理多个模块依赖是一个非常值得探讨的问题,本文总结了最佳管理的方式,如 统一三方依赖版本,dependencies
定义子模块
rootProject.name = 'project'
include("dependencies")
include("common")
include("web")
include("domain")
include("service")
使用buildSrc定义插件
plugins {
id 'java-gradle-plugin'
id "java"
id "groovy"
}
description = "sofast dependency manager"
group 'cc.sofast.dependency'
version '1.0.0'
repositories {
mavenLocal()
mavenCentral()
gradlePluginPortal()
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://repo.spring.io/milestone' }
}
dependencies {
implementation('org.springframework.boot:org.springframework.boot.gradle.plugin:3.1.5')
implementation('io.spring.gradle:dependency-management-plugin:1.1.3')
}
gradlePlugin {
plugins {
version {
id = 'sofast.module.plugin'
implementationClass = 'cc.sofastframework.gradle.SofastModulePlugin'
displayName = "Dependency Manager Plugin"
description = "Manage Dependent Versions"
}
}
}
SofastModulePlugin
public class SofastModulePlugin implements Plugin<Project> {
@Override
public void apply(Project project) {
System.out.println("Sofast Dependency Manager plugin.");
//java 插件
project.getPlugins().apply(JavaPlugin.class);
project.getPlugins().apply(JavaBasePlugin.class);
//springboot
Object springBootPluginEnable = project.getProperties().get("springBootPluginEnabled");
if (Boolean.valueOf(String.valueOf(springBootPluginEnable)).equals(Boolean.TRUE)) {
System.out.println("enabled SpringBootPlugin and DependencyManagementPlugin.");
project.getPlugins().apply(SpringBootPlugin.class);
project.getPlugins().apply(DependencyManagementPlugin.class);
}
project.getPlugins().apply(JavaConventionsPlugin.class);
//依赖仓库
project.getRepositories().mavenLocal();
project.getRepositories().mavenCentral();
project.getRepositories().maven(mavenArtifactRepository -> mavenArtifactRepository.setUrl("https://maven.aliyun.com/nexus/content/groups/public/"));
project.getRepositories().maven(mavenArtifactRepository -> mavenArtifactRepository

本文介绍了如何在Gradle中优雅地管理多模块项目的依赖,包括使用buildSrc定义插件、统一第三方依赖版本、依赖模块的配置以及引入Optional依赖。重点讲解了SofastModulePlugin在项目中的应用和JavaConventionsPlugin对编码规范的设置。

2万+

被折叠的 条评论
为什么被折叠?



