在我的应用程序中,用户可以选择上传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文件中获取哪些信息以及如何获取?
祝你好运, 彼得
答案 0 :(得分:3)
为此,您可以向grails应用程序添加一个脚本,以便在用户构建战争时将此信息添加到文件中。在名为?
的grails app中的./scripts下创建一个新脚本文件。在这里,您可以挂钩在应用程序启动或构建战争时触发的不同grails事件。
您可以使用_Events.groovy
事件在战争构建时记录信息。下面是一些可以帮助您入门的示例代码。它从本地git获取当前分支名称和提交id,并将数据存储到名为eventCreateWarStart
的文件中。
application.properties
还有一个grails plugin声称从Hudson / Jenkins获取构建属性,如果它们用于构建战争。
答案 1 :(得分:1)
Grails 3.0.9,在GSP中,您可以从META-INF文件中获取信息。试试这些
${grails.util.Metadata.current.getApplicationVersion()}
${grails.util.Metadata.current.getEnvironment()}
${grails.util.Metadata.current.getApplicationName()}
但我不知道如何获取构建日期信息。
答案 2 :(得分:0)
对于grails 3,您可以使用buildProperties任务向战争中添加任何自定义信息,例如构建日期,版本信息,git修订等。
package.json
请参阅此文章,了解如何执行相同的http://nimavat.me/blog/grails3-add-custom-build-info-to-war