1

我想使用 Eclipse 来处理目录结构与包结构不完全对应的 Java 项目。

例如,包a.b.c中的源文件位于目录中x/y/c。叶包的名称(c)始终对应于直接包含目录的名称(也c),但它们的前缀可能不同(a.bvs x/y)。

(我认为项目的构建系统将源文件复制到与包结构对应的目录结构中,但我需要对原始文件进行操作,而不是复制的文件。)

当我在 Eclipse 中查看这个项目中的源文件时,我看到了表单的错误The declared package "a.b.c" does not match the expected package "x.y.c",并且它也无法解析表单的导入import a.b.foo。如何通知 Eclipse 映射 from x/ytoa.b并消除这些错误?

请不要提出任何涉及更改包声明或移动文件的解决方案。我也做不到。

4

2 回答 2

1

我认为,唯一的选择是创建一个默认的“ANT”目标,它将内容从复制x\y\ca\b\c. 将此 ANT 目标附加到 Eclipse 构建中。另外,a\b\c作为java源使用并x\y\c从源中删除,会导致编译错误。

这将允许您处理驻留在其中的文件,x\y\c但可以立即从a\b\c.

使用:ANT copyAnt copyDirAnt Compile/Javac任务详细信息供进一步参考。

于 2013-07-12T17:56:47.140 回答
1

这在 Java 中是不可能的,运行时系统总是寻找 a/b/c 作为包 abc 中特定类的目录结构参见http://docs.oracle.com/javase/specs/jls/se7/html/jls -7.html#jls-7.4

于 2013-07-12T17:47:38.880 回答