论坛首页 Java企业应用论坛

方便你找Jar

浏览 7940 次
锁定老帖子 主题:方便你找Jar
精华帖 (0) :: 良好帖 (2) :: 新手帖 (9) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-07-16  

偶maven不行,ivy觉得没有groovy的grape方便,所以很多时候找jar包就用grape命令。

 

可惜有很多记不住group,今天心血来潮,写个东东,在mvnrepostory上查找查找——不多说,贴代码——

 

import groovy.grape.Grape

def boolean isAlreadyLocal(String name){
	boolean r = false
	Map ll = Grape.enumerateGrapes()
	ll.each{k, v ->
		if(v.keySet().contains(name))
			r = true
	}
	return r
}

def myGrape = {g, a, v ->
	Grape.grab(group:g, module:a, version:v)
}

def List getGroupList(String art){
	List ll = []
	final String mvnRepsSide = "http://mvnrepository.com/"
	new URL(mvnRepsSide + "search.html?query=${art}").eachLine{line ->
		line = line.trim()
		def mat = line =~ /<a href="\/artifact\/([^\/]+)\/${art}" class="result-link">${art}<\/a>/
		if(mat){
			mat.each{it ->
				ll << it[1]
			}
		}
	}
	return ll
}

def copyFromGrapeLocal(String g, String a, String v){
	// copy 
//	final String grapeDir = '***/.groovy/grapes/'
//	String jarFile = grapeDir + g + '/' + a + '/jars/' + a + '-' + v + '.jar' 
//	File f = new File(jarFile)
}

def printWarn(String msg){
	println 'Invalid input - ' + msg
	println 'Sample - ' + '"freemarker" or "0 2.3.16"'
}

List groupList
String art

println 'Input jar name you want to search:'
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)) 
String line = buf.readLine()

while(line){
	if('quit' == line)
		break
	String[] arr = line.split(' ')
	if(arr.size() == 1){
		art = arr[0]
		if(isAlreadyLocal(art)){
			println 'Already downloaded - ' + art
		}else{
			groupList = getGroupList(art)
			println 'Group Found - ' + groupList
		}
	}else if(arr.size() == 2){
		if(!groupList || !art){
			println 'Input jar name you want to search:'
		}else{
			try {
				int index = Integer.parseInt(arr[0])
				if(index >= 0 && index < groupList.size()){
					try {
						String g = groupList[index]
						myGrape(g, art, arr[1])
						art = null
						groupList.clear()
						println 'Done - ' + g + ' : ' + art
					}catch (ex) {
						ex.printStackTrace()
					}
				}else{
					printWarn(line)
				}
			} catch (ex) {
				printWarn(line)
			}
		}
	}else{
		printWarn(line)
	}
	line = buf.readLine()
}
buf.close()
 
   发表时间:2010-07-18  
有把这代码敲一遍的工功就能学会maven了
0 请登录后投票
   发表时间:2010-07-18  
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

有 看一遍lz帖子的功夫,maven就能入门了。
0 请登录后投票
   发表时间:2010-07-18  
还是使用maven吧 15分钟就入门了
0 请登录后投票
   发表时间:2010-07-18  
wangchangbing 写道
还是使用maven吧 15分钟就入门了


其实我只是一个想法——脚本的组织一般都比program + xml更强大——就是说,一堆script,实现下xml + xml的command的功能更容易,更易维护。

当然更“山寨”——人家是标准么。

最近工作一直也不涉及到什么“大项目”或管理部署发布之类的。就随便看看,写写blog。

0 请登录后投票
   发表时间:2010-07-18   最后修改:2010-07-18
穷折腾,maven也不是想象中那么困难!!!
当然更“山寨”——人家是标准么。 

这句话明显的醋味十足
标准是吹出来的吗!!!
0 请登录后投票
   发表时间:2010-07-19  
kimmking 写道
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

有 看一遍lz帖子的功夫,maven就能入门了。

有上je的时间,maven就能入门了.
后面保持队形
0 请登录后投票
   发表时间:2010-07-19  
……大家的批评我接受了,最近的确不太用功学习,上je多了。
0 请登录后投票
   发表时间:2010-07-19  
liukai 写道
kimmking 写道
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

有 看一遍lz帖子的功夫,maven就能入门了。

有上je的时间,maven就能入门了.
后面保持队形

有批评楼主的时间,maven就能入门了。
后面保持队形
0 请登录后投票
   发表时间:2010-07-19  
有这回贴的时间,Maven已精通了
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics