“简单”J2SE 项目
正如cletus所解释的那样,源目录结构直接等同于包结构,这本质上是内置于Java中的。其他一切都不那么明确。
许多简单的项目都是手工组织的,所以人们可以选择一个他们觉得可以接受的结构。经常做的事情(这也反映在Eclipse(一个非常占主导地位的Java工具)中的项目结构上)是让你的源代码树从一个名为.无包源文件将直接位于 src 中,包层次结构(通常以目录开头)同样包含在 中。如果在启动编译器之前访问该目录,则编译后的文件将最终处于相同的目录结构中,每个.class文件位于同一目录中,并且位于其文件旁边。src
com
src
CD
src
javac
.class
.java
如果您有很多源文件和类文件,则需要将它们彼此分开以减少混乱。手动和 Eclipse 组织通常将 或 目录与 或 并行放置,以便.class文件最终位于镜像 的层次结构中。bin
classes
src
src
如果项目具有一组要从第三方库提供功能的文件,则第三个目录(通常)与 和 平行放置。中的所有内容都需要放在类路径上进行编译和执行。.jar
lib
src
bin
lib
最后,有一堆这个和那个或多或少是可选的:
- 文档中的文档
doc
- 中的资源
resources
- 数据
data
- 配置在 ...
conf
你明白了。编译器不关心这些目录,它们只是你自己组织(或混淆)的方式。
J2EE 项目
J2EE大致相当于 ASP.NET,它是一个用于组织Web应用程序的大规模(标准)框架。虽然您可以按照自己喜欢的任何方式为 J2EE 项目开发代码,但对于 Web 容器期望交付应用程序的结构有一个严格的标准。这种结构也倾向于反映到源布局。下面是一个页面,详细介绍了 Java 项目的总体项目结构(它们与我上面写的内容不太一致),特别是 J2EE 项目:
http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
Maven 项目
Maven
是一个非常通用的项目构建工具。就个人而言,我的构建需求得到了很好的满足,这与 大致相比。另一方面,Maven是完整的生命周期构建管理,并附加了依赖性管理。Java世界中大多数代码的库和源代码都可以在“net”中免费获得,如果问得好,maven会为你爬行它,并将你的项目需要的一切带回家,甚至不需要你告诉它。它还为您管理一个小存储库。ant
nmake
这种高度勤劳的小动物的缺点是,它对项目结构的高度法西斯主义。你以Maven的方式做,或者根本不做。通过强制其标准,Maven设法使全球项目在结构上更加相似,更易于管理,并且更容易以最少的输入自动构建。
如果您选择Maven,您可以不再担心项目结构,因为只有一个。就是这样:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html