单个还是多个Maven pom.xml配置文件?
我想问一下与Maven项目中的pom.xml文件有关的这些问题。
- 为所有依赖库创建多个
pom.xml
而不是在一个pom.xml
包含所有依赖项的原因是什么? - Maven项目中的这些
pom.xml
文件应该放在哪里?
这是Spring框架的pom.xml示例 – http://search.maven.org/remotecontent?filepath=org/springframework/spring-core/3.2.5.RELEASE/spring-core-3.2.5.RELEASE。 POM
- 为所有依赖库创建多个pom.xml而不是在一个pom.xml中包含所有依赖项的原因是什么?
maven项目可以由许多工件组成。 一个工件可能是String操作库。 另一个可能是使用该String操作库的webapp。
这就是为什么你不应该把所有的依赖项放在一个pom中:你的String操作库不应该只是因为一个不相关的pom是webapp而引用了servlets.jar。 每个工件应该只具有其类路径中所需的内容。
(您可能有兴趣了解dependencyManagement标记,但它与您的问题没有直接关系。)
- Maven项目中的这些pom.xml文件应该放在哪里?
正如@MariuszS所链接的,这里是标准目录布局 。
在顶级文件描述项目: pom.xml文件 (以及任何属性,maven.xml或build.xml,如果使用Ant)。 此外,还有一些文本文档供用户在接收源时立即读取:README.txt,LICENSE.txt等。
这取决于你的项目,如果项目很小,这个项目(工件)的产品只有一个,那么一个pom就足够了。 但是,如果您的项目有许多工件(库,WAR,EAR等),则需要(通常)每个工件pom。
Maven概念是一个项目定义(POM)只生成一个工件(有例外)。 如果需要,每个项目都应该有pom.xml
内部和源目录的单独目录。
一个maven项目可以构建两个不同的应用程序(例如桌面和webapp)。 这种不同的应用程序具有差异依赖性。
示例多模块项目结构: https : //github.com/peter-lawrey/Java-Chronicle
阅读更多
- 标准目录布局简介
- 使用多个模块的指南
- Maven by Example第6章。多模块项目