小编apr*_*poz的帖子

不在类路径中的依赖项的测试资源?

我有一个使用Maven设置的多模块Spring项目:

my-root (pom)
    - my-logic
    - my-webapp (depending on my-logic)
    - my-consoleapp (depending on my-logic)
Run Code Online (Sandbox Code Playgroud)

我的测试类继承AbstractTransactionalJUnit4SpringContextTests并@ContextCofiguration用于设置ApplicationContext.

例如Spring Controller的测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { 
  "classpath:applicationContext-logic-test.xml",
  "classpath:applicationContext-web-test.xml"})
public class ControllerTest extends AbstractTransactionalJUnit4SpringContextTests {

  @Autowired
    private ApplicationContext applicationContext;
    ...
}
Run Code Online (Sandbox Code Playgroud)

如您所见,每个模块都有一个配置XML.我有单独的配置用于测试,驻留在每个模块的测试/资源中(另外还有后缀"-test").如果我在Eclipse中运行JUnit测试,这一切都有效(类编译,运行并且JUnit测试成功).

现在我的问题:使用Maven运行测试将无法正常工作!(例如,使用"Run As">"Maven install" my-root(我使用m2eclipse)).具体来说,它将抛出以下异常:

java.io.FileNotFoundException:类路径资源[applicationContext-logic-test.xml]无法打开,因为它不存在

似乎Maven没有将文件添加my-logic/src/test/resources到运行单元测试时设置的类路径中my-webapp.

我该如何解决这个问题?

java junit spring maven-2 classpath

14
推荐指数
1
解决办法
1万
查看次数

Maven:聚合与依赖

我是Maven的新手,我刚刚尝试建立我的第一个项目树.我很难理解两种选择之间的区别:

我有jar和war项目(每个两个)我想捆绑.传统上我只是创建一个耳朵项目,其中所有四个都是依赖项.

现在我读到了poms的聚合,我不知道该怎么做(参见http://maven.apache.org/pom.html#Aggregation).我应该用这四个项目创建一个聚合的POM吗?

我想基本上我的问题是:如果依赖项是我自己的"项目"之一,那么模块和依赖项之间的最大区别是什么.

java dependencies maven-2 aggregation

13
推荐指数
1
解决办法
4833
查看次数

标签 统计

java ×2

maven-2 ×2

aggregation ×1

classpath ×1

dependencies ×1

junit ×1

spring ×1