我有一个库 Eclipse项目/工作区,其中包含偶尔提供给客户的功能.我们都是研究人员所以这非常非正式地完成了;我用文档制作一个JAR和一个Word文件,然后发送给他们. 我更喜欢向他们发送一
我更喜欢向他们发送一个只包含他们实际需要的JAR文件,以简化操作.如果他们需要X,Y,Z和W类,那么我发送一个包含X,Y,Z和W的JAR文件,以及它们所依赖的所有类.
现在我以无望的手动方式执行此操作(我创建一个新项目,拖动X,Y,Z和W,然后拖动我需要修复编译器错误的任何内容).在Eclipse中自动化它的正确方法是什么?
编辑:为了清楚起见,涉及的Eclipse项目包含的内容比客户实际需要的多得多.
编辑:此外,没有涉及反思;我可以确信编译器知道发生了什么.我是那个编写代码的人,我避免像瘟疫这样的反思.我使用反射的唯一地方是模仿Collections.toArray(),在这种情况下,唯一可能导致问题的类是用户提供的类.
Byecycle,Eclipse插件会有所帮助,但它已从Sourceforge中删除.不是在获得彻底的自动化过程,而是在确定依赖关系.我不确定你是否可以让它在Ganymede / Galileo上工作,因为我已经使用了很长时间了.更新
Class Dependency Analyzer工具可能会更有用,因为它附带了一个插件扩展API,可用于创建一个插件来执行您打算完成的任务.
更新#2
如果您想知道Ant的用法,可以使用ClassFileSet类型来获取类及其依赖项列表.这可以在复制任务中引用以复制所需的类文件.请注意,这不会复制源文件.
在内部,此方法取决于BCEL library,因此如果您希望执行源的副本,您可以尝试编写代码来检查.class文件的依赖项,并将源复制到另一个目录.