我正在使用Maven 3.0.3 是否可以仅为我的测试阶段包含依赖项,然后仅为我的集成阶段包含另一个依赖项?当这两个依赖关系包含在一起时
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-dev</artifactId>
<version>${gwtVersion}</version>
<scope>test</scope>
</dependency>
...
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.13.0</version>
<scope>test</scope>
</dependency>
运行Selenium集成测试时出现java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>
错误。当排除GWT依赖关系时,运行Selenium测试。我仍然需要测试阶段的GWT依赖,tho。
答案 0 :(得分:1)
使用profiles。配置文件允许您根据-P
命令行选项的参数添加依赖项。
答案 1 :(得分:1)
关于给出的答案,我最喜欢的答案就是在我的failsafe-plugin执行中添加一个“classpathDependencyExcludes”......
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>**/integration/**</include>
</includes>
<systemPropertyVariables>
<tomcat.port>${tomcat.servlet.port}</tomcat.port>
<project.artifactId>${project.artifactId}</project.artifactId>
</systemPropertyVariables>
<classpathDependencyExcludes>
<classpathDependencyExcludes>com.google.gwt:gwt-dev</classpathDependencyExcludes>
</classpathDependencyExcludes>
</configuration>
</execution>
</executions>
</plugin>
这确保了在运行集成测试阶段时不会出现有问题的依赖(在本例中为gwt-dev)。
答案 2 :(得分:0)
Maven配置文件中的不同依赖集是实现此目的的唯一方法,因为&#34;测试&#34; 范围包含&#34; test&#34;和&#34;整合测试&#34;的相强>
答案 3 :(得分:0)
我建议有一个带有测试用例的单独项目