我正在尝试在运行时获取有关特定库的一些信息。到目前为止,我所拥有的是具有以下操作的控制器
def getAboutInfo() {
Resource resource = grailsApplication.mainContext.getResource('/WEB-INF/resources/jenkinsBuildInfo')
def config = new ConfigSlurper().parse(resource.getFile().toURI().toURL())
def sysData = [
"Application Name": grailsApplication.metadata['app.name'],
"App Version": grailsApplication.metadata['app.version'],
"Grails Version": grailsApplication.metadata['app.grails.version'],
"SVN Revision": config.SVN_REVISION,
"Build Number": config.BUILD_NUMBER,
"Build Id": config.BUILD_ID,
"Java Version": System.getProperty("java.version")
]
def libraryInfo = []
render([success:true, applicationProperties:sysData,libraryInfo:libraryInfo] as JSON)
}
我想要构建的是关于每个库的信息列表,看起来像这样......
def libraryInfo = []
['tomcat','joda-time','hibernate','group_id:artifact_id'].each{ name->
def libInfo = // look up information
libraryInfo << [
"Name":name,
Version:libInfo.version,
"Build Date":libInfo.build_date,
"Build Number":libInfo.build_number
]
}
有人知道这是否可行?
答案 0 :(得分:1)
您可以使用build-info插件,它可以与您的SCM(Git和SVN)配合使用。它将为您提供以下信息:
构建war文件的日期/时间
源代码管理修订号(Git和Subversion)
申请版本号
grails版
grails环境(目前正在运行,不一定是 用于构建war文件的环境)
安装了插件(以及版本)
答案 1 :(得分:0)
我最终做的是加载MANIFEST资源并从那里解析出文件名。当它是war文件的一部分并使用嵌入式jar文件构建时,这可以正常工作,jar文件在jar文件名中有库版本。