2010-07-14 90 views
4

我是使用Java EE编程Web应用程序的初学者。你如何命名你的软件包?程序包名称 - Java EE Web应用程序

我经常看到类似com.abc.commons的东西......有没有一种标准或常见的方法来做到这一点?


感谢seanizer,我该怎么用你的方法:com.mycompany.myproject.api

+0

我删除了'jee6'标签,因为问题不是特定于Java SDK或版本,而是添加了'naming-conventions'。 – 2010-07-14 08:41:04

+1

这对你很好,但不是编辑你原来的帖子,好的stackoverflow的做法是将答案标记为可接受 – 2010-07-14 11:54:02

回答

7

这些部分通常进入我的包名

  1. 域名(你的或你的公司/客户)向后
  2. 项目名称
  3. 神器名(API,客户端,测试等)
  4. 功能

例如:

com.mycompany.myproject.api.services 
// contains service interfaces for project myproject 

com.mycompany.myproject.common.util.string 
// contains string-related utility classes that reside in a library module 
// that will be used by several other artifacts 

一个很好的做法是拥有一个独立于个别项目(jar等)的通用根包。例如:在jar myproject-api.jar中,根包将是com.mycompany.myproject.api。这样,你总是知道在哪里找到你的课程。

+0

你怎么看待仅仅使用项目名称(这是唯一的)(比如'myproject.api.services' )而不是'com.mycompany.myproject.api.services'。我更喜欢这一点,因为这更具可读性,我认为,在每个包名称中包含公司名称/域名等是没有意义的。您对此有何看法?这背后是否有任何技术问题?非常感谢! – 2011-09-28 04:44:34

+1

@Marcos不,我没有遇到任何技术问题,只为公司或组织提供公共包名称空间被认为是一种很好的做法。它可以更容易地将属于一组的内容进行分组 – 2011-09-28 06:42:20

2

是的,看到Sun Naming Conventions

唯一包名称的前缀总是以全小写ASCII字母书写,并且应该是顶级域名之一,当前为com,edu,gov,mil,net,org,或者其中之一按照ISO标准3166,1981规定的英文双字母代码。

包名称的后续组件根据组织自身的内部命名约定而有所不同。这样的约定可能会指定某些目录名称组件是分区,部门,项目,机器或登录名。

实例:

  • com.sun.eng
  • com.apple.quicktime.v2
  • edu.cmu.cs.bovik.cheese
0

的常规方式是做你自己的域名倒退,因为这是一个很好的保证,其他人不会不小心使用这些包名称。