在 build.gradle.kts 和应用程序之间共享变量

问题描述 投票:0回答:1

是否可以在

build.gradle.kts
和主应用程序之间共享变量?我只想指定一次应用程序的名称和版本以及一些其他设置。

kotlin desktop-application gradle-kotlin-dsl
1个回答
0
投票

有一种使用构建源的方法。您可以在您的

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)
}

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.