主页 > 其他  > 

springbootgradle多项目创建

springbootgradle多项目创建

1.背景2.创建父项目3.配置gradlew4.创建子项目

1.背景

1.用IDE创建一个父项目(school_project),两个子项目(student_project,teacher_project)。子项目是两个springboot工程 2.使用gradle kotlin进行管理,gradle版本8.11.1 3.使用java17 4.springboot版本3.4.0

下面这个是官网的图,一个project和两个a,b子项目,本文实现的也是这个项目结构

2.创建父项目

创建一个java项目 注意这里gradle Wrapper随便选一个版本,后面改为8.11.1

创建完后,删除src目录,src是放代码的地方,父项目不需要,代码在子项目中

下面修改build.gradle.kts和setting.gardle.kts这两个文件,这两个文件也是父项目统一配置子项目的地方。 修改build.gradle.kts文件,我的如下:

plugins { id("org.springframework.boot") version "3.4.0" id("io.spring.dependency-management") version "1.1.6" } group = "org.example" version = "1.0-SNAPSHOT"

主要是指定springboot插件的版本是3.4.0,在子项目中引用插件时就不用指定版本了

修改settins.gradle.kts 我的文件如下:

pluginManagement { repositories { maven { url=uri (" .jitpack.io")} maven { url=uri (" maven.aliyun /repository/releases")} maven { url=uri (" maven.aliyun /repository/google")} maven { url=uri (" maven.aliyun /repository/central")} maven { url=uri (" maven.aliyun /repository/gradle-plugin")} maven { url=uri (" maven.aliyun /repository/public")} google() mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { repositories { maven { url=uri (" .jitpack.io")} maven { url=uri (" maven.aliyun /repository/releases")} maven { url=uri (" maven.aliyun /repository/google")} maven { url=uri (" maven.aliyun /repository/central")} maven { url=uri (" maven.aliyun /repository/gradle-plugin")} maven { url=uri (" maven.aliyun /repository/public")} google() mavenCentral() } } rootProject.name = "school_project"

1.pluginManagement ,是统一的插件地址 2.dependencyResolutionManagement ,是统一的依赖下载地址。

父项目的根目录下的这个settins.gradle.kts文件是所有项目的统一配置的地方,我这里配置了插件和依赖下载的地址,这样后面在两个子项目(student和teacher)中就不用配置了,这也是父项目的意义所在:统一管理配置。 改好后,点gradle的这个图标,会下载相关依赖,看看有没有问题 小结:

setting.gardle.kts这个文件在多项目中,官方建议只能存在于父项目中。 3.配置gradlew

修改文件gradle-wrapper.properties,主要把distributionUrl改成我们想要的版本8.11.1,文件内容是:

distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://mirrors.cloud.tencent /gradle/gradle-8.11.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists

注意这个地址distributionUrl,加速下载,最好改国内地址,https后面还有个\

然后在settings里面改Gradle配置: 1.Gradle user home:选本地磁盘目录,所有java依赖jar包都会下载在这个目录,一般自己电脑上所有gradle项目都共用这个目录,相当于maven的repository目录。 2.Distribution: 选Wrapper

如果在自己电脑上安装了gradle,也不需要配置gradlew。上面的Distribution选本机的gradle就行了。如下图。 之所以配置gradlew,好处是项目可以拥有自己独立的gradle版本(和本地电脑上安装的版本不会有冲突),上面的文件gradle-wrapper.properties,当别人通过git获取到项目代码时,也会根据这个文件自动下载配置gradle(本地电脑不必安装gradle)。

4.创建子项目

点父项目右击,创建new module 这一步先随便选一个spingboot版本,后面会删掉

创建完后,删除下面红框中的目录和文件,只留下src目录和build.gradle.kts文件 在build.gradle.kts文件内容改成下面这个: 注意plugins里面不需要加版本号,在父项目的build.gradle.kts文件中加了。

plugins { java id("org.springframework.boot") id("io.spring.dependency-management") } group = "org.example" version = "0.0.1-SNAPSHOT" dependencies { implementation("org.springframework.boot:spring-boot-starter") implementation("org.springframework.boot:spring-boot-starter-web") testImplementation("org.springframework.boot:spring-boot-starter-test") testRuntimeOnly("org.junit.platform:junit-platform-launcher") }

创建完成后,在父项目的settings.gradle.kts文件中,加上了include(“student_project”), 比较奇怪这个include(“student_project”)应该是自动加好的,但是没有加,我就手动加了一下。(可能是创建子项目时,选springboot有bug吧,我测试了一下,如果子项目选java,就会自动加上这个)

然后点gradle加载时,会报错 Task ‘wrapper’ not found in project ‘:student_project’. 打开“File-Project Structure",发现Modules里面有一个和"school_project"平级的“student_project",把这个"student_project"删掉。 就个错应该和前面没有自动加这个include(“student_project”)问题一样,导致没有把student识别为school的子项目,当作了平级的。

再原样创建一个子项目teacher_project,最终项目结构如下: 注意下面Gradle窗口中student和teacher在school里面,如果有和school同级的就删掉。

标签:

springbootgradle多项目创建由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“springbootgradle多项目创建