Java 如何在一个Eclipse项目中设置多个源文件夹?

Java 如何在一个Eclipse项目中设置多个源文件夹?,java,eclipse,Java,Eclipse,我有几个不同的程序,从概念上讲,它们可以放在一个项目中。但是,我很难告诉Eclipse在一个项目文件夹中创建多个文件夹 结构的一种简单形式是: /UberProject /UberProject/ProgramA/ /UberProject/ProgramA/com/pkg/NiftyReader.java /UberProject/ProgramB/ /UberProject/ProgramB/com/pkg/NiftyWriter.java 也就是说,ProgramA和ProgramB都是

我有几个不同的程序,从概念上讲,它们可以放在一个项目中。但是,我很难告诉Eclipse在一个项目文件夹中创建多个文件夹

结构的一种简单形式是:

/UberProject
/UberProject/ProgramA/
/UberProject/ProgramA/com/pkg/NiftyReader.java
/UberProject/ProgramB/
/UberProject/ProgramB/com/pkg/NiftyWriter.java
也就是说,
ProgramA
ProgramB
都是项目(事实上,它们目前都是现有的Java项目),从概念上讲,它们适合
UberProject

我不认为我应该把
UberProject
变成一个Java项目;例如,它不是一个类路径
ProgramA
ProgramB
看起来确实应该是Java项目(它们也可能使用不同的构建依赖项),但我认为在Eclipse3.3中没有办法在
UberProject
下创建两个包含Java代码的文件夹。我曾考虑在两个子项目中的每一个子项目中添加一个.project文件,但我也不确定这是否合适。Eclipse帮助没有什么帮助,我也没有看到关于这个特定问题的任何内容


需要明确的是:假设有必要存在
UberProject
UberProject
可以是Java项目,也可以不是;没关系。(顺便提一下,它确实包含不包含Java代码的其他文件夹。)

您需要UberProject吗?我有相同的布局,但有多个顶级项目是用File | New project创建的。如果不是,你能把它变成一个通用项目而不是Java项目吗?

可能有几种方法可以做到这一点:

1) UberProject是您的JavaProject。右键单击ProgramA->生成路径->用作源文件夹。右键单击ProgramB->生成路径->用作源文件夹。ProgramA和ProgramB都将对同一目录进行增量构建

2) 两个java项目(ProgramA和ProgramB)。您可以使用UberProject作为最简单的eclipse工作区,也可以使用外部工作区并将ProgramA和ProgramB作为外部项目导入


可能还有其他方法(maven多模块项目)。您的选择可能取决于项目之间是否存在循环依赖关系。尝试1和2应该相对容易,看看什么最适合你

因此,您可以通过在工作区中有两个Java项目来实现这一点。
然后问题是如何将这两个项目组合在“UberProject”下

一种方法是拥有一个“UberProject”工作区,并在UberProject之间切换工作区。 另一种方法是将“UberProject”定义为工作集(窗口:工作集),并将PrmgramA和ProgramB添加为该工作集的项目。选择该工作集,您将只看到那些项目

您可以有一个java项目,并为其定义多个源文件夹。对于同一项目中的“主”和“测试”层次结构,通常都是这样做的


有办法,有办法。选择一个适合您的项目:-)

您可以在一个项目中有多个源目录,但您的描述听起来好像您希望在一个项目中有多个子项目,而eclipse不允许这样做(据我所知)

如果您真的只需要多个源目录,其中
ProgramA
ProgramB
等仅包含java文件而不包含其他内容,那么您可以相对轻松地完成这项工作。在包资源管理器中右键单击您的项目,然后选择
生成路径->配置生成路径…
。在弹出的对话框中,确保在左窗格中选择了
Java构建路径
,单击
Source
选项卡,然后单击
addfolder…
按钮。从列表中选择
programma
,然后对
programmab
等重复操作

如果希望每个源文件夹都有自己的输出文件夹,只需选中
allowoutfoldersforsourcefolders
复选框,然后根据需要编辑输出文件夹


如果事实上这不是您想要做的,那么另一个选择可能是将您的项目分组到一个工作集中。工作集不是UberProject,但它确实有助于在package explorer中组织您的项目。

这是一个必要的项目,是的;对不起,如果不清楚的话。否则,我也会使用几个单独的Java项目。我编辑了这个问题。(1)似乎有效,或者至少让我更接近。(由于某种原因,它现在拒绝使用默认的Java builder。)尽管我有直觉,UberProject确实需要是一个“Java项目”…Java builder问题是通过手工编辑.project文件解决的。