首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用maven将依赖项添加到jar的lib目录中?

如何使用maven将依赖项添加到jar的lib目录中?
EN

Stack Overflow用户
提问于 2015-09-01 01:44:53
回答 1查看 3.1K关注 0票数 0

我有一个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,注解...

代码语言:javascript
复制
    <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>

感谢任何人的帮助!

EN

回答 1

Stack Overflow用户

发布于 2015-09-01 03:50:10

看起来你在你的include中遗漏了右括号。

在这里添加一个括号:在outputDirectory之后的${project.build.outputDirectory/lib,以及在下一行的相同位置。

我认为它应该是${project.build.directory}/lib而不是${project.build.outputDirectory}/lib,因为默认情况下project.build.directory是目标文件夹

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32316949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档