Created
August 8, 2017 17:11
-
-
Save IT-Berater/639422ed71bc00d8f3b5759f0fb866ce to your computer and use it in GitHub Desktop.
Groovy Script welches die Maven Api nach Klassennamen, GroupId und allgemein abfragt und das Ergebnis auf der Konsole ausgibt. Siehe www.wenzlaff.de
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// Thomas Wenzlaff - www.wenzlaff.info - www.wenzlaff.de - 8.8.2017 | |
// | |
// Groovy Script welches die Maven Api nach Klassennamen, GroupId und allgemein abfragt | |
// und das Ergebnis auf der Konsole ausgibt. Maximal 1000 Ergebnisse. | |
// | |
// Aufruf: groovy MavenApi.groovy [Suchparameter] | |
// Z.B. groovy MavenApi.groovy wenzlaff | |
// Liefert: | |
// Suche in der Maven API nach Begriff: wenzlaff | |
// Suche General: | |
// de.wenzlaff.twqualpass:de.wenzlaff.twqualpass:0.0.1 | |
// de.wenzlaff.lebenskalender:de.wenzlaff.lebenskalender:0.0.3 | |
// de.wenzlaff.dump1090:de.wenzlaff.dump1090:0.0.7 | |
// de.wenzlaff.rest.beispiel:de.wenzlaff.rest.beispiel:1.0.2 | |
// de.wenzlaff.phonebook:de.wenzlaff.phonebook:1.0.2 | |
// de.wenzlaff.twflug:de.wenzlaff.twflug:0.0.1 | |
// Suche nach Klassen Namen: | |
// Suche nach GroupId: | |
// | |
package de.wenzlaff.groovy | |
import static java.net.URLEncoder.encode | |
import groovy.json.JsonSlurper | |
// Rest Api URL des Maven Central Repository: http://search.maven.org/#api | |
final MAVEN_URL = "http://search.maven.org/solrsearch/select?q=" | |
// maximale Ergebnismenge des Servers | |
final MAX_ERGEBNIS = 1000 | |
// Ergebnis Format json (xml währe auch möglich) | |
final ERGEBNIS_FORMAT = "json" | |
// Ergebnis Encoding | |
final ENCODING = "UTF-8" | |
// such Parameter | |
final SUCH_PARAMETER = [ 'general': '', 'className': 'c', 'groupId': 'g' ] | |
// Kommandozeilen Parameter überprüfen und evl. Hinweis ausgeben | |
if (args.length != 1) { | |
println 'Bitte einen Suchparameter für die Abfrage als Programm Argument übergeben. Z.b. groovy MavenApi.groovy wenzlaff' | |
return | |
} | |
suchbegriff = args[0] | |
// Maven API abfrgen | |
def parse = new JsonSlurper().&parseText | |
def suche = { type, query -> parse(( MAVEN_URL + SUCH_PARAMETER[ type ] + ":${encode( query , ENCODING )}&rows=" + MAX_ERGEBNIS + "&wt=" + ERGEBNIS_FORMAT ).toURL().text)} | |
def ergebnisAusgabe = { json -> json.response.docs.each { println "$it.id:$it.latestVersion" }} | |
// Ergebnis ausgeben | |
println 'Suche in der Maven API nach Begriff: ' + suchbegriff | |
println 'Suche General:' | |
ergebnisAusgabe suche( 'general', suchbegriff ) | |
println 'Suche nach Klassen Namen:' | |
ergebnisAusgabe suche( 'className', suchbegriff ) | |
println 'Suche nach GroupId:' | |
ergebnisAusgabe suche( 'groupId', suchbegriff ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment