2

我正在尝试为我正在分叉的项目构建一个 pom.xml。原来的项目使用了我不能使用的pom层次结构,所以我需要写一个新的pom.xml。

现在,我得到一个恼人的包 xxx 不存在,例如 org.apache.commons.logging,但在我的 pomxml 中,我得到了依赖项:

<dependencyManagement>
  <dependencies>
    ...
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
    </dependency>
    ...
  <dependencies>
<dependencyManagement>

显然,Maven 在导入方面失败了,例如:

import org.apache.commons.logging.Log;

我的 pom.xml 没有任何父级。我正在使用带有 Java 5 的 Maven 2。有什么线索吗?

4

2 回答 2

4

上面的dependencyManagement 条目告诉maven:每次项目声明这样的依赖项时:

<dependencies>
 ...
<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <!-- notice there is no version -->
</dependency> 

使用版本形式dependencyManagement:1.1.1。

在你的主 pom 中拥有 dependencyManagement 非常有用,这样从这个 pom 继承的所有项目都将始终使用相同的版本。在这个地方更改它会导致所有继承项目在下次构建时使用另一个版本。

将 dependencyMangement 保留在主 pom 中,在项目中添加不带版本的依赖项。

于 2012-10-08T16:05:28.833 回答
2

<dependencyManagement>如果您没有 pom 层次结构,则不需要<dependencies>. 去除周围<dependencyManagement>

于 2012-10-08T15:55:32.697 回答