我正在尝试为我正在制作的项目构建一个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.任何线索?
答案 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>
。