Плагин 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.