推荐Jar Jar Links

 

当你需要将依赖的jar都放入到你自己的jar中,同时不想做繁琐的重命名工作,那现在我介绍的这款工具就能帮到你了。

 

http://code.google.com/p/jarjar/

 

  • You can easily ship a single jar file with no external dependencies.
  • You can avoid problems where your library depends on a specific version of a library, which may conflict with the dependencies of another library.

 

这里看下wiki中的 CommandLineDocs  

http://code.google.com/p/jarjar/wiki/CommandLineDocs

 

比较有用的就是


java -jar jarjar.jar find <level> <cp1> [<cp2>]

 

这里level 只能是 class 或者 jar,这个命令的功能是查找某个class是否在这个jar中,或者这2个jar是否依赖

cp1如果是类名的话,需要是完整的包路径名。例如想看某个class被哪些jar依赖了就可以用这个命令。

 

java -jar jarjar.jar process <rulesFile> <inJar> <outJar>

 

这个命令就是做重命名的功能了,因为他默认使用的是StandaloneJarProcessor,所以针对inJar只能是单独的一个jar文件,如果想一次性把多个jar合并到一个中去,写个ant配置就搞定了,不过自己扩展下也可以的。

这里的outJar 你可以理解为最终合并后jar文件的名字。

 

我这里给出一个简单的ruleFile的例子,文件是简单的文本文件例如rule.txt

rule org.**  org.example.@1

 这里解释下**的意思,**就是说所有以org开头的包,如果你是*的话,意思是有一个org开头的包,如果希望做所有替 换,一般用**就可以了,@#的意思是匹配的分组,可以理解为正则表达式的分组。

 

至于ant的使用,看他的quickStart很容易理解的,这里就不啰嗦了。

你可能感兴趣的:(link)