【发布时间】:2011-08-05 14:29:02
【问题描述】:
我想知道是否有办法在我的 Grails 应用程序顶部显示版本和构建日期。
编辑:我应该说我正在寻找应用程序的构建日期/时间。
【问题讨论】:
标签: grails
我想知道是否有办法在我的 Grails 应用程序顶部显示版本和构建日期。
编辑:我应该说我正在寻找应用程序的构建日期/时间。
【问题讨论】:
标签: grails
在您的主模板中,或任何地方。
<p style="float:right">Server version: <%=ApplicationHolder.application.metadata['app.version']%></p>
如果您愿意,可以使用<g:if env="..."> 来限制环境。
Build date 比较棘手,可能没有任何意义。你不会在同一天建造两次吗?同一小时?我在构建之前将 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 修订版。
【讨论】:
我自己没试过,但是有类似的东西
grails set-version 20110101-3
def version = grailsApplication.metadata['app.version']
更多信息请参考documentation
【讨论】:
任何寻找 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"/>
【讨论】: