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

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

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

version = '0.0.2-SNAPSHOT'

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

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

非常感谢!

更新:

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

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

在此先感谢大家。

最佳答案

谢谢。我做的。

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

谢谢!

关于java - 如何使用Spring Boot从Gradle获取应用程序版本和一些其他信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57075053/

10-12 04:11
查看更多