[英]Gradle, Kotlin : How to add another spring boot project as a module dependency in intellij
I have two spring boot projects我有两个 Spring Boot 项目
Project1 (Spring boot project)
|
|--build.gradle
|--settings.gradle
|--src/main/kotlin
Project2 (Spring boot project)
|
|--build.gradle
|--settings.gradle
|--src/main/kotlin
Project2 is dependent on Project1.项目 2 依赖于项目 1。 Could someone tell me how to add this dependency (eg modify build.gradle and settings.gradle) so that these projects should work fine.
有人可以告诉我如何添加此依赖项(例如修改 build.gradle 和 settings.gradle),以便这些项目可以正常工作。 I have tried a lot of resources, but no luck to achieve that.
我尝试了很多资源,但没有运气实现这一目标。
PS: Both Project1 and Project2 are spring boot Kotlin projects and they work fine individually. PS:Project1 和 Project2 都是 Spring Boot Kotlin 项目,它们单独运行良好。 I want to reuse some functionality of Project1 into Project2 and I am not able to do it.
我想将 Project1 的某些功能重用到 Project2 中,但我无法做到。
Also, Project1 and Project2 are at the same directory level.此外,Project1 和 Project2 位于同一目录级别。
Any help would be highly appreciated.任何帮助将不胜感激。
As first step you need add root project with two subprojects.作为第一步,您需要添加具有两个子项目的根项目。
settings.gradle.kts
rootProject.name = "demo-root"
include(
"project1",
"project2"
)
build.gradle.kts
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
base
kotlin("jvm") version "1.3.71" apply true
id("java-library")
id("org.springframework.boot") version "2.2.6.RELEASE" apply false
id("io.spring.dependency-management") version "1.0.9.RELEASE" apply false
id("org.jetbrains.kotlin.plugin.jpa") version "1.3.71" apply false
kotlin("plugin.spring") version "1.3.71" apply false
}
allprojects {
group = "com.dempcompany"
version = "0.0.1-SNAPSHOT"
repositories {
mavenCentral()
}
// apply {
// plugin("kotlin")
// }
tasks.withType<JavaCompile> {
sourceCompatibility = "13"
targetCompatibility = "13"
}
tasks.withType<KotlinCompile> {
kotlinOptions {
jvmTarget = "12"
}
}
}
subprojects {
// apply {
// plugin("io.spring.dependency-management")
// }
}
dependencies {
subprojects.forEach {
// Make the root project archives configuration depend on every subproject
archives(it)
}
}
Then configure build configuration for project1然后为project1配置构建配置
project1/build.gradle.kts
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
base
kotlin("jvm") version "1.3.71" apply true
id("java-library")
id("org.springframework.boot") version "2.2.6.RELEASE" apply false
id("io.spring.dependency-management") version "1.0.9.RELEASE" apply false
id("org.jetbrains.kotlin.plugin.jpa") version "1.3.71" apply false
kotlin("plugin.spring") version "1.3.71" apply false
}
allprojects {
group = "com.democompany"
version = "0.0.1-SNAPSHOT"
repositories {
mavenCentral()
}
// apply {
// plugin("kotlin")
// }
tasks.withType<JavaCompile> {
sourceCompatibility = "13"
targetCompatibility = "13"
}
tasks.withType<KotlinCompile> {
kotlinOptions {
jvmTarget = "12"
}
}
}
subprojects {
// apply {
// plugin("io.spring.dependency-management")
// }
}
dependencies {
subprojects.forEach {
// Make the root project archives configuration depend on every subproject
archives(it)
}
}
project1/setting.gradle.kts
rootProject.name = "project1"
And then configure build configuration for project2然后为project2配置构建配置
project2/build.gradle.kts
plugins {
id("org.springframework.boot")
id("io.spring.dependency-management")
kotlin("jvm")
kotlin("plugin.spring")
}
repositories {
mavenCentral()
maven("https://jitpack.io")
}
java.sourceCompatibility = JavaVersion.VERSION_13
dependencies {
/* Project modules */
implementation(project(":project1", "default"))
/* Spring Framework */
implementation("org.springframework.boot:spring-boot-starter")
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-actuator")
/* Kotlin */
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3")
}
project2/settings.gradle.kts
rootProject.name = "project2"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.