2014-01-30 59 views
0

我试图在运行时获取有关特定库的一些信息。到目前为止,我已经是一个具有以下作用在运行时获取已安装的依赖项版本

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 
    ] 
} 

有谁知道这是可能的吗?

+2

你有没有看到[建立信息](http://grails.org/plugin/build-info)插件? – Alidad

+0

我没有。看起来这是我需要的。谢谢!如果您发布了答案,那么我会将其标记为已回答。 :) – Gordolio

回答

0

我最终什么事做了装载清单资源,并从那里解析出的文件名。当它是war文件的一部分并且使用jar文件中具有库版本的嵌入式jar文件构建时,此工作正常。

Gist

1

您可以使用build-info插件,该插件将与您的SCM(Git和SVN)配合使用。它会给你提供以下信息:

日期/时间war文件始建

源控制修订号(Git和Subversion)的

应用程序版本号

的Grails版本

grails环境(目前正在运行,不一定是 用于构建war文件的环境)

安装

插件(和版本)

来源:build-info plugin

+0

其实,通过插件来看,它实际上并没有得到我需要的所有信息。我希望获得的不仅仅是已安装的插件。我也想获得Maven依赖和他们的安装版本。这只是检索配置和詹金斯建立信息(我已经有) – Gordolio