通过build.xml依赖项拆分Java项目

时间:2011-05-16 21:41:50

标签: java ant build dependencies

我正在使用一个真正应该被编码为2个独立项目的Java项目。因此,我试图找到一种将每个子项目的代码拆分成自己的新项目的好方法。有2个构建文件可以构建和打包每个子项目。因此,有一种很好的方法可以检索每个构建文件所需的所有资源和文件的列表,从而将我的项目分开吗?

修改

我找到了与每个构建文件关联的Manifest * .MF文件,它们同时指定了Main-ClassClass-Path。从Class-Path,我可以确定每个新项目需要哪些JAR文件。这些都是仅运行其各自主类的应用程序,因此如果我确定主类的依赖类,我将确定新项目中需要的类。

以下是我目前的计划:

  1. 将旧项目复制到新项目中
  2. 根据清单
  3. 删除未使用的构建文件,MANIFEST * .MF文件和未使用的JAR
  4. 根据清单
  5. 删除未使用的主文件
  6. 使用IntelliJ的内置功能手动浏览文件和方法,检查它们是否在任何地方被引用,如果不是,则逐个删除它们。
  7. 我猜测第4步可以改进......

    更新

    我现在已经完成了我的项目分离。我最终使用了IntelliJ的“Analyze Dependencies ...”(在10.0.3中它位于“Analyze”菜单下)。对于那些拥有该工具的人,它默认只搜索深度为1的依赖项,因此请注意这一点并根据需要设置更大的深度。然后,您可以突出显示核心类,它将显示这些类依赖于指定深度的所有文件。在我的例子中,一个子项目的主要文件之一引用了另一个子项目的主文件,因此通过删除那个依赖项,我能够消除65个以上的文件作为依赖项。

    上述解决方案对我来说效果很好,但我不喜欢说“你必须购买这个工具才能做你想做的事情......”因此,我保持这个问题是开放的,希望开放 - 源解决方案。

1 个答案:

答案 0 :(得分:1)

  • 依赖关系:
    您可以创建2个项目,两个项目都引用原始项目的所有原始jar(依赖项)。此时,您指的是两个项目中的一些不必要的罐子。然后,您可以使用建议here的工具来检测这些不必要的jar并在每个项目中删除它们。

  • 资源(如xml配置文件):
    也许有一些工具,但我不知道。希望您没有那么多配置文件等,如果是这样,手动复制可能是最快的方式。