我試圖將svn修訂版添加到我的app.version
,而不需要使用ant或其他類似的外部工具。它看起來像我可能能夠鉤入_Events.groovy
這個,但文檔相對稀少。grails將svn修訂版添加到app.version
任何人都知道如何做到這一點?
我試圖將svn修訂版添加到我的app.version
,而不需要使用ant或其他類似的外部工具。它看起來像我可能能夠鉤入_Events.groovy
這個,但文檔相對稀少。grails將svn修訂版添加到app.version
任何人都知道如何做到這一點?
This來自Grails nabble郵件列表的鏈接提供了您正在尋找的解決方案。也把這裏的代碼的完整性:
在scripts/_Events.groovy
eventWarStart = { type ->
println "******************* eventWarStart *****************"
try {
// initialise SVNKit
DAVRepositoryFactory.setup();
SVNRepositoryFactoryImpl.setup();
FSRepositoryFactory.setup();
SVNClientManager clientManager = SVNClientManager.newInstance();
println "clientManager = " + clientManager.toString();
SVNWCClient wcClient = clientManager.getWCClient();
println "wcClient = " + wcClient.toString();
// the svnkit equivalent of "svn info"
File baseFile = new File(basedir);
println "baseFile = " + baseFile.toString();
SVNInfo svninfo = wcClient.doInfo(baseFile, SVNRevision.WORKING);
println "svninfo = " + svninfo.toString();
def version = svninfo.getURL();
println "Setting Version to: ${version}"
metadata.'app.version' = "${version}".toString()
metadata.persist()
}
catch (SVNException ex) {
//something went wrong
println "**************** SVN exception **************"
println ex.getMessage();
}
} // End eventWarStart()
Grails的3.x中,在的build.gradle,SVN版本添加到應用程序版本:
version "1.0.${getSvnRevision()}"
def getSvnRevision() {
def proc = "svnversion".execute()
return proc.in.text
}
這個偉大的工程,除了背後git svn。我必須從我的構建服務器上取得應用程序版本,但這是要走的路。 – 2011-03-11 17:39:38
這會打印出SVN網址,而不是建議的版本。我想修訂號碼,所以我使用了'def version = svninfo.revision'。 – nickdos 2014-05-16 05:13:13