我有一个jar,其中包含hadoop的map/reduce代码。它需要一个依赖项,我需要将它放到jar的lib目录中,以便jar是自包含的,并且可以在hadoop中工作。
这是我在我的pom中做的:
1)添加maven-target plugin,将我需要的lib复制到target/lib文件夹中
2)配置jar插件,获取target/lib文件夹中的lib,并将其添加到生成的jar中。
我就是不能让它工作。生成的jar不包含额外的库。
我还尝试将target/lib目录添加到pom的/ tag中,但也不起作用。
这是我的pom,注解...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy apache-httpcomponents</id>
<phase>process-resources</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeTypes>jar</includeTypes>
<includeGroupIds>org.apache.httpcomponents</includeGroupIds>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<stripVersion>false</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>add lib directory to jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>jar</classifier>
<includes>
<include>${project.build.outputDirectory/lib/**</include>
<include>${project.build.outputDirectory/target/**</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>感谢任何人的帮助!
发布于 2015-09-01 03:50:10
看起来你在你的include中遗漏了右括号。
在这里添加一个括号:在outputDirectory之后的${project.build.outputDirectory/lib,以及在下一行的相同位置。
我认为它应该是${project.build.directory}/lib而不是${project.build.outputDirectory}/lib,因为默认情况下project.build.directory是目标文件夹
https://stackoverflow.com/questions/32316949
复制相似问题