我想知道是否有办法在Grails应用程序的顶部显示版本和构建日期。
编辑:我应该说我正在寻找应用程序构建的日期/时间。
答案 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"/>