我有一个父项目,它与范围有依赖关系test
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>2.31.0</version>
<scope>test</scope>
</dependency>
现在,当我将此父项目作为依赖项包含在我的子项目中时,我“mvn install”了父项目
<dependency>
<groupId>group</groupId>
<artifactId>parentproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
selenium-firefox-driver
不可用。这compile范围内的依赖项可用。
我怎样才能使其可用?我不会在父项目和子项目中更改范围。因为我在运行时需要父类的一些类
正如 Charlee Chitsuk 在他的回答中概述的那样,你的范围(compile在子项目中)将省略test所包含项目的依赖项。
一个干净的解决方案是将人们的关注点分开parent项目分为两个独立的项目:
- 父测试:该项目包含您的测试依赖项(例如
selenium-firefox-driver
)与一个compile范围。此外,该项目包含所有通用测试资源,例如JUnit 基类,位于src/main/java
.
- 父业务:该项目仅包含父项目的业务功能。包括
parent-test
在这里与test
scope.
在您的子项目中,您现在可以包括parent-test
有范围test同时,您还可以在适当的范围内访问其资源。
此设置将提供清晰的项目结构和清晰的范围,避免您提到的问题。是的,由于额外的项目,它有点复杂,但它也干净得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)