代码之家  ›  专栏  ›  技术社区  ›  sal

用于在java代码中查找包命名空间冲突的工具

  •  2
  • sal  · 技术社区  · 17 年前

    我们有许多项目使用相同和/或类似的包名。许多或这些项目将构建其他项目使用的jar文件。我们发现了许多foo.util foo.db和foo.exception,它们使用相同的类名,导致名称空间冲突。

    有人知道有一种工具可以搜索一组java代码库并自动查找名称空间冲突和不明确的导入吗?

    3 回复  |  直到 17 年前
        1
  •  4
  •   S.Lott    17 年前

    在每个项目中确定您的名字更简单。

    知道 所有的冲突。您的包名称首先应该是唯一的。如果它们不是唯一的,您需要重新考虑如何分配包名。如果它们是“扁平的”( foo.this foo.that

    这就是为什么这些例子总是 org.apache.project.component.lower.level.names .

    你应该 com.projectX.foo.this com.projectZ.foo.that 防止 重复的可能性。

        2
  •  2
  •   AdamC    17 年前

    如果可以将项目加载到Eclipse中,Problems视图将为您提供冲突和不明确的导入。还有一个组织导入向导,可以帮助处理任何不必要的导入。

        3
  •  0
  •   Kevin Day    17 年前

    我同意S.洛特的观点——你首先需要弄清楚这是怎么发生的,让犯错的人感到非常痛苦(即让他们回去解决问题)。现代IDE(Eclipse就是其中之一)使得这种重构相当容易。

    我唯一不同意的是,在你进行的过程中要解决问题。相反,我强烈建议您为此支付技术债务 现在 有一个坚实的包名审查。在这里花上几个小时(这真的是它所需要的全部时间)可以帮你省去路上的噩梦调试。

    仅供参考-将类放在不同源文件夹的同一包中是完全合法的(例如:

    src/com/my/project test/com/my/project