首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pax考试:使用包和包装包解决项目依赖关系

Pax考试:使用包和包装包解决项目依赖关系
EN

Stack Overflow用户
提问于 2015-02-04 23:18:50
回答 1查看 835关注 0票数 0

我知道这个答案:Pax Exam: provisioning bundle with all dependencies,但是当我必须将捆绑包包含在项目外部的包中时,我感觉好像做错了什么。

下面是我遇到的错误:

代码语言:javascript
复制
java.lang.Exception: Could not start bundle wrap:mvn:org.apache.cxf/cxf-bundle-jaxrs/2.7.14 in feature(s) test-dependencies-0.0.0: Unresolved constraint in bundle org.apache.cxf.bundle-jaxrs [80]: Unable to resolve 80.0: missing requirement [80.0] osgi.wiring.package; (&(osgi.wiring.package=com.ctc.wstx.stax)(version>=4.4.0)(!(version>=5.0.0)))

下面是我的pax考试测试的配置代码:

代码语言:javascript
复制
@Configuration
public Option[] config() {
    MavenArtifactUrlReference karafUrl = maven()
        .groupId("org.apache.karaf")
        .artifactId("apache-karaf")
        .version(karafVersion())
        .type("tar.gz");
    MavenUrlReference karafStandardRepo = maven()
        .groupId("org.apache.karaf.features")
        .artifactId("standard")
        .classifier("features")
        .version(karafVersion())
        .type("xml");
    return new Option[] {
        // KarafDistributionOption.debugConfiguration("5005", true),
        karafDistributionConfiguration()
            .frameworkUrl(karafUrl)
            .unpackDirectory(new File("target/exam"))
            .useDeployFolder(false),
        keepRuntimeFolder(),
        KarafDistributionOption.features(karafStandardRepo , "scr"),

        //**Do I seriously need to do this?**
        wrappedBundle(mavenBundle("org.codehaus.woodstox", "wstx-lgpl")).noStart(),
        //**Why am I doing this?**
        wrappedBundle(mavenBundle("org.apache.cxf", "cxf-bundle-jaxrs").version("2.7.14")).noStart(),
        //**Some of my bundles use this so I guess this makes sense**
        wrappedBundle(mavenBundle("org.apache.commons", "commons-lang3")),
        mavenBundle("com.company.project", "common-core").versionAsInProject().start(),
        mavenBundle("com.company.project", "common-properties", "1.3.1").start(),
        mavenBundle("com.company.project", "rev-common-core", "1.3.1").start(),
        mavenBundle("com.company.project", "rev-common-properties", "1.3.1").start(),
        mavenBundle("com.company.project", "maintenance-core", "1.3.1").start(),
   };
}

因此,我的问题是:为什么我得到了关于未解决的约束的错误,我是否必须包括甚至外部的包,我需要做什么才能让我的测试运行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-06 19:37:28

是的,您必须包含所有必需的包,Karaf容器正在空运行,您必须在测试中提供所需的所有包。

您可以为您想要测试的模块创建一个特性,作为提供所有所需包的一种方式。然后你可以在你的测试中使用它,例如:

代码语言:javascript
复制
KarafDistributionOption.features("mvn:group/artifact-id/version/xml", "feature-name")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28333449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档