将类重构为一个单独的项目

时间:2012-10-17 20:21:57

标签: java refactoring

我打算从一个Java项目中提取几个类和包,然后将它们放到另一个Java项目中(这将有一个可分发的jar)。这一点并不太难,但当然如此大规模的重构会产生后果。也就是说,原始项目中有许多类是我想要提取的类的子类。处理这种重构的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以创建单独的项目,主项目将具有所有这些项目的依赖项。因此,在IDE中,您可以轻松浏览源代码。

构建应用程序时,每个依赖项都可以构建到jar中,主应用程序将与其类路径中的所有依赖项jar捆绑在一起。

以使用插件的Web应用程序为例,使用存储在名为common-plugins的项目中的公共类,实用程序等插件。

project/webapp: having dependency on plugin1, plugin2 and common-plugin
project/plugin1: having dependency on common-plugins
project/plugin2: having dependency on common-plugins
project/common-plugins: having no dependencies

在构建项目时,您可以将插件和公共插件构建到与Web应用程序捆绑在一起的jar中

project/webapp.war/WEB-INF/lib/plugin1.jar
project/webapp.war/WEB-INF/lib/plugin2.jar
project/webapp.war/WEB-INF/lib/common-plugins.jar

这种方式在你的IDE中,我将以eclipse为例,你将拥有一个工作区,其中包含4个具有依赖关系的项目,如上所述。在使用maven,ant,ivy或者你想要的构建时,你将构建webapp项目依赖的3个项目,然后捆绑整个东西。

答案 1 :(得分:0)

基本上这就是我所做的:

  1. 创建新项目

  2. 将旧项目中的相应类复制到新项目中的新包中,重新配置直到所有内容都构建

  3. 单独测试该项目并将其构建到jar

  4. 将jar添加为依赖

  5. 从原始项目中删除类

  6. 手动将旧包中的所有导入更改为新包

  7. 我真正想要的是一些自动化或简化第6步的方法,以确保我没有破坏任何东西,但我不确定它是否存在超出质量查找/替换。