回答
您可以关注maven的standard project layout。您不必实际使用maven,但它将使转换更容易(如有必要)。此外,其他开发商将习惯于看到的布局,因为许多开源项目奠定了这种方式,
有一些现有的资源,你可以检查:
- Properly Package Your Java Classes
- Spring 2.5 Architecture
- Java Tutorial - Naming a Package
- SUN Naming Conventions
对于它的价值,我倾向于使用的我自己的个人指南如下:
- 从反向域开始,例如, “com.mycompany”。
- 使用产品名称,例如“myProduct的”。在某些情况下,我倾向于使用不属于特定产品的普通包装。这些将最终根据这些通用类别的功能进行分类,例如, “io”,“util”,“ui”等。
- 之后它变得更自由形式。通常我根据项目,功能区域,部署等进行分组。例如,我可能会有“project1”,“project2”,“ui”,“client”等。
其他几点:
- 在我从事设计文档的包名工作的项目中很常见。通常产品已经分成功能区或功能区。
- 不要过分强调将常用功能推入更高级的包中。等待那里需要跨项目,产品等,然后重构。
- 观察软件包间依赖关系。它们并不全是坏的,但它可能意味着可能是单独的单元之间的紧密耦合。有些工具可以帮助您跟踪这一点。
在反向域名的情况下(“com.mycompany”),除了“mycompany”子包外,“com”包通常是空的吗? – Josephus 2016-02-10 21:16:14
的方式,我通常有我的文件夹 -
- 项目名称
- SRC
- 斌
- 测试层次
- 库
- 文档
我建议按功能创建你的包结构,而不是实现层。一个很好的写在这是Java practices: Package by feature, not layer
谢谢。这正是我想要将我的想法传达给团队 – Pranalee 2013-12-13 07:12:01
Here你可以阅读有关标准目录布局和java项目的目录/包结构。
有关Java包结构的另一个很好的文章:Managing the Java classpath
我通常喜欢有以下几种:
- 斌(二进制)
- 文档(文档)
- INF(信息)
- lib(库)
- res(资源)
- SRC(来源)
- TST(测试)
这些可视为不符合常规,但我觉得这是组织的事情非常好的方式。
- 1. 的JUnit - Java项目结构
- 2. Android项目包结构
- 3. Go App Engine项目的包装结构
- 4. Java包结构
- 5. Java EE项目的体系结构
- 6. eclipse中的Java项目层次结构
- 7. Java EE的Eclipse项目结构
- 8. 动态web项目包结构
- 9. 将软件包添加到Java项目结构中
- 10. 使用Maven发布Java项目的TFS项目结构
- 11. Java Web项目结构最佳实践
- 12. MVC项目结构验证类(java)
- 13. Java EE i18n和默认项目结构
- 14. 包的Laravel4目录结构
- 15. 包含包和脚本的Python项目的正确结构?
- 16. Subversion项目结构?
- 17. Django项目结构,
- 18. Maven项目结构
- 19. CUDA项目结构
- 20. Android项目结构
- 21. Knockout.js项目结构
- 22. NUnit项目结构
- 23. AngularJS项目结构
- 24. GWT项目结构
- 25. Django,项目结构
- 26. Github项目结构
- 27. CodeIgniter项目结构
- 28. Flex项目结构
- 29. PHP项目结构
- 30. GIT项目结构
如果您有选择,我也推荐使用Maven的布局。这是一个深思熟虑的结构,经过了战斗测试,并且很多开发人员都很熟悉。 – 2008-10-17 04:46:54
您可以使用此链接创建目录布局:mkdir -p src/{main/{java,resources,filters,assembly,config,webapp},test/{java,resources,filters},site} – 2010-02-19 13:41:52
Maven的标准项目布局是丑陋的......:/ – 2016-09-09 21:06:44