获取版本信息并从grails war文件构建数据

时间:2015-11-25 14:21:30

标签: grails war

在我的应用程序中,用户可以选择上传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文件中获取哪些信息以及如何获取?

祝你好运, 彼得

3 个答案:

答案 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