簡體   English   中英

如何使用Spring Boot從Gradle獲取應用程序版本和一些其他信息?

[英]How can I get application version and some other info from gradle using Spring Boot?

您能解釋一下如何從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}"
            )
        }
    }
}

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM