Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在何处定义测试maven依赖项_Java_Maven_Testing - Fatal编程技术网

Java 在何处定义测试maven依赖项

Java 在何处定义测试maven依赖项,java,maven,testing,Java,Maven,Testing,我希望在每个项目中提供测试依赖项,如spring、mockito和junit,以使编写测试尽可能容易。 我应该对这些依赖项使用依赖项管理还是在父pom中定义它们?有两种方法可以实现它- 在节点的父pom中声明依赖项,每个子节点都将从依赖项中受益 在节点下的父pom中添加依赖项,并在需要它的每个子节点中,在节点中添加依赖项。您可以选择不设置依赖项的版本 例如,如果您在父pom中声明: <dependencies> <dependency> <g

我希望在每个项目中提供测试依赖项,如spring、mockito和junit,以使编写测试尽可能容易。
我应该对这些依赖项使用依赖项管理还是在父pom中定义它们?

有两种方法可以实现它-

  • 节点的父pom中声明依赖项,每个子节点都将从依赖项中受益

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

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

    <dependencies>
        <dependency>
            <groupId>org.abc</groupId>
            <artifactId>xyz</artifactId>
            <version>your_version</version>
        </dependency>
    </dependencies>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.abc</groupId>
                <artifactId>xyz</artifactId>
                <version>your_version</version>
                <scope>your_scope</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    
    org.abc
    xyz
    你的版本
    org.abc
    xyz
    你的版本
    你的视野
    
    是的,您不需要在每个项目中定义依赖关系。只需在父pom中定义依赖项。子项目将自动继承其父pom。如果你想使用不同版本的Mockito或其他东西。只需覆盖子1中的父依赖项。

    所有常见依赖项都可以在父
    pom
    文件中提及。pom文件中主要有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>
    
    
    it.myapp
    MyAppBootstrap
    假如
    it.myapp.libs
    b2b_连接
    it.myapp.mymodules
    收入管理员
    ${myapp.module.version}
    班级
    com.sun.xml.ws
    jaxws-rt
    假如
    com.oracle
    ojdbc7
    假如
    org.apache.commons
    commons-vfs2
    假如
    朱尼特
    朱尼特
    假如
    org.jmockit
    杰莫基特
    测试
    
    依赖关系管理。也许你应该考虑一个像Spring Boot这样方便的家长。。。