maven Java项目布局是否简单?
我们的项目是由许多使用不同语言的相对较小的组件组成的——java、sql和pascal。每个组件都有自己的存储库和功能范围
所以我们从来没有
- 混合编程语言
- 混合功能
大多数新组件使用maven structure,一些java遗留组件使用非常简单的结构,它们只有“src”和“test”文件夹,资源文件保存在java文件附近。事实证明,它非常方便!也许我错过了什么
问题——在我上面提到的情况下,推荐maven结构的理由是什么,为什么不简单地:
- [“src/main/java”,“src/main/resources”]=>;“src”
- [“src/test/java”,“src/test/resources”]=>;“测试”
参考文献Why are project layout resources are kept separate from Java sources?
# 1 楼答案
“约定优先于配置”,这是Maven的核心设计理念。在我看来,这只是一个规则和标准。因为有HTTP协议,你可以选择不同的浏览器,比如IE和Firefox。最重要的原因是使用约定可以大大减少配置。您还可以在maven中定义自己的文件目录,就像Ant一样,如果您处理的是遗留代码,并且无法更改原始目录结构,那么只能让maven妥协。但除此之外,您没有理由这么做,[“src/main/java”,“src/main/resources”]=>;“src”会让问题变得更复杂,不仅仅是因为这会导致沟通问题,除了你,其他人也不知道为什么要这样做。比如IE兼容性问题,这很糟糕
# 2 楼答案
我自己的答案。当我们在一个组件(一个VCS存储库)中混合语言和功能时,需要Standart maven结构,例如:
在这些场景中,这种结构确实很有帮助,它的功能是分离由不同工具处理的不同文件
如果不是这样,则可以使用更简单的结构
# 3 楼答案
如果不知道项目/组件的规格,很难回答您的问题
我的建议是:
如果您有任何其他文件,如配置文件(即记录器配置文件、数据库配置文件等)、资源(图像、文档模板等),请使用Maven推荐的结构,并将这些文件放在资源下,以便将它们与代码分开。 那会让你
从另一方面来说,如果你没有类似的文件,那就用你的简单结构吧