11

通常の mvn コマンド ライン クライアントを介して中央リポジトリを参照し、特定の検索を実行することは可能ですか?

例: アーティファクト ID に「log4j」が含まれるすべてのアーティファクトのリストを取得したい。

4

3 に答える 3

7

これを行う小さな Groovy スクリプトを作成しました。

import groovyx.net.http.URIBuilder
import groovy.json.JsonSlurper

class Fun {
    public static void main(String[] args) {
        def uri = new URIBuilder("http://search.maven.org/solrsearch/select")
        uri.addQueryParam 'rows', 20
        uri.addQueryParam 'wt', 'json'
        uri.addQueryParam 'q', args[0]

        def text = uri.toURL().getText()

        def json = new JsonSlurper()

        def result = json.parseText( text )

        result.response.docs.each { doc ->
            println "$doc.id:$doc.latestVersion"
        }
    }
}

同じことを ( httpartygem を使用して) 実行する Ruby スクリプトを次に示します。

require 'httparty'

query = ARGV[0]

class MavenCentral
    include HTTParty
    base_uri 'search.maven.org'

    def initialize(query, rows=20)
        @options = { query: {rows: rows, wt: 'json', q: query} }
    end 

    def artifacts
       self.class.get('/solrsearch/select', @options)
    end 
end

maven_central = MavenCentral.new(query)
maven_central.artifacts['response']['docs'].each do |doc|
    puts "#{doc['id']}:#{doc['latestVersion']}"
end
于 2014-04-04T17:48:58.927 に答える