单个或多个Maven pom.xml配置文件?

时间:2013-11-15 20:28:14

标签: java xml 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

2 个答案:

答案 0 :(得分:6)

  
      
  • 为所有依赖库创建多个pom.xml而不是在一个pom.xml中包含所有依赖项的原因是什么?
  •   

maven项目可以由许多工件组成。一个工件可能是String操作库。另一个可能是使用该String操作库的webapp。

这就是为什么你不应该将所有依赖项放在一个pom中:你的String操作库不应该只是因为一个不相关的pom是webapp而引用了servlets.jar。 每个工件应该只在其类路径中具有所需的

(您可能有兴趣了解dependencyManagement标记,但它与您的问题没有直接关系。)

  
      
  • Maven项目中的这些pom.xml文件应该放在哪里?
  •   

@MariuszS链接到,这里是the Standard Directory Layout

  

描述项目的顶级文件: pom.xml文件(以及任何属性,maven.xml或build.xml,如果使用Ant)。此外,还有一些文本文件供用户在接收来源时立即阅读:README.txt,LICENSE.txt等。

答案 1 :(得分:3)

这取决于您的项目,如果项目很小并且该项目(工件)的产品只有一个,那么一个pom就足够了。但是,如果您的项目有许多工件(库,WAR,EAR等),则需要(通常)每个工件pom。

Maven概念是一个项目定义(POM)只生成一个工件(有例外)。如果需要,每个项目都应该有单独的目录pom.xml内部和源目录。

一个maven项目可以构建两个不同的应用程序(例如桌面和webapp)。这种不同的应用程序具有差异依赖性。

示例多模块项目结构:https://github.com/peter-lawrey/Java-Chronicle

了解更多