Java中的类阴影:使用外部项目隐藏当前项目中的类

时间:2013-08-02 22:22:52

标签: java unit-testing maven shadow

我正在使用maven构建我的项目,比如utils_java。

项目结构是典型的src / main ...和src / tests ....

我在这个包中有一个类,需要一些复杂的设置和JNI等的使用。所以为了方便单元测试,我有一些名为mock_java的包,其中包含一个具有相同名称和包结构的伪/代理/模拟类。 / p>

pom.xml条目:

<dependency>
    <groupId>com.test.my_mock_java</groupId>
    <artifactId>my_mock_java</artifactId>
    <version>0.0.1.14244.5</version>
    <scope>test</scope>
</dependency>

我还检查了使用其他maven-antrun-plugin检查类路径。测试类路径包含此mock_java pkg的jar。

这对我不起作用。如果有两个包我们可以通过将它们放在pom.xml中的适当位置来控制它们的顺序是classpath。但是在这种场景中应该做些什么呢?当前项目中的一个类需要被其他包中的一个阴影只用于测试目的?

2 个答案:

答案 0 :(得分:0)

依靠类路径中的顺序来影子类只是要求类。你无法控制的因素太多了。但是,如果没有关于实际用例的更多信息,则很难提供更好的建议。

答案 1 :(得分:0)

您是否尝试通过定义更多个人资料来解决问题?

您可以定义以下配置文件:

  • 生产(默认情况下已激活)
  • 测试

通过这种方式,您可以根据它们包含/排除依赖性