我们有一个开发人员习惯在我们的存储库中的src / java文件夹下的java包中提交非java文件(xsd,dtd等)。不可否认,这些是该软件包的相关文件,但我只是讨厌在src文件夹中看到非java文件。
这是我应该习惯的常见做法,还是通过维护这些文件来做一些奇怪的事情?
答案 0 :(得分:12)
将与代码紧密相关的非Java(或其他语言)文件放在与代码不同的位置的问题是知道在哪里找到它们。可以标准化地点然后理论上每个人都知道去哪里和做什么。但我发现在实践中并没有发生。
想象一下,你的应用程序在未来5年或10年后仍会由一群初级中级开发人员维持,这些开发人员现在不在公司工作,现在永远不会与任何从事项目工作的人交谈。在源包结构中放置与源紧密相关的文件可以使他们的生活更轻松。
我支持在合理范围内消除尽可能多的含糊之处。
答案 1 :(得分:6)
这是非常普遍的,甚至是推荐的,只要它合理。一般来说,当它是一个静态资源(DTD + XSLT用于专有格式,预制脚本等)时,它是合理的,但是当文件可能被IP /地理位置数据库转储等第三方更新时,它就不合适了。
答案 2 :(得分:5)
我认为如果你认为'src'不具体意味着'源代码'会变得更容易。可以将其视为程序在编译时和/或运行时所需资源的源。
编译或构建活动的产品的东西不应该在这里。
不可否认,与大多数事情一样,例外可能适用:)
<强>更新强> 就个人而言,我喜欢使用其下面的每种资源类型的子目录进一步细分src。其他人可能会喜欢更高层次的分工。
答案 3 :(得分:2)
有很多jar库使用相同的做法。 我认为这是可以接受和舒适的。
答案 4 :(得分:2)
在Eclipse中,我们可以很好地拥有一个包含java类的src文件夹,以及一个包含属性文件等的配置文件夹(有福的源文件夹)。然后它们一起进入输出文件夹,可以找到在类路径中,同时仍然在Eclipse中的单独文件夹
答案 5 :(得分:1)
将所有辅助文件保留在源旁边的一个优点是在这些第三方库和源代码之间保持版本一致性。如果您需要返回并调试特定版本,则可以提取整套source + config并使其全部为同一版本。
话虽如此,我会将它们放在$project/config/
目录中,或者某些目录中,而不是$project/src/java
本身。它们不是源,也不是java,所以它在这个目录中误导它们。
但是,当你真正了解它时,这是一个个人风格的问题。没有“正确”的答案,您应该与这些团队成员交谈,并了解他们做出此决定的原因。使用这个线程作为支持单方面决定的证据可能不会很好。 ;)
答案 6 :(得分:0)
它很常见,你可以在非常流行的框架中找到它,例如用于spring各种模式的xsd文件。人们通常也会将hibernate映射文件放在与模型类相同的包中。
答案 7 :(得分:0)
我认为只要文件是必要的,这就很常见。当人们开始提交源不需要的文件时会出现问题,例如设计规范或随机文本文件。
答案 8 :(得分:-1)