gpt4 book ai didi

grails - 从Grails War文件获取版本信息和构建数据

转载 作者:行者123 更新时间:2023-12-02 14:19:04 25 4
gpt4 key购买 nike

在我的应用程序中,用户可以选择上传 war 文件以更新软件。

我想从war文件中获取一些版本信息,然后再将其部署到服务器上。我怎样才能做到这一点?

此信息对我有用:

def jversion=[
"buildDate": grailsApplication.metadata["build.date"],
"version": grailsApplication.metadata["app.version"],
"branch": grailsApplication.metadata["GIT_BRANCH"],
"buildNumber": grailsApplication.metadata["build.number"],
"gitCommit": grailsApplication.metadata["GIT_COMMIT"]

]

我可以从 war 文件中获得什么信息,以及如何获得?

最好的祝福,
彼得

最佳答案

为此,您可以将脚本添加到grails应用程序,以便在用户进行 war 时将这些信息添加到文件中。在grails应用程序的./scripts下创建一个名为_Events.groovy的新脚本文件。在这里,您可以了解应用启动或构建 war 时触发的不同grails事件。

每当 war 爆发时,您都可以使用eventCreateWarStart事件记录信息。下面是一些示例代码,可以帮助您入门。它从本地git获取当前分支名称和提交ID,并将数据存储到名为application.properties的文件中。

eventCreateWarStart = { warName, stagingDir ->
addBuildInfo("${stagingDir}/application.properties")
}

private void addBuildInfo(String propertyFile) {
def jVersion = [
"appName" : grailsApp.metadata['app.name'],
"version" : grailsApp.metadata["app.version"],
"buildDate" : new Date(),
"branch" : getBranch().trim(),
"Commit" : getRevision().trim(),
"buildNumber": System.getProperty("build.number", "CUSTOM"),
]

File file = new File(propertyFile)
file.text = ""
jVersion.each {
key, value ->
file.text += "${key}:\t${value}\n"
}

}

def getBranch() {
Process process = "git rev-parse --abbrev-ref HEAD".execute()
process.waitFor()
return process.text ?: 'UNKNOWN'
}

def getRevision() {
Process process = "git log --oneline --no-abbrev-commit -1".execute()
process.waitFor()
return process.text ?: 'UNKNOWN'
}

还有一个grails plugin,它声称可以从Hudson / Jenkins获取构建属性(如果将其用于构建 war )。

关于grails - 从Grails War文件获取版本信息和构建数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33918943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com