基于一个源文件的依赖关系创建Java Eclipse项目的子集

我有一个Eclipse项目/工作区,其中包含偶尔提供给客户的功能.我们都是研究人员所以这非常非正式地完成了;我用文档制作一个JAR和一个Word文件,然后发送给他们.

我更喜欢向他们发送一个只包含他们实际需要的JAR文件,以简化操作.如果他们需要X,Y,Z和W类,那么我发送一个包含X,Z和W的JAR文件,以及它们所依赖的所有类.

现在我以无望的手动方式执行此操作(我创建一个新项目,拖动X,Z和W,然后拖动我需要修复编译器错误的任何内容).在Eclipse中自动化它的正确方法是什么?

编辑:为了清楚起见,涉及的Eclipse项目包含的内容比客户实际需要的多得多.

编辑:此外,没有涉及反思;我可以确信编译器知道发生了什么.我是那个编写代码的人,我避免像瘟疫这样的反思.我使用反射的唯一地方是模仿Collections.toArray(),在这种情况下,唯一可能导致问题的类是用户提供的类.

解决方法

Byecycle,Eclipse插件会有所帮助,但它已从Sourceforge中删除.不是在获得彻底的自动化过程,而是在确定依赖关系.我不确定你是否可以让它在ganymede / galileo上工作,因为我已经使用了很长时间了.

更新

Class Dependency Analyzer工具可能会更有用,因为它附带了一个插件扩展API,可用于创建一个插件来执行您打算完成的任务.

更新#2

如果您想知道Ant的用法,可以使用ClassFileSet类型来获取类及其依赖项列表.这可以在复制任务中引用以复制所需的类文件.请注意,这不会复制源文件.

在内部,此方法取决于BCEL library,因此如果您希望执行源的副本,您可以尝试编写代码来检查.class文件的依赖项,并将源复制到另一个目录.

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...