2

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

4

2 回答 2

0

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

在构建应用程序时,每个依赖项都可以构建到 ajar中,并且主应用程序将与其类路径中的所有依赖项 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 个项目,然后捆绑整个东西。

于 2012-10-17T20:27:53.857 回答
0

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

  1. 创建一个新项目

  2. 将旧项目中的适当类复制到新项目中的新包中,重新配置直到一切构建完成

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

  4. 添加jar作为依赖

  5. 从原始项目中删除类

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

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

于 2012-10-19T13:50:35.713 回答