我正在处理包含服务和集成测试模块的多模块项目。 在服务模块中,根据Spring greenhouse提供了一些用于某些重置密码功能的服务,该服务正在使用预期将在初始化时加载的模板文件。在试图解决这个问题,我稍微改变基础上,加载文件之类的初始化,并把它搬到xml配置:在IT模块中使用时,依赖项模块无法加载资源
<bean id="resetPasswordMailMessageConverter" class="com.myapp.service.reset.ResetPasswordMailMessageConverter">
<constructor-arg name="resource">
<value>classpath*:**/spring/reset-password.st</value>
</constructor-arg>
</bean>
服务工作正常,一旦部署,并在Tomcat中使用,但也有问题,当集成测试被执行:Unable to read template resource class path resource [classpath*:**/spring/reset-password.st]
我把这个文件放在serviceModule/META-INF/spring/
和integrationTestsModule/META-INF/spring/
这两个地方但仍然找不到。
我把一些代码,无论是在服务和在我出口的ClassLoader.getSystemResources("META-INF")
结果综合测试,并注意到,在这两种情况下integrationModule/target/test-classes/META-INF
和.m2/repository/../serviceModule.jar!META-INF
都包含在导出的路径和文件包含两个META-INF/spring/
,但没有发现里面。
我也尝试将文件保存在与转换器相同的包中,并初始化转换器的资源为new ClassPathResource("reset-password.st", getClass().getClassLoader())
或new ClassPathResource("reset-password.st")
但无效。
该项目的结构是mainModule
- > [mainSubmoduleA
- > [serviceModule
,integrationTestsModule
,等],mainSubmoduleB
[其他模块]]
任何想法?
有项目结构的基本布局的POM文件
配件:
主:
...........
<groupId>com.myapp</groupId>
<artifactId>mainModule</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
.............
<modules>
<module>mainSubmoduleA</module>
<module>mainSubmoduleB</module>
</modules>
mainSubmoduleA:
..............
<parent>
<groupId>com.myapp</groupId>
<artifactId>mainModule</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
.........
<modelVersion>4.0.0</modelVersion>
<groupId>com.myapp.mainsuba</groupId>
<artifactId>mainSubmoduleA</artifactId>
<packaging>pom</packaging>
<name>mainSubmoduleA</name>
..........
<modules>
<module>subModuleAA</module>
</modules>
...............
subModuleAA:
<parent>
<groupId>com.myapp.mainsuba</groupId>
<artifactId>mainSubmoduleA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.myapp.mainsuba.subaa</groupId>
<artifactId>subModuleAA</artifactId>
<packaging>pom</packaging>
<name>subModuleAA</name>
..........
<modules>
<module>service</module>
<module>web</module>
<module>integration</module>
</modules>
服务:
<parent>
<groupId>com.myapp.mainsuba.subaa</groupId>
<artifactId>subModuleAA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.myapp.mainsuba.service</groupId>
<artifactId>service</artifactId>
<packaging>jar</packaging>
<name>service</name>
网站:
<parent>
<groupId>com.myapp.mainsuba.subaa</groupId>
<artifactId>subModuleAA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.myapp.mainsuba.web</groupId>
<artifactId>web</artifactId>
<packaging>war</packaging>
<name>web</name>
整合:
<parent>
<groupId>com.myapp.mainsuba.subaa</groupId>
<artifactId>subModuleAA</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>integration</artifactId>
<packaging>jar</packaging>
<name>integration</name>
<description>Integration Tests</description>
你能告诉您的文件夹布局和POM文件... – khmarbaise 2015-02-08 07:56:52
@khmarbaise我丰富了描述,希望它有所帮助.. – Chris 2015-02-08 21:02:14