Java 将类重构到单独的项目中

Java 将类重构到单独的项目中,java,refactoring,Java,Refactoring,我打算从一个Java项目中提取几个类和包,并将它们放在另一个项目中(该项目将有一个可分发的jar)。这并不太难,但当然,如此大规模的重构会带来后果。也就是说,在原始项目中有许多类是我想要提取的类的子类。实现这种重构的最佳方法是什么?您可以创建单独的项目,主项目将对所有这些项目具有依赖关系。因此,在IDE中,您可以轻松地浏览源代码 在构建应用程序时,可以将每个依赖项构建到jar中,主应用程序将与其类路径中的所有依赖项jar捆绑在一起 让我们以一个使用插件的web应用程序为例,插件使用公共类、实用程

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

您可以创建单独的项目,主项目将对所有这些项目具有依赖关系。因此,在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
在构建项目时,您可以将插件和常用插件构建到JAR中,并与web应用捆绑在一起

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个项目,然后将所有内容捆绑起来。

所以基本上我就是这么做的:

  • 创建新项目

  • 将旧项目中的适当类复制到新项目中的新包中,重新配置,直到所有内容都生成

  • 分别测试该项目并将其构建到jar中

  • 将jar添加为依赖项

  • 从原始项目中删除类

  • 手动将所有导入从旧包更改为新包


  • 我真正想要的是某种自动化或简化步骤6的方法,以确保我没有破坏任何东西,但我不确定它是否存在于mass find/replace之外。

    提取的jar必须作为依赖项包含在原始项目中。您使用的是什么IDE?IDE为什么重要?@LuGo IDE不能帮助您做出重构决策,但它们更正并维护所有引用,比如类、包等,因此您不必,使过程更简单。@user1598390我正在使用Eclipse