如何设置maven框架顶级pom

时间:2012-01-13 01:11:15

标签: maven-2 dependencies multi-module

我刚刚将一个内部框架项目从ant转换为maven。 maven构建运行正常,并且没有问题地部署到我们的存储库。

问题是当其他项目试图使用框架时,它不起作用。下载的唯一内容是顶级框架pom。

我尝试将一些依赖项添加到一个或多个不同的模块中,但无论我添加哪一个,都会出现循环依赖性错误。我还尝试创建第二个顶级pom文件,没有模块和一些依赖项来覆盖存储库管理器中的那个。这会导致某些依赖项被下载,但随后maven构建将挂起在随机位置。基于Windows任务管理器,它看起来像是无限循环。所以第二个pom文件似乎不是答案(或者我做错了)。

我的框架pom文件看起来像这样:

<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>framework_snt</groupId>
  <artifactId>SFP</artifactId>
  <packaging>pom</packaging>
  <name>SFP framework</name>
  <version>6.3</version>

  <modules>
.... 50+ modules here
  </modules>

然后是顶级pom的常用属性,依赖关系管理和pluginManagement条目。

消费模块中的

我只有以下内容:

<dependency>
  <groupId>framework_snt</groupId>
  <artifactId>SFP</artifactId>
  <version>6.3</version>
  <type>pom</type>
</dependency>

这是在顶级pom中,因此所有子模块都可以访问框架库,以便开发人员更轻松。

如何设置,以便我的消费项目下载所有相关的jar文件?

1 个答案:

答案 0 :(得分:-1)

您所称的framework pom是您的多模块项目的parent pom。

虽然模块可以相互依赖,但它不能依赖于这个父pom。这可能导致循环依赖。

您需要重新查看模块并确定哪些模块依赖于哪些模块并适当地指定依赖项。此外,这些依赖项通常是jar依赖项 - 一个包含源和资源的包。

Maven By Example是提供更多信息的众多资源之一。