2014-09-30 39 views
1

例如,在蚂蚁的帮助下,是否有可能避免与深度包嵌套一起出现的深层目录结构?避免Java项目中的深层目录结构

假设我写了ClassA和ClassB的,无论是在包装com.domain.name,是有可能避免的目录结构像

project/ 
- build.xml 
- src/ 
    - com/ 
    - domain/ 
     - name/ 
     - ClassA.java 
     - ClassB.java 

去,而不是为简单的

project/ 
- build.xml 
- src/ 
    - ClassA.java 
    - ClassB.java 
+0

为什么你要这样做? Java包结构附带的强制目录结构是Java的特性之一。这听起来很像我的XY问题。 – 2014-09-30 22:45:15

+0

如果你的类'ClassA'被声明在包'com.domain.name'中,那么它必须物理地位于文件系统的目录'com/domain/name'或同名的归档项中,如果在'.jar'中。 – 2014-09-30 22:45:21

+0

@BoristheSpider每个* .java文件都将放在同一个包中,让它们在主源文件夹中对我来说更加自然,尤其是因为我学会了分离项目和分发结构。基本上,这只是为了舒适。 – 2014-09-30 22:52:19

回答

2

的这种结构不鼓励的原因是它不能很好地扩展。你的例子被限制在同一个包中有两个类。当你有不同包装或不同包装类别的课程时会发生什么?

For example 
project/ 
- build.xml 
- src/ 
    - com/ 
    - domain/ 
     - package1/ 
     - ClassA.java 
     - ClassB.java 
     - package2 
     - ClassC.java 

这对中等大小的项目(甚至是小项目)来说可维护得多。你提出的替代方案已经让人感到困惑,因为它根本没有交流结构。

For example 
project/ 
- build.xml 
- src/ 
    - ClassA.java 
    - ClassB.java   
    - ClassC.java 

至于你更大的“有没有可能”,Java不强制要求的目录结构匹配问题的封装结构,虽然该公约是强大的。请参阅Package name is different than the folder structure but still Java code compiles