在哪里定义测试Maven依赖项

时间:2019-01-02 11:22:12

标签: java maven testing

我想在每个项目中提供诸如spring,mockito和junit之类的测试依赖项,以使其尽可能容易地编写测试。 我应该对此依赖项使用依赖项管理还是在父pom中定义它们?

3 个答案:

答案 0 :(得分:2)

是,您不需要在每个项目中都定义依赖项。只需在父pom中定义依赖项即可。子项目将自动继承其父pom。另外,如果您想使用其他版本的Mockito或其他任何东西。只需覆盖子项1中的父项依赖项即可。

答案 1 :(得分:2)

所有常见的依赖项都可以在父pom文件中提及。 pom文件中主要可以提到四种依赖类型。

  1. 我们自己创建的图书馆依赖项
  2. 来自我们自己模块的模块依赖性
  3. 第三方图书馆的依存关系
  4. 测试的依赖项

示例

<dependencies>
<!-- Library Dependencies created by ourselves -->
    <dependency>
        <groupId>it.myapp</groupId>
        <artifactId>MyAppBootstrap</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>it.myapp.libs</groupId>
        <artifactId>b2b_connecttion</artifactId>
    </dependency>

    <!-- Module Dependencies from our own modules-->
    <dependency>
        <groupId>it.myapp.mymodules</groupId>
        <artifactId>RevenueManager</artifactId>
        <version>${myapp.module.version}</version>
        <classifier>classes</classifier>
    </dependency>

    <!-- 3rd Party Dependency -->
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc7</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-vfs2</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- Dependencies for tests -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.jmockit</groupId>
        <artifactId>jmockit</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

答案 2 :(得分:1)

有两种方法可以实现它-

  1. 您在gcc_ntox86_64节点的父pom中声明依赖项,每个子项将从该依赖项中受益。

  2. <dependencies />节点下的父pom中添加依赖项,并在需要它的每个子项中,在该节点中添加依赖项。您可以选择不设置依赖项的版本。

例如,如果您在父pom中声明:

<dependencyManagement />