2011-02-17 6 views
1

안녕,메이븐을 통해 항아리를 생성 할 때 문제가 발생했습니다.

메이븐을 사용하여 실행 파일을 생성하려고합니다. 항아리가 생성되고 난

에 의한 나는 다음과 같은 오류가 myjar -jar 자바 실행하려고하면 이는 java.net.URLClassLoader에 org.apache.hadoop.conf.Configuration : java.lang.ClassNotFoundException가를 $ 1.run (URLClassLoader.java:202)

나는 항아리를 추출하여 hadoop 클래스가 존재하지 않는다는 것을 알았습니다.

< 빌드 >

< 플러그인 >

을 : 그리고 로그에 내가 그 하둡 항아리 복사되지 않습니다 어디에요 다음과 같이

내 pom.xml 파일이 문제입니다 볼 수 있었다 < 플러그인 >

< groupId,772,743,925,862,473,210 org.apache.maven.plugins </>의 groupId
< artifactId를 > 받는다는 컴파일러 - 플러그인 </artifactId를 >
< > 버전 2.3.1 </버전 >
< 구성 >
< 소스 > 1.6 </소스 >
< 대상 > 1.6 </tar 얻을 >
</구성 >
</플러그인 >
< 플러그인 >
<의 groupId > org.apache.maven.plugins < /의 groupId >
< artifactId를 > 받는다는 - 조립 플러그인 </artifactId를 >
< 버전 > 2.2- 베타 -4- </버전 >
< 구성 >
<descriptorRefs>
<descriptorRef> 항아리 -와 의존성 >
</descriptorRef >
</descriptorRefs >
< 아카이브 >
< 매니페스트 <mainClass> com.MyClass </mainClass >
</매니페스트 >
</아카이브 >
</구성 >
< 실행 > < 실행 >
< 위상 > 패키지 </위상 >
,개 < 목표 >
< >
</을 구축 목표 > 단일 </목표 >
</목표 >
</실행 >
</실행 >
</플러그인 >
</플러그인

<!-- Compile time dependencies --> 
<dependency> 
    <groupId>bixo</groupId> 
<artifactId>bixo-core</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 
    <dependency> 
     <groupId>cascading</groupId> 
     <artifactId>cascading-core</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>cascading</groupId> 
     <artifactId>cascading-11-jdbc</artifactId> 
     <version>0.0.4</version> 
    </dependency> 

    <dependency> 
     <groupId>hsqldb</groupId> 
     <artifactId>hsqldb</artifactId> 
     <version>1.8.0.7</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpcore</artifactId> 
     <version>4.0.1</version> 
    </dependency> 

<dependency> 
     <groupId>org.apache.lucene</groupId> 
     <artifactId>lucene-core</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.tika</groupId> 
     <artifactId>tika-parsers</artifactId> 
     <version>0.8</version> 
    </dependency> 

    <dependency> 
     <groupId>org.archive</groupId> 
     <artifactId>heritrix</artifactId> 
     <version>1.14.3</version> 
    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.14</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-lang</groupId> 
     <artifactId>commons-lang</artifactId> 
     <version>2.4</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>1.4</version> 
    </dependency> 

    <dependency> 
     <groupId>org.kohsuke</groupId> 
     <artifactId>args4j</artifactId> 
     <version>2.0.10</version> 
    </dependency> 


    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-core</artifactId> 
     <version>0.21.0-SNAPSHOT</version> 
     <scope>provided</scope> 
     <exclusions> 
      <exclusion> 
       <artifactId>jetty</artifactId> 
       <groupId>org.mortbay.jetty</groupId> 
      </exclusion> 
      <exclusion> 
       <artifactId>jetty-util</artifactId> 
       <groupId>org.mortbay.jetty</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
      <groupId>org.apache.hadoop</groupId> 
      <artifactId>hadoop-mapred</artifactId> 
      <version>0.21.0-SNAPSHOT</version> 
      <scope>provided</scope> 
</dependency> 
<dependency> 
      <groupId>org.apache.hadoop</groupId> 
      <artifactId>hadoop-common</artifactId> 
      <version>0.21.0-SNAPSHOT</version> 
      <scope>provided</scope> 
</dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 

    <!-- Eclipse project generation dependencies --> 

    <dependency> 
     <groupId>ant-eclipse</groupId> 
     <artifactId>ant-eclipse-jvm1.2</artifactId> 
     <version>1.0</version> 
     <scope>eclipse</scope> 
    </dependency> 

</dependencies> 

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.lucene</groupId> 
      <artifactId>lucene-core</artifactId> 
      <version>2.4.1</version> 
     </dependency> 

     <dependency> 
      <groupId>cascading</groupId> 
      <artifactId>cascading-core</artifactId> 
      <version>1.1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>cascading</groupId> 
      <artifactId>cascading-test</artifactId> 
      <version>1.1.1</version> 
     </dependency> 
    </dependencies> 
</dependencyManagement> 
` 

답변

1

당신은 <scope>provided</scope>의 범위와 종속으로 하둡 단지를 지정했습니다.
이것은 런타임에 클래스 패스에 포함되도록하고, 범위 태그를 제거하고 컴파일의 기본 범위를 허용하는 경우 런타임에 클래스 경로에 있음을 의미합니다.

http://maven.apache.org/pom.html

관련 문제