Плагин mvn depedency и Hadoop

У меня есть банка, содержащая как код сокращения карты, так и несколько инструментов командной строки.

Чтобы распространять мои зависимости, я собираю все свои зависимости в каталоге lib в моей банке, используя плагин зависимостей maven:

<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, когда я запускаю различные классы из командной строки java -cp myJar.jar org.mycompany.MyClass

Однако это не работает, несмотря на все мои усилия по манипулированию MANIFEST.MF

<configuration>
 <archive>
 <manifest>
 <addclasspath>true</addclasspath>
 <classpathprefix>./lib/</classpathprefix>
 <mainclass>com.mycompany.MainClass</mainclass>
 </manifest>
 </archive>
 </configuration>

Есть ли способ сделать это без использования maven-assembly-plugin?

1 ответ

Я предполагаю, что вы говорите об использовании этих зависимостей в Map/Reduce jobs. Если да, взгляните на эту статью из Pere Ferrera Bertran, в которой объясняется, как использовать распределенный кеш (и два других способа)

licensed under cc by-sa 3.0 with attribution.