2009-05-06 15 views
11

我们有一个开发人员习惯于在我们资源库的src/java文件夹下的java包中提交非java文件(xsd,dtd等)。无可否认,这些都是该软件包的相关文件,但我讨厌在src文件夹中看到非java文件。程序包结构中的非java文件

这是一种常见的做法,我应该习惯或者我们是否在做这种保持这些文件的奇怪事情?

回答

11

与非把Java(或其他语言)是密切联系在一起的代码在不同的地方比代码文件的问题是要知道在哪里可以找到他们。理论上每个人都会知道去哪里以及要做什么,从而实现地点标准化。但我在实践中发现,这并没有发生。

想象一下,您的应用程序仍然由一个初级中级开发人员组成的团队维持5年或10年的时间,现在不会与任何现在在您项目中工作的人交谈。将源文件紧密链接到源代码包结构中可以使他们的生活更轻松。

我是一个很大的支持者,在理性的范围内消除尽可能多的歧义。

+0

+1:非常好的一点。我喜欢信息在需要的地方:) – 2009-05-06 18:13:03

+0

那就是现场! – MahdeTo 2009-05-06 18:24:33

0

它很常见,你可以在真正流行的框架中找到它。春天各种模式的xsd文件。而且人们通常将hibernate映射文件放置在与模型类相同的包中。

2

有很多jar库使用相同的做法。 我认为这是可以接受和舒适的。

0

我认为这是很常见的,只要文件是必要的。当人们开始提交源代码不需要的文件(例如设计规范或随机文本文件)时,会出现问题。

+0

不要忘记Javadoc工具明确支持每个包中的“doc-files”目录。 – erickson 2009-05-06 18:08:50

+0

是的,我知道那些。这些是我认为必要的文件。 – 2009-05-06 19:29:52

6

这是非常普遍的,甚至建议,只要它是合理的。一般来说它是合理的,当它是一个静态资源(DTD + XSLT的专有格式,预制脚本等),但它不是文件的时候东西是有可能通过第三方,如IP /地理位置数据库转储进行更新。

+2

良好的观察。关键词确实是“静态的”。 – 2009-05-06 18:00:16

-1

这当然很普遍,但令人难以置信的懒惰和草率。当我看到它时,我的皮肤就会爬行。

使用诸如Maven之类的工具来构建您的产品,可以使您轻松并清晰地分开code from resources

Eclipse捆绑包可以类似地分开。

+0

不愚蠢,它有其用途 – 2009-05-07 14:31:45

5

我认为如果您将'src'视为不具体指“源代码”,它会变得更容易。可以把它看成是在编译时和/或运行您的程序所需的实现资源的

事情是一个产品的编译或构建活动不应该在这里。

诚然,最喜欢的事情,异常可申请:)

更新: 就个人而言,我喜欢和子目录它下面的每个资源类型划分SRC进一步。其他人可能更喜欢这个部门。

2

在Eclipse中,它对于我们来说拥有一个包含java类的src文件夹和一个包含属性文件的配置文件夹(它是一个源文件夹),然后它们都会一起进入输出文件夹,在类路径中找到,但仍然位于Eclipse内部的独立文件夹中

+0

我想这也是一个很好的解决方案。我通常最终在特定的视图中使用过滤器,而不是在那个时候查看我不关心的资源。 – Kapsh 2009-05-06 18:28:41

1

将所有辅助文件保留在源代码旁边的优点之一是在这些第三方库和源代码之间保持版本一致性。如果您需要返回并调试特定版本,则可以将整套source + config设置为相同的版本。

这就是说我会把它们放在一个$project/config/目录,或者其他的,而不是在$project/src/java本身。它们不是真正的源代码,也不是真正的Java,因此误导他们在那个目录中。

然而,当你真正了解它时,这是个人风格的问题。没有“正确”的答案,你应该与这些团队成员交谈,并理解他们为什么做出这个决定。使用这个线索作为支持单方面决定的证据可能不会很好。 ;)