Grails - 如何在我的应用程序中显示版本并构建日期/时间

时间:2011-08-05 14:29:02

标签: grails

我想知道是否有办法在Grails应用程序的顶部显示版本和构建日期。

编辑:我应该说我正在寻找应用程序构建的日期/时间。

3 个答案:

答案 0 :(得分:3)

在您的主模板中,或在任何地方。

<p style="float:right">Server version: <%=ApplicationHolder.application.metadata['app.version']%></p>

如果您愿意,可以使用<g:if env="...">来限制环境。

构建日期比较棘手,可能并不意味着什么。你从来没有在同一天建两次吗?同一时间?我在构建之前在我的应用程序版本中坚持使用svn修订版来识别构建,如下所示:

_Events.groovy

eventWarStart = { type ->
    addSvnRevisionToAppVersion()
}

private def addSvnRevisionToAppVersion() {
    try {
        DAVRepositoryFactory.setup();
        SVNRepositoryFactoryImpl.setup();
        FSRepositoryFactory.setup();

        SVNClientManager clientManager = SVNClientManager.newInstance();
        SVNWCClient wcClient = clientManager.getWCClient();
        File baseFile = new File(basedir);
        SVNInfo svninfo = wcClient.doInfo(baseFile, SVNRevision.WORKING);

        def svnRevision = svninfo.getRevision().number;

        String oldVersion = metadata.'app.version'
        String newVersion
        if (oldVersion.matches(/.*\.r\d+/)) {
            newVersion = oldVersion.replaceAll(/\.r\d+/, ".r${svnRevision}");
        }
        else {
            newVersion = oldVersion + ".r${svnRevision}".toString()
        }
        metadata.'app.version' = newVersion
        metadata.persist()

    }
    catch (SVNException ex) {
        println "**************** SVN exception **************"
        println ex.getMessage();
    }
}

请注意,您可以添加new Date()来获取构建日期,而不是附加svn修订版。

答案 1 :(得分:1)

我自己没有尝试过,但有类似

的东西
grails set-version 20110101-3

def version = grailsApplication.metadata['app.version']

有关详细信息,请参阅documentation

答案 2 :(得分:0)

任何人都在寻找grails的解决方案3.可以通过配置buildProperties任务

来完成
buildProperties {
    inputs.property("info.app.build.date", new Date().format('yyyy-MM-dd HH:mm:ss'))
}

 <g:meta name="info.app.build.date"/>

请参阅Adding build date and other custom info to war