Java 在我的类路径中找不到MavenDependencyResolver。

Java 在我的类路径中找不到MavenDependencyResolver。,java,maven,dependencies,jboss-arquillian,Java,Maven,Dependencies,Jboss Arquillian,我使用它来为我的项目编写集成测试。我将这些依赖项添加到我的项目中: <dependencyManagement> <dependencies> <dependency> <groupId>org.jboss.shrinkwrap.resolver</groupId> <artifactId>shrinkwrap-resol

我使用它来为我的项目编写集成测试。我将这些依赖项添加到我的项目中:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.shrinkwrap.resolver</groupId>
                <artifactId>shrinkwrap-resolver-bom</artifactId>
                <version>3.0.0-alpha-1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian</groupId>
                <artifactId>arquillian-bom</artifactId>
                <version>1.1.11.Final</version>
                <scope>import</scope>
                <type>pom</type>
                <exclusions>
                    <exclusion>  <!-- declare the exclusion here -->
                        <groupId>org.jboss.shrinkwrap.resolver</groupId>
                        <artifactId>shrinkwrap-resolver-bom</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.jboss.as</groupId>
            <artifactId>jboss-as-arquillian-container-managed</artifactId>
            <version>7.1.1.Final</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.spec.archetypes</groupId>
            <artifactId>jboss-javaee6-webapp-archetype</artifactId>
            <version>7.1.3.Final</version>
        </dependency>

但是在我的classepath中找不到
DependencyResolvers
MavenDependencyResolver
类,这些类可能位于
包覆面提取解析器bom
中。我做错了什么?

当您在
标记中提到依赖项时,它仅仅意味着这些依赖项可以使用。为了使用它们,您应该明确地将其包含在
标记之外(就像您为
boss所做的那样,作为arquillian容器管理的
jboss-javaee6-webapp-archetype
)。
因此,在您的情况下,要么删除
标记,要么再次在
标记之外包含
包覆面提取解析器bom

此外,在处理多模块maven项目(其中有一个父模块和几个子模块)时,以及在希望从父pom中控制依赖项及其版本时,使用
标记更有意义。

在您的情况下,如果您只使用一个模块,那么我建议删除
标记,并在
标记中包含所有依赖项。这应该足够了

当您在
标记中提到依赖项时,它仅仅意味着这些依赖项仅可供使用。为了使用它们,您应该明确地将其包含在
标记之外(就像您为
boss所做的那样,作为arquillian容器管理的
jboss-javaee6-webapp-archetype
)。
因此,在您的情况下,要么删除
标记,要么再次在
标记之外包含
包覆面提取解析器bom

此外,在处理多模块maven项目(其中有一个父模块和几个子模块)时,以及在希望从父pom中控制依赖项及其版本时,使用
标记更有意义。
在您的情况下,如果您只使用一个模块,那么我建议删除
标记,并在
标记中包含所有依赖项。这应该足够了

@Deployment
public static Archive createDeployment() {
    return ShrinkWrap.create(WebArchive.class, "fileviewer.war")
            .addAsLibraries(
                    DependencyResolvers.use(MavenDependencyResolver.class)
                            .artifact("commons-io:commons-io:2.1")
                            .artifact("org.json:json:20090211")
                            .resolveAsFiles());
}