【问题标题】:How to Overcome Spring and Jbehave Versioning Problem?如何克服 Spring 和 Jbehave 版本控制问题?
【发布时间】:2011-09-21 07:33:56
【问题描述】:

在我们的项目中,我们使用的是 Spring 3.0.0.RELEASE,现在我们正在尝试将 JBehave 添加到我们的项目中。
这里的问题是 JBehave 最新的 3.4.5(Release) 版本使用 Spring 2.5.6 (spring-context, spring-test)。
然后我们在maven中遇到了依赖问题。

是否有任何解决方案可以继续我们的项目使用 Spring 3.0 版和 Jbehave Spring 2.5.6 版而不会发生任何冲突?

【问题讨论】:

    标签: java spring dependencies versioning jbehave


    【解决方案1】:

    JBehave 可能也适用于 Spring 3.0。您可以简单地尝试从 JBehave 中排除传递依赖。我没有对此进行测试,但它应该类似于:

    <dependencyManagement>
        <dependencies>
        ...         
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>3.0</version>
                <scope>compile</scope>
            </dependency>
            ...
            <dependency>
                <groupId>org.jbehave</groupId>
                <artifactId>jbehave</artifactId>
                <version>3.4.5</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-context</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-test</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
         ....
      </dependencies>
    </dependencyManagement>
    

    【讨论】:

    • @Benjamin Muschko:我是 Maven 依赖管理的初学者。 :( 在上面我不需要提供 Spring 的版本详细信息?最好你提供更详细的 POM 结构,如上所示。谢谢。
    • @azad:exclusion tag 仅支持groupIdartifactId 子标签。你不需要给它一个版本。
    • @Benjamin Muschko:是的,你举了一个很好的例子。在我的例子中,我使用 JBehave 对 Spring 注入的测试用例进行场景测试,在这种情况下,我需要有 Spring 的上下文和它的测试类。如果排除它们,我们的主要目标就会被错过。如果您知道在这两种情况下都可以使用的任何东西(通过使用 maven 依赖项或任何东西使用 Jbehave 2.5.6(spring) 和我们的框架 3.00 Release)。请告诉我。谢谢。
    • @azad:我不想暗示您不必将 Spring 库声明为依赖项。你仍然需要这样做。不过,您必须将它们排除在 JBehave 之外。使用范围 test 声明 JBehave 依赖项,使用范围 compile 声明 Spring 库。我更改了pom.xml 给你的想法。
    • @Benjamin Muschko:正如你所说,我更改了 pom.xml,但问题是它无法在我的类路径中找到 .story 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2010-11-03
    • 2013-05-26
    • 1970-01-01
    相关资源
    最近更新 更多