Java项目文件组织:新包vs子文件夹



我提前为这个问题的幼稚性质道歉,但我是Java开发的新手,我一直在寻找答案。这里是…

我想根据目的或功能组织我的Java项目配置文件。换句话说,我希望有一个像这样组织的java项目

  • 应用程序
    • FXML
    • JDBC
    • GUI
    • 核心逻辑

该组织立即建议使用带有子文件夹的文件夹。我的问题是这个范例被NetBeans IDE用于子包而不是简单的子文件夹。

这对我来说是有问题的原因是我想使用成员访问和可见性限制,并且仍然在我的项目文件中操作。尽管这个特定的项目不会是一个API,但我仍然不希望将所有的类和类成员都公开。

特别是,如果我创建一个…

protected final Client getClientByIndex(int idx) { ... } 

…在JDBC文件夹中的类文件中,我理想地希望仍然能够将该文件视为同一包的一部分,因此可以访问我的项目中的其他类。然而,因为NetBeans只使用子文件夹范例来描述子包,所以除非我遗漏了什么,否则这似乎是不可能的。关于受保护访问的Java规范对此非常清楚:

protected修饰符指定成员只能在自己的内部访问包(如Package -private),此外,它的类的子类在另一个包中包。

所以…如果我想组织我的项目文件到子文件夹中,我必须这样做作为子包,要么使一切公共或子类(不适合我),或者…我必须把所有我希望在同一个包中拥有的项目文件放在同一个文件夹中(也不理想)。

是否有一个IDE可以在构建时区分项目子文件夹和打算作为子包的文件夹?在我看来,这种区别应该通过构建文件中适当的描述符来实现。是否有一个IDE允许这样做?这是可能的自定义Ant文件吗?

您描述的是一个多模块项目-一个由多个模块组成的项目,其中每个模块(通常)编译成自己的*.jar。所有IDE都以这样或那样的方式支持此功能(在intelllij idea中,您可以通过选择file->new module添加模块),但是创建此类项目的最佳方法是使用支持模块的构建系统,并让您选择的IDE导入项目。Maven是一个非常流行的"构建系统",可以很容易地用于创建多模块项目。详细信息请参见maven手册的第6章。

相关内容

  • 没有找到相关文章

最新更新