java - 如何从 gradle 构建中获取版本属性以包含在运行时 Swing 应用程序中

标签 java swing groovy gradle

我有一个简单的父项目,其中包含模块/应用程序。我选择的构建工具是 gradle。父 build.gradle 定义如下。

apply plugin: 'groovy'
dependencies {
    compile gradleApi()
    compile localGroovy()
}


allprojects {
    repositories {
        mavenCentral()
    }

    version "0.1.0-SNAPSHOT"
}

我想做的是在我的 swing 应用程序中使用版本属性 (0.1.0-SNAPSHOT)。具体来说,我希望它显示在主 JFrame 的标题栏中。我希望能够执行类似 this.setTitle("My Application - v."+ ???.version);

该应用程序是一个纯 Java 项目,但我不反对添加 groovy 支持,它会有所帮助。

最佳答案

我喜欢在构建过程中创建属性文件。这是直接从 Gradle 执行此操作的方法:

task createProperties(dependsOn: processResources) {
  doLast {
    new File("$buildDir/resources/main/version.properties").withWriter { w ->
        Properties p = new Properties()
        p['version'] = project.version.toString()
        p.store w, null
    }
  }
}

classes {
    dependsOn createProperties
}

关于java - 如何从 gradle 构建中获取版本属性以包含在运行时 Swing 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33020069/

相关文章:

java - 在 JScrollPane 中拖动 JTree 节点时如何加快滚动速度

git - 在 jenkinsfile 中使用来自 Jenkins 存储的凭据

java - RapidMiner:通过 Id 属性访问 ExampleSet 的示例

java - java中的快捷键

java - 与字符串文字相比,字符串对象的优势是什么

java - 为什么我不能将 Scala 的 Function1 隐式转换为 java.util.function.Function?

java - 我可以在创建 JPEG 时更改 Java 的 ImageWriter 使用的压缩算法吗?

java - 当值发生变化时,面板上的组件如何向面板外的其他组件发出警报?

java - GridBagLayout 顶部和底部调整间隙

java - 如何在 Java/Groovy 中开发数据透视表