是否可以在
build.gradle.kts
和主应用程序之间共享变量?我只想指定一次应用程序的名称和版本以及一些其他设置。
有一种使用构建源的方法。您可以在您的
build.gradle.kts
和应用程序中引用此代码,以便您可以在那里定义变量。 组织 Gradle 项目 - 使用 buildSrc 抽象命令式逻辑
示例:
项目结构:
root/
├── build.gradle.kts
├── buildSrc/
│ └── src/
│ └── main/
│ └── kotlin/
│ └── Versions.kt
└── src/
└── main/
└── kotlin/
└── com/
└── example/
└── MyAppApplication.kt
代码:
// buildSrc/src/main/kotlin/Versions.kt
object Versions {
const val appName = "MyAwesomeApp"
const val appVersion = "1.0.0"
}
// build.gradle.kts
plugins {
id("org.springframework.boot") version "3.0.0"
kotlin("jvm") version "1.8.0"
}
group = "com.example"
version = Versions.appVersion // Using the version variable
application {
applicationName = Versions.appName // Using the appname
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter")
}
// src/main/kotlin/com/example/MyAppApplication.kt
package com.example.myapp
import Versions
@SpringBootApplication
class MyAppApplication {
init {
println("App Name: ${Versions.appName}, Version: ${Versions.appVersion}")
}
}
fun main(args: Array<String>) {
runApplication<MyAppApplication>(*args)
}
希望这有帮助。