Maven:如何在测试阶段包含依赖项并在集成测试阶段将其排除?

时间:2011-11-22 19:41:43

标签: maven dependencies maven-2

我正在使用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。

4 个答案:

答案 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)

我建议有一个带有测试用例的单独项目