【问题标题】:Split Java project by build.xml dependencies通过 build.xml 依赖项拆分 Java 项目
【发布时间】:2011-08-26 19:08:26
【问题描述】:

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

编辑:

我找到了与每个构建文件关联的 Manifest*.MF 文件,这些文件指定了 Main-ClassClass-Path。通过Class-Path,我可以确定每个新项目需要哪些 JAR 文件。这两个都是只运行各自的主类的应用程序,所以如果我确定了主类的依赖类,我就确定了我在新项目中需要的类。

这是我目前的计划:

  1. 将旧项目复制到新项目中
  2. 根据清单删除未使用的构建文件、MANIFEST*.MF 文件和未使用的 JAR
  3. 根据清单删除未使用的主文件
  4. 使用 IntelliJ 的内置功能手动检查文件和方法以检查它们是否在任何地方被引用,如果没有,则一一删除。

我猜第 4 步可以改进...

更新:

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

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

【问题讨论】:

    标签: java ant build dependencies


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

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

    【讨论】:

    • 感谢您的建议。我为每个构建找到了在类路径上指定 JAR 的 MANIFEST*.MF 文件,但我可能会使用您的建议来确定是否不需要指定 JAR。对于其他资源和文件(这里主要讨论 Java 自定义类),我目前正在寻找主类所依赖的类并手动将它们分离出来。
    猜你喜欢
    • 2014-12-13
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    相关资源
    最近更新 更多