`
iamlotus
  • 浏览: 108063 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Maven的dependency 不包括test scope?

阅读更多

有两个Module, ModuleA/ModuleB,如果ModuleB的test中引用到ModuleA/test中的类,那么Junit运行时就会报java.lang.NoClassDefFoundError。如果ModleB在test中引用的不是ModuleA/test中的类,而是ModuleA/main中的类就没有问题。

google了一下,似乎是Maven在解析dependency时不包括test scope的问题。也不清楚是不是hit了这个bug ,但那个bug的status应该是在05年就fix了啊。

现在没时间详细研究,解决方法就是先把那个出问题的类从/test移到/main中。不过那个类其实是个AbstractDBTest类,这样放到/main中真是看着浑身不爽。有空还是要研究个nice solution。

分享到:
评论
2 楼 honlin 2017-02-23  
同样的问题,也是让类搬家才解决的
1 楼 bevis.cn 2011-04-10  
我也遇到了这个问题,请问你有解决吗,不想放到main下

相关推荐

    maven 关于 scope test 和 继承传递的问题

    本文将深入探讨"Maven中scope test的使用以及依赖继承传递"这一主题,帮助开发者更好地理解和应用Maven的核心特性。 首先,`scope test`是Maven依赖管理中的一个关键概念。当我们在`pom.xml`文件中为某个依赖设置`...

    Maven的Dependency测试

    依赖管理包括指定依赖的`groupId`(组织ID)、`artifactId`(项目ID)、`version`(版本号)以及`scope`(范围),如`compile`、`test`等。 2. **依赖范围(Dependency Scope)** - `compile`: 默认范围,适用于...

    Maven 本地仓库

    - **scope**: 依赖范围,如 `compile`(编译时)、`runtime`(运行时)、`test`(测试时)等,决定依赖在哪些阶段可用。 - **exclusions**: 排除不需要的子依赖,避免版本冲突。 ### 使用 `maven_repository` ...

    maven依赖+继承+聚合

    此外,Maven还支持依赖范围(scope),如编译(compile)、测试(test)、运行(runtime)等,以控制依赖在不同阶段的作用。 接下来是"Maven继承"。在大型项目中,多个模块可能共享相同的配置或依赖。Maven的继承...

    springboot的测试类的maven依赖

    `spring-boot-starter-test`中已经包含了Mockito,所以不需要额外配置。 4. **Hamcrest**: Hamcrest是一个匹配器库,用于创建断言,以检查实际结果是否符合预期。它提供了丰富的表达式,使得测试代码更加清晰。...

    maven依赖关系中的<scope>provided</scope>使用详解

    使用`<scope>provided</scope>`表明Maven在编译和测试期间会使用这些依赖,但在打包或部署时不包括它们,因为预期目标环境(如JDK或应用服务器)已经提供了这些库。 例如,在开发Web应用程序时,通常需要`javax....

    maven3.0 maven3.0

    <scope>test</scope> </dependency> ``` 通过以上介绍,我们可以看到Maven 3.0在项目管理和构建过程中扮演着重要角色,其改进和特性极大地简化了Java开发者的日常工作。通过熟练掌握Maven,开发者可以高效地...

    Maven之scope依赖范围.docx

    例如,`servlet-api`,在开发和测试阶段,我们需要它来编译和测试Web应用,但实际运行时,Servlet容器如Tomcat或Jetty已经包含了这个API,不需要Maven再次打包进去。 4. **Runtime(运行时依赖范围)** 这类依赖在...

    第一个maven工程案例

    <scope>test</scope> </dependency> ``` 3. **Maven生命周期与构建过程** Maven拥有一个清晰的生命周期,主要包括`clean`、`default`(或`compile`、`package`、`install`、`deploy`)和`site`三大阶段。在...

    maven3.8下载包

    <scope>test</scope> </dependency> ``` Maven通过执行不同的生命周期阶段,如`clean`(清理项目)、`compile`(编译源代码)、`test`(运行测试)、`package`(打包应用)和`deploy`(部署应用),帮助开发者...

    maven-apache-maven-3.5.3.zip

    **Maven的依赖范围(Dependency Scope):** 1. `compile`:默认范围,编译时可用,打包时包含。 2. `test`:测试范围,仅在测试时可用,打包时不包含。 3. `runtime`:运行时范围,运行和测试时可用,打包时不包含...

    maven学习记录

    <scope>test</scope> </dependency> ``` ### Maven的构建命令 Maven提供了许多构建命令,这些命令可以帮助开发者完成不同的任务: - **`mvn compile`**:编译项目源代码。 - **`mvn test`**:运行项目中的单元...

    Maven开发包下载

    Maven是Java开发领域中不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。本文将深入探讨Maven的核心概念、主要功能以及如何在Windows操作系统上安装和使用Maven。 首先,我们要了解Maven的核心...

    maven 实战 所有源代码

    <scope>test</scope> </dependency> ``` ### 三、Maven生命周期与构建阶段 Maven的生命周期包括`clean`、`default`和`site`三个阶段。其中,`default`生命周期是最常用的,包含了编译、测试、打包、验证等环节...

    Maven完全适用手册

    Maven2扩展了Plugin语言支持,包括Java、BeanShell和Ant,这增强了插件的灵活性和可定制性。 **4. 预定义的项目模板** Maven2引入了预定义模板,允许用户自定义项目结构,类似于AppFuse,极大地提高了开发效率。 *...

    maven安装包

    <scope>test</scope> </dependency> ``` 6. **Maven仓库** Maven 使用仓库管理依赖,包括本地仓库(默认在用户主目录的`.m2\repository`下)、中央仓库(http://repo1.maven.org/maven2/)和私有仓库(企业...

    Maven的依赖验证项目

    在压缩包中的“Maven依赖特性”可能包含了一些特定的示例或者配置,用于展示Maven如何处理不同类型的依赖特性,例如:范围(scope,如compile、test等)、排除依赖、强制版本等。通过实际操作这些例子,你可以更深入...

    Maven 依赖详细理解.pdf

    为了避免依赖冲突,我们可以在dependency中使用exclusions标签来排除某些不需要的传递性依赖。例如,如果我们不想使用spring-boot-starter-web所依赖的spring-boot-starter-tomcat,我们可以在spring-boot-starter-...

    Maven Web基础搭建示例

    在构建Web项目时,Maven能够自动化处理构建过程,包括编译、测试、打包、部署等步骤,极大地提高了开发效率。本示例将详细介绍如何使用Maven搭建一个基础的Web项目,并解决创建过程中可能出现的报错问题。 ### 一、...

    maven常用命令

    - test:仅用于测试,编译和运行测试代码时使用,不包含在发布包中。 - system:与 provided 类似,但需要用户明确提供其 JAR 文件,Maven 不会在远程仓库查找。 例如,要将 Hibernate 依赖设置为测试范围,可以...

Global site tag (gtag.js) - Google Analytics