`

方便你找Jar

阅读更多

偶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()
 
分享到:
评论
15 楼 wyang2008 2010-07-22  
我擦。。。。。。。。。。。
14 楼 viperasi 2010-07-22  
jiewo 写道
rocwon 写道
liukai 写道
kimmking 写道
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

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

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

有批评楼主的时间,maven就能入门了。
后面保持队形

有批评楼主的时间,maven就能入门了。
后面保持队形

好吧,继续
Maven是啥?
13 楼 jiewo 2010-07-22  
rocwon 写道
liukai 写道
kimmking 写道
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

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

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

有批评楼主的时间,maven就能入门了。
后面保持队形

有批评楼主的时间,maven就能入门了。
后面保持队形
12 楼 cw550284 2010-07-19  
snovian 写道
rocwon 写道
liukai 写道
kimmking 写道
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

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

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

有批评楼主的时间,maven就能入门了。
后面保持队形

有这回贴的时间,Maven就精通了

有看帖的时间!Maven就能精通啦
11 楼 snovian 2010-07-19  
rocwon 写道
liukai 写道
kimmking 写道
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

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

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

有批评楼主的时间,maven就能入门了。
后面保持队形

有这回贴的时间,Maven就精通了
10 楼 snovian 2010-07-19  
有这回贴的时间,Maven已精通了
9 楼 rocwon 2010-07-19  
liukai 写道
kimmking 写道
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

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

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

有批评楼主的时间,maven就能入门了。
后面保持队形
8 楼 key232323 2010-07-19  
……大家的批评我接受了,最近的确不太用功学习,上je多了。
7 楼 liukai 2010-07-19  
kimmking 写道
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

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

有上je的时间,maven就能入门了.
后面保持队形
6 楼 nrxqq 2010-07-19  
我不太相信
5 楼 kjj 2010-07-18  
穷折腾,maven也不是想象中那么困难!!!
当然更“山寨”——人家是标准么。 

这句话明显的醋味十足
标准是吹出来的吗!!!
4 楼 key232323 2010-07-18  
wangchangbing 写道
还是使用maven吧 15分钟就入门了


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

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

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

3 楼 wangchangbing 2010-07-18  
还是使用maven吧 15分钟就入门了
2 楼 kimmking 2010-07-18  
qinglangee 写道
有把这代码敲一遍的工功就能学会maven了

有 看一遍lz帖子的功夫,maven就能入门了。
1 楼 qinglangee 2010-07-18  
有把这代码敲一遍的工功就能学会maven了

相关推荐

    jarjar-1.4.jar 动态更改包名

    这时,我们可以利用jarjar-1.4.jar这个工具,它是一个强大的Java类重打包工具,可以方便地实现类的移动、重命名以及打包操作。本文将详细介绍如何使用jarjar-1.4.jar来动态更改包名。 一、jarjar-1.4.jar简介 jar...

    Jar包Jar包Jar包Jar包

    标题提到的"Jar包Jar包Jar包Jar包"可能是强调这些文件的重要性或者重复提及,而描述中的"我下载的一些Jar包,希望有人会用到,找了很久"表明这些JAR文件可能是作者收集的,可能包含了特定的功能或库,对某些项目可能...

    在jar包下找class文件

    - **依赖分析**:在理解项目依赖关系时,找出所有使用特定类的`jar`包,有助于优化构建过程。 - **代码迁移**:在将代码迁移到新的项目结构时,快速找出所有相关的类文件。 - **库更新**:检查新版本的库是否包含了...

    JAR包查看器

    1. **调试与故障排除**:当Java应用程序出现错误时,开发者可以通过查看JAR包中的类文件和资源来找出问题所在。 2. **学习库的内部工作原理**:对于开源库,虽然可以获取源代码,但如果只有JAR包,使用查看器可以...

    遇到jar包冲突时,需要找某个class文件在哪几个jar包中,可以用这个工具进行查找,很快速方便的

    遇到jar包冲突时,需要找某个class文件在哪几个jar包中,可以用这个工具进行查找,很快速方便的

    mail.jar、commons-email-1.2.jar 、activation.jar下载

    它提供了一组接口和类,使得开发人员能够方便地实现邮件服务。`mail.jar`包含核心的JavaMail组件,如`javax.mail`包,该包定义了用于邮件操作的基本接口和类,如`Session`(邮件会话)、`Message`(邮件对象)、`...

    jar包差异比对器

    这些工具提供了图形化的界面,可以直观地显示两个jar包的差异,并支持导出比对结果,方便进一步分析。 对比过程中,可以关注以下几个应用场景: 1. 版本升级:当软件发布新版本时,比对可以帮助开发者快速定位代码...

    Thymeleaf所需要的jar包

    总的来说,Thymeleaf是Java Web开发中的一个重要组件,它的jar包集合提供了丰富的功能,使开发者能够在HTML模板中方便地处理动态数据,提高了开发效率和代码可读性。理解和正确使用这些jar包是成功集成Thymeleaf到...

    jaxb-impl.jar jaxb-api.jar jsr173_1.0_api.jar

    而`jaxb-xjc.src.zip`可能包含了这些生成器的源代码,方便开发者查看和定制。 `jaxb1-impl.jar`和`jaxb1-impl-src.zip`可能是针对JAXB 1.x版本的实现和源代码,与JAXB 2.x的`jaxb-impl.jar`有所不同,主要用于兼容...

    Linux一键启动多个jar

    - **错误处理**:如果在启动或停止过程中遇到问题,比如找不到.jar文件或无法杀死进程,可以添加错误处理机制,如`if`语句和`echo`来输出错误信息。 - **依赖检查**:确保在启动前所有依赖项都已就绪,例如Java环境...

    fatjar_0.0.32.jar

    此外,fatjar还减少了运行时因找不到类路径或依赖冲突而产生的错误。 然而,fatjar也有其局限性。由于所有的类和资源都被打包在一起,如果JAR文件过大,可能会导致加载速度变慢。同时,如果多个项目依赖相同的库,...

    使用eclipse打jar包 可执行的jar

    有时,按照上述步骤操作后,可能会遇到第三方库找不到的问题,这通常是由于库的路径配置不正确或者没有正确地包含在JAR中。为了解决这个问题,确保你的项目构建路径设置正确,所有的依赖库都被正确地链接。如果使用...

    myelipse生成可执行jar文件方法

    MyEclipse作为一款强大的Java集成开发环境,提供了方便的方式来创建可执行的JAR文件。以下是两种在MyEclipse中生成可执行JAR文件的方法: ### 无外部依赖的JAR文件 当你的Java项目没有引用任何外部的JAR包时,生成...

    fatjar+如何把java工程打成可执行的jar步骤

    在命令行环境下,将fatjar的路径添加到系统PATH环境变量中,这样可以方便在任意目录下使用它。 3. **创建清单文件(Manifest)** 创建一个名为`MANIFEST.MF`的文件,用于指定主类(即程序的入口点)。例如: ```...

    fatjar打包工具

    这样,当你运行这个JAR时,所有必要的类和资源都会包含在内,避免了运行时因找不到依赖而产生的错误。 在实际使用中,fatjar通常与Ant或Ivy等构建工具配合使用。例如,如果你的项目使用Ant作为构建工具,可以在Ant...

    jforum3.0所需要的jar包

    这些jar包是Java应用程序的组成部分,包含了运行时所需的类库和API,使得开发者可以方便地调用已有的功能,而无需从零开始编写代码。 1. **Java标准库jar**:jForum3.0的运行离不开Java标准库,如rt.jar,它包含了...

    java打包jar方案的优缺点分析及解决方案

    这种方法的优点是方便,因为用户无需额外管理依赖。然而,它的主要缺点是生成的JAR文件可能非常大,可能导致内存溢出问题,尤其是在DOS环境下运行。此外,过多的库可能导致类冲突。 2. **直接用MyEclipse的Export...

    Jar比较分析工具

    这个工具的主要目的是帮助开发者高效地找出两个不同版本JAR文件之间的差异。通过对比,开发者能够快速定位新版本中添加、修改或删除的类、方法和资源,从而节省大量手动检查的时间。其特点主要包括: 1. **操作简单...

    fatjar使用教程

    - 主类找不到:可能是主类名称输入错误或不在指定路径下。 - 缺少必要的环境配置:如JVM参数设置不当等。 - **解决办法:** - 再次检查主类名称是否正确,并确认其路径。 - 调整JVM参数,确保程序有足够的资源...

    hadoop的各种jar包

    在大数据处理领域,Hadoop是一个不可或缺的开源框架,主要用于分布式存储和计算。Eclipse是一款流行的Java集成开发环境,常用于...通过Eclipse这样的IDE,可以方便地管理这些依赖,加速大数据应用的开发和调试过程。

Global site tag (gtag.js) - Google Analytics