Path: | lib/generated/examples/show_jar_api.txt |
Last Update: | Sat May 30 00:44:04 +0200 2015 |
Generate a JavaClass::ClassList, which contains all class of a given JAR in the local Maven repository. Use JavaClass::Classpath::MavenArtefact to identify and (possibly download) the JAR under question.
Author: | Peter Kofler |
Copyright: | Copyright (c) 2009, Peter Kofler. |
License: | BSD License |
require 'javaclass/classlist/jar_searcher' require 'javaclass/classpath/maven_artefact' require 'javaclass/classlist/list'
Define configuration for some Maven artefacts
JARS = [ JavaClass::Classpath::MavenArtefact.new('commons-lang', 'commons-lang', '2.6'),, ... ]
For all artefacts listed in JARS, load classes and write list files.
JARS.each do |artefact|
1) create a new JavaClass::ClassList::List to contain the classes of this JAR
list = JavaClass::ClassList::List.new
2) create a JavaClass::ClassList::JarSearcher
searcher = JavaClass::ClassList::JarSearcher.new searcher.skip_package_classes = true
3) create the classpath of the artefact‘s JAR
artefact.download_if_needed classpath = artefact.classpath
4) scan the JAR and add classes to the list
searcher.add_list_from_classpath(artefact.version, classpath, list)
5) save the list to a file named "Commons Lang 2.6.txt" (after the artefact)
File.open("#{artefact.title} #{artefact.version}.txt", "w") do |f| # print title f.print "*** #{artefact.title}\n" list.packages.each { |pkg| f.print "\n" # print package name f.print "* #{pkg.name}\n" # print class names pkg.classes.each { |c| f.print " #{c.name}\n" } } end puts "processed #{artefact.name}" end
6) the generated file looks like
*** Commons Lang * org.apache.commons.lang ArrayUtils BitField ... * org.apache.commons.lang.builder CompareToBuilder EqualsBuilder HashCodeBuilder ...