在Groovy脚本中,我可以将数组中的依赖项列表分配为“implementation library.frameworkLibs”,kotlin中是否存在类似的方法?
目标是在数组中具有依赖项列表,以便可以在子项目中单独分配每个列表。
plugins {
id 'org.springframework.boot' version '2.1.4.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
sourceCompatibility = '1.8'
/* 1. centerilize dependencies for all projects */
ext.libraries = [
frameworkLibs: [
'org.springframework.boot:spring-boot-starter-data-redis',
'org.springframework.boot:spring-boot-starter-web',
'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1',
'org.springframework.kafka:spring-kafka'
],
testLibs: [
'org.springframework.boot:spring-boot-starter-test',
'org.springframework.kafka:spring-kafka-test'
],
sqlLibs: [
'org.postgresql:postgresql'
]
]
allprojects {
group = 'com.example'
version = '0.0.1-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
/* 2. establish dependencies */
implementation libraries.frameworkLibs
runtimeOnly libraries.sqlLibs
testImplementation libraries.testLibs
}
}
最佳答案
您可以将依赖关系图更改为:
val libraries by extra {
mapOf(
"frameworkLibs" to listOf(
"org.springframework.boot:spring-boot-starter-data-redis",
"org.springframework.boot:spring-boot-starter-web",
"org.mybatis.spring.boot:mybatis-spring-boot-starter:2.0.1",
"org.springframework.kafka:spring-kafka"
)
)
}
然后在您的依赖项块中,它必须是:
libraries["frameworkLibs"]?.forEach { s -> implementation(s) }
您可以将扩展方法作为buildSrc脚本的一部分添加到Project中,以隐藏此
forEach
以使依赖项正常工作...
关于jenkins - 如何将Groovy中的集中化依赖项数组转换为Kotlin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56034519/