2016-09-29 12 views
0

私のプロジェクトの統合テストを書くために、tutorialを使用しています。 クラスパスでMavenDependencyResolverが見つかりません。

<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> 

そして、私は展開方法でこのコードを試してみてください:私は私のプロジェクトに、このような依存関係を追加

@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()); 
} 

しかし、私は私のclassepathにDependencyResolversMavenDependencyResolverクラスを見つけることができない、このクラスがであることをsupose shrinkwrap-resolver-bom。私は間違って何をしていますか?

答えて

3

<dependencyManagement>タグの依存関係について言及するときは、単にこれらの依存関係を使用するだけでよいことを意味します。あなたがそれらを使用するには、boss-as-arquillian-container-managedjboss-javaee6-webapp-archetypeのように、<dependencyManagement>タグの外に明示的に含める必要があります。
<dependencyManagement>タグを削除するか、または<dependencyManagement>タグの外側にshrinkwrap-resolver-bomをもう一度含めてください。

また、複数モジュールのmavenプロジェクト(1つの親モジュールと複数の子モジュールがある場合)と、親の中から依存関係とそのバージョンを制御する場合には、<dependencyManagement>タグを使用すると効果的ですポム。
あなたの場合、1つのモジュールだけで作業している場合、<dependencyManagement>タグを削除し、すべての依存関係を<dependencies>タグ内に含めることをお勧めします。それで十分でしょう。

関連する問題