相关问题:
http://www.iteye.com/problems/95405
http://www.iteye.com/problems/74168 (该问题给出的方案是使用classpath)
原因分析:
比如你的maven工程是如下所示,包含很多子module:
test
test-core
test-web
如果在test-web中测试springmvc的项目时,会发现当前工作目录仍然是test 而不是test-web;所以问题就是出在这。
接下来提供几个方案:
1、绝对路径方式:
@WebAppConfiguration(value = "file:E:\\test\\test-web\\src\\main\\webapp")
或
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
configurer.setTemplateLoaderPath("file:E:\\lion\\lion-web\\src\\main\\webapp")
缺点很明显,如果需要在win/linux上切换 很痛苦
2、类路径方式:
@WebAppConfiguration(value = "classpath:template")
或
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
configurer.setTemplateLoaderPath("classpath:template");
缺点也是比较明显,需要复制两份模板。
3、通过获取webapp目录路径的方式:
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
String path = FreeMarkerConfig.class.getClassLoader().getResource(".").toString().substring(6);
String webappPath = path.replace("/target/test-classes/", "");
webappPath = webappPath.replace(wac.getServletContext().getRealPath(""), "");
webappPath = webappPath + "/src/main/webapp";
configurer.setTemplateLoaderPath("file:" + webappPath);
思路就是:先获取当前的测试类编译到的路径,然后往上获取到根,再拼上src/main/webapp即可拿到目录。
所以3更通用些。
如果你只需要使用maven test 运行:更好的方案是:
1、在test-web的pom.xml中添加
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <systemProperties combine.children="append"> <property> <name>modulePath</name> <value>${project.basedir}</value> </property> </systemProperties> </configuration> </plugin>
project.basedir就是当前模块的目录。
然后在测试类中通过:System.getProperty("modulePath"); 即可拿到该路径,但是如果在如idea集成环境中不好用。
还一种方案是如在idea中使用(具体没有测试):
n Run->Edit configuration->Defaults->JUnit->Working directory
set the value$MODULE_DIR$
and Intellij will set the relative path in all junits just like Maven.
从如上方案中可以看出,【3】是最通用的方案。
相关推荐
在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...
maven管理项目+springmvc+spring+hibernate+freemarker 集成框架。其中注解格式清晰,hibernate进行了代码封装,对开发效率有了提高,对异常进行了封装。freemarker也有优化,参考common包下。对日期工具类有各种...
**Maven+SpringMVC+Freemarker Demo详解** 在Web开发中,Maven、SpringMVC和Freemarker是三个关键的组件,它们分别负责构建管理、业务逻辑处理和视图展示。这个"Maven+SpringMVC+Freemarker Demo"是一个基础的Web...
基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis...
本项目以“maven+springmvc+redis+mybatis整合”为主题,旨在提供一个基于这些技术的集成框架,特别强调了利用Redis作为缓存来提升应用性能。下面将详细阐述这个框架中的各个组成部分以及它们之间的协作。 首先,...
**maven** Maven是一个Java项目管理工具,它...总之,“maven+springmvc+mybatis+freemarker”的整合框架提供了一种高效、灵活的Web应用开发模式,它结合了现代Java开发的多个优秀组件,为开发者带来了极大的便利。
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"Maven搭建SpringMVC+Spring+Ibatis"的组合则提供了一种强大的解决方案。本文将深入探讨这些技术及其集成,帮助你理解和掌握如何利用它们来构建现代化的Java ...
SSM框架是Java web开发中常用的整合框架,由Spring、SpringMVC和MyBatis三个组件构成。这个项目示例提供了使用SSM框架构建Web应用的基础结构,让我们逐一解析其中涉及的技术点。 **Spring框架**:Spring是核心的...
`Maven`、`Spring MVC`和`FreeMarker`是Java开发领域中常用的三个工具,它们各自扮演着关键角色,共同构建了一个强大的开发框架。下面我们将深入探讨这三个技术及其在实际项目中的应用。 **Maven** Maven是一个项目...
在现代Java Web开发中,"Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA"是一个常见的架构组合,被广泛应用于构建企业级应用程序。这个组合通常被称为"SSM",其中"M"代表Maven,"S"代表Spring,包括Spring核心...
【标题】"maven多模块+springMVC+mybatis+freemarker+mysql" 描述了一种基于Java技术栈的企业级应用开发架构。这个架构整合了多个关键组件,包括项目构建工具Maven、Web层框架Spring MVC、持久层框架MyBatis、模板...
本项目框架“maven+springMVC+mybatis+velocity+mysql+junit”提供了一种高效、灵活且可维护的解决方案。以下将详细讲解这些组件及其作用。 1. Maven: Maven是一个项目管理工具,用于构建、依赖管理和项目信息...
"SpringMvc+Spring+Mybatis+Maven+注解方式"是一个经典的Java后端技术栈,它整合了四个关键组件,为开发人员提供了强大的工具和框架支持。下面将详细讲解这四个组件及其整合方式。 1. **Spring Framework**: ...
标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...
在IT行业中,构建Java Web应用程序是一项常见的任务,而"Maven构建Spring4+SpringMVC+Mybatis3"的组合是这种任务的一种流行实现方式。这个项目利用了三个强大的开源框架:Spring Framework作为核心容器,Spring MVC...
该框架集合了Maven、Spring、Spring MVC、MyBatis和FreeMarker,每部分都有其独特的功能和重要性。 **Maven** 是一个项目管理和综合工具,它管理项目的构建、报告和文档。它通过POM(Project Object Model)文件来...
springMVC+maven+hibernate框架,搭建的过程 可以参考 java进阶(五)------springMVC---springMVC+Hibernate+maven完整搭建运行步骤 http://blog.csdn.net/zzq900503/article/details/49892783
基于IDEA+Spring+SpringMVC+Mybatis+Redis+Shiro+Maven实现的教务管理系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于IDEA+Spring+SpringMVC+...
这是一个基于Java技术栈的Web应用开发示例,主要利用了Maven、Spring、SpringMVC、MyBatis和FreeMarker五个关键组件。下面将详细解释这些技术和它们在项目中的作用。 1. Maven: Maven是Apache开发的一个项目管理...
基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+...