【问题标题】:How can I get application version and some other info from gradle using Spring Boot?如何使用 Spring Boot 从 gradle 获取应用程序版本和其他一些信息?
【发布时间】:2019-11-26 05:46:18
【问题描述】:

你能解释一下我如何从我的 Spring Boot 应用程序中获取应用程序版本和一些 otger 信息吗?

我正在使用 gradle 项目构建器。

如果我可以从 build.gradle 文件中获取应用程序版本(例如),我认为这会很酷

version = '0.0.2-SNAPSHOT'

然后我需要增加这个数字。 每次构建新的应用程序时,我都需要这样做。 然后我必须在 Java 代码中获取这些信息并将其传输到前端(AngularJS),以便 QA 可以知道应用程序的当前版本。

你能解释一下我该怎么做吗? 如果你能告诉我怎么做,我将不胜感激。

非常感谢!


更新:

我想了一下,意识到在 Groovy 上编写脚本并直接在“build.gradle”文件中以某种方式获取应用程序的当前版本可能更容易,然后将其增加 1(+1 ) 然后以某种方式记住这个版本(在“build.gradle”文件中覆盖它)并在 JAVA 代码中获取它。 也许我说的太复杂了,但我只能说这些了。

也许有人对此有任何想法? 我将感谢您提供的帮助和有用的链接。

提前感谢大家。

【问题讨论】:

标签: java spring-boot gradle spring-boot-gradle-plugin


【解决方案1】:

谢谢。我做到了。

public String getManifestInfo() {
        return getClass().getPackage().getImplementationVersion();
    }

应用程序构建后,我从 jar 文件中的 MANIFEST.MF 文件中获取了应用程序版本。

我的 build-gradle 文件中的一些代码

tasks.register("incrementVersion") {
    doFirst {
        def ver = version
        println ver
        String lastNumber = ver.substring(ver.lastIndexOf('.') + 1)
        int increment = lastNumber.toInteger() + 1
        println increment

        String firstNumber = ver.substring(0, ver.lastIndexOf("."))
        println firstNumber
        String result = buildFile.getText().replaceFirst("version='$version'","version='" + firstNumber + "." + increment + "'")
        buildFile.setText(result)
    }
}

jar.dependsOn incrementVersion
bootJar.dependsOn incrementVersion

bootJar {
    doFirst {
        manifest {
            attributes(
                    'Main-Class': 'com.example.appinfo.AppinfoApplication',
                    'Implementation-Title': 'Application Info project',
                    'Implementation-Version': "${version}"
            )
        }
    }
}

谢谢!

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 2018-04-27
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多