Maven对不同范围的依赖性相同

时间:2014-04-04 09:59:14

标签: maven maven-3

我有一个包含多个子模块的maven(3)项目。其中一个,我希望它明确依赖于依赖,而不依赖于它的传递依赖。为此,我使用了以下内容:

<dependency>
  <groupId>org.example</groupId>
  <artifactId>foo</artifactId>
  <version>${project.version}</version>
  <exclusions>
    <exclusion>
      <groupId>*</groupId>
      <artifactId>*</artifactId>
    </exclusion>
  </exclusions>
</dependency>

这是有效的。在运行时期间,&#34; foo&#34;的传递依赖性。已经在类路径中,所以一切顺利。

但是,我需要&#34; foo&#34;传递依赖性进行测试。我试图声明&#34; foo&#34;的依赖关系。有范围测试,但它似乎与排除一切的那个冲突。它或者在测试中按预期工作,但在运行时失败,反之亦然。

你知道maven是否可以这样吗?

2 个答案:

答案 0 :(得分:0)

当然可以,您需要声明2个不同的maven配置文件,包含您的依赖项。

http://maven.apache.org/guides/introduction/introduction-to-profiles.html

Different dependencies for different build profiles in maven

答案 1 :(得分:0)

你应该查看Maven的<scope>import</scope>依赖项。创建一个<profile/>进行测试,并定义一个pom的依赖项,其中包含您感兴趣的这些测试依赖项。(这可能需要对pom.xml - s进行一些重新处理,但是这将是一个很好的方法。)

查看here了解详情。