【发布时间】:2017-09-28 20:48:41
【问题描述】:
我正在开发一个包含 2 个模块的 maven 项目:“impl”生成一个带有资源的 jar,“server”生成一个服务器实现之战。
implementation
|
|-impl
| |-src
| | |-main
| | |-resources
| |-pom.xml
|
|-server
| |-src
| | |-main
| | |-java
| | |-test
| | |-java
| |-pom.xml
|
|-pom.xml
目前,当我尝试创建构建时,impl jar 文件包含在服务器 war 文件的 WEB-INF/lib 目录中,因此在生成服务器 war 文件后,正在对其进行解包,并在此基础上进行所有测试正在运行,一切正常。
作为要求,我必须将jar与war分开,这样war文件将不包含任何impl的jar文件,并且只有将jar文件放在tomcat的lib目录中才能使用war。
我尝试在服务器的 pom.xml 文件中执行此操作,并将 impl 模块设置为提供的范围,因此 jar 文件不再包含在 war 中,但现在测试失败,因为在解压缩用于运行测试,不包含所需的 impl jar 文件。 我可以在解压服务器war文件后将impl的jar文件复制到WEB-INF/lib目录中以便测试正常工作,或者可以将“impl”jar文件设置为就像它在服务器的WEB-INF/lib目录中一样运行测试,或者我的问题是否有其他可能的解决方案?
【问题讨论】:
-
对这个 jar 文件使用
<scope>test</scope>怎么样,这意味着它在测试类路径中......没有被打包到战争等中。我不明白的是为什么你需要解压缩你的用于运行测试的war文件?什么样的测试?