【发布时间】:2013-07-11 08:16:50
【问题描述】:
我想使用 Eclipse 来处理目录结构与包结构不完全对应的 Java 项目。
例如,包a.b.c 中的源文件位于目录x/y/c 中。叶包的名称 (c) 始终与直接包含目录的名称相对应(也是 c),但它们的前缀可能不同(a.b 与 x/y)。
(我认为项目的构建系统将源文件复制到与包结构对应的目录结构中,但我需要对原始文件进行操作,而不是复制的文件。)
当我在 Eclipse 中查看此项目中的源文件时,我看到The declared package "a.b.c" does not match the expected package "x.y.c" 形式的错误,并且它也无法解析import a.b.foo 形式的导入。如何通知 Eclipse 从 x/y 到 a.b 的映射并消除这些错误?
请不要建议任何涉及更改包声明或移动文件的解决方案。我也做不到。
【问题讨论】:
-
这就是 Java 的工作方式。你无法改变这一点。如果不更改语言,您将无法摆脱错误。 C# 使用不依赖于目录结构的命名空间。尝试重写为 C#。
-
您必须使用构建文件。
-
@DaveNewton:我该怎么做?