使用Maven构建时包不存在错误

时间:2012-10-08 15:52:59

标签: java maven dependency-management

我正在尝试为我正在制作的项目构建一个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没有任何父级。我正在使用Maven 2和Java 5.任何线索?

2 个答案:

答案 0 :(得分: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中,在项目中添加不带版本的依赖

答案 1 :(得分:2)

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