`
Inmethetiger
  • 浏览: 108455 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在Maven下的springJpa多模块开发引起的问题

阅读更多

       最近的项目搭建中,出现了一个问题。

 

       短时间内,无法详细说明,打个比方

       比如一个项目A,分为a1,a2,a3,a4 等4个模块。各个模块又分为domain+dao, service ,controller+jsp。此外,还有一个共享模块c1用来存放配置文件,一个父模块,用来进行依赖包的管理。

 

       所有公用的配置文件,如applicationContext.xml。servlertname-servlet.xml等放在公关模块c1下。相当于,共有17个模块,模块之间可以互相调用接口。

       其中domain+dao采用的spring jpa模式,因为开发比较快捷,如果了解spring jpa的人应该知道,spring jpa会将持久化的一些配置放到META-INF/persistence.xml下。所以,在写dao的时候,还是要在dao的模块下加入META-INF的。   

     但是,在写service 的时候,任何配置都是不需要的。因为,service只是调用dao的接口,但是问题出现了。虽然在pom.xml中引入了dao的包。而且程序也没有报错。但是执行单元测试的时候,总是出现问题。主要提示就是dao中的domain不是一个entity。也就是说,无法访问到dao中的domain。

     最后,解决的情况如下。

     1:使用公共资源共享的Maven插件 

<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-remote-resources-plugin</artifactId>
				<version>1.4</version>
				<configuration>
					<resourceBundles>
						<resourceBundle>lycy.app.lcp:shared-resources:${project.version}</resourceBundle>
					</resourceBundles>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>bundle</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

 

2:删除本地仓库中的dao。

3:在core的pom.xml中加入对dao的依赖。注意,选择来自私服上的最新版本。

 

当然,执行过程中可能还是会出问题。

这时,可以删除dao。然后重新从svn中检出。执行上面的步骤。如果依然不行。则切换一个工作空间试试

   

1
0
分享到:
评论
1 楼 Inmethetiger 2013-02-23  
发现我的文笔真是差得不能再差了!

相关推荐

Global site tag (gtag.js) - Google Analytics