2012-03-09 4 views
0

몇 가지 맵 축소 코드와 몇 가지 명령 줄 도구가 포함 된 항아리가 있습니다.mvn depedency plugin 및 Hadoop

내가 받는다는 종속성 플러그인을 사용하여 내 단지 내 LIB directoy에 내 모든 의존성을 포장하고있어 내 종속성을 배포하려면 다음

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.3</version> 
      <executions> 
       <execution> 
        <id>copy-dependencies</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>copy-dependencies</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}/classes/lib</outputDirectory> 
         <overWriteReleases>false</overWriteReleases> 
         <overWriteSnapshots>false</overWriteSnapshots> 
         <overWriteIfNewer>true</overWriteIfNewer> 
         <excludeScope>provided</excludeScope> 
        </configuration> 
       </execution> 
       <execution> 
        <id>build-classpath</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>build-classpath</goal> 
        </goals> 
        <configuration> 
         configure the plugin here 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

나는 다양한 실행하면 내 병은 lib 디렉토리를 사용하도록 기대했다 myJar.jar org.mycompany.MyClass이

그러나, 이것은 MANIFEST.MF

<configuration> 
       <archive> 
        <manifest> 
         <addClasspath>true</addClasspath> 
         <classpathPrefix>./lib/</classpathPrefix> 
         <mainClass>com.mycompany.MainClass</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
를 조작하기 위해 최선의 노력에도 불구하고 일을 볼 수 없습니다 -cp 명령 행 자바의 클래스

maven-assembly-plugin을 사용하지 않고이 작업을 수행 할 수있는 방법이 있습니까?

+0

왜 "maven-assembly-plugin을 사용하지 않고"? –

+0

어셈블리 플러그인을 사용하여이를 수행하는 방법을 이미 알고 있습니다. 나는 실종 된 대체물이 있는지 궁금해. –

답변

2

map/reduce 작업에서 이러한 종속성을 사용한다고 가정합니다. 그렇다면 hadoop의 분산 캐시 (및 다른 두 가지 방법)를 사용하는 방법을 설명하는 Pere Ferrera Bertran의 this article을 살펴보십시오.