下面是我的问题,我有一个parent pom.xml,它定义了:
--------parent pom.xml-----------------
<dependencyManagement>
<dependency>
<groupId>org.robolectric</groupId>
<artifactId>robolectric</artifactId>
<version>2.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0.3</version>
</dependency>
</dependencyManagement>在这个roboletric pom.xml中,我们有:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-ant-tasks</artifactId>
<version>2.1.3</version>
</dependency>在maven-ant-tasks pom.xml内部,它有:
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>2.2.1</version>
</dependency>因此,每当我调用仅存在于roole计量测试用例中的maven-工件3.0.3中的API时,它就会抛出nosuchmethod异常。
所以我试过:
1. <dependency>
<groupId>org.robolectric</groupId>
<artifactId>robolectric</artifactId>
<version>2.3</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
</exclusion>
</exclusions>
</dependency>对于<dependencyManagement>下的子pom,我认为它应该覆盖父进程,但实际上没有。
我认为这类问题应该很常见,但我就是搞不明白,有什么建议吗?
发布于 2014-07-18 21:29:40
您应该在父POM中定义依赖项管理,以确定所有(传递的)依赖项中的maven-artifact版本:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.0.3</version>
</dependency>
</dependencies>
</dependencyManagement>https://stackoverflow.com/questions/24820165
复制相似问题