如何在jar文件中包含maven依赖项?

时间:2015-02-05 01:14:59

标签: java eclipse maven

我有一个eclipse Luna项目,在pom.xml中定义了一堆maven依赖项

在日食中一切正常。但是现在我需要在可导出的jar文件中包含所有这些依赖项(以便我可以将它们发送给Apache Spark中的worker)。

我一直在摆弄导出设置,但我没有看到任何方法将它们导出到jar文件中。

enter image description here

我找到了一些解释,解释了如何配置maven来打包其依赖项。这是我唯一的选择,还是在eclipse中有一些方法可以做到这一点?

4 个答案:

答案 0 :(得分:8)

看看这个问题:How can I create an executable JAR with dependencies using Maven?

我认为@Rocky Inde的答案正是你要找的(使用eclipse):

  

1)只需右键单击项目文件夹(在Eclipse中)并选择   出口

     

2)然后选择Java - > Runnable Jar

     

3)将要求您选择jar文件的位置

     

4)最后,选择具有您想要的Main方法的类   使用Jar文件运行并选择Package依赖项,然后单击Finish

答案 1 :(得分:1)

然后你需要在pom.xml中包含shade插件,mvn package将生成阴影jar(胖罐)this链接提供有关阴影插件的信息

答案 2 :(得分:0)

我认为这个问题是重复的:

如果您想使用控制台和Maven,您可以查看此主题:the link that @Tarik mentions

如果您想使用Eclipse,请查看以下内容:How to create a jar with external libraries included in eclipse?

答案 3 :(得分:0)

我建议你使用Maven程序集插件。从使用页面:

  

例如,假设我们的项目产生了一个JAR。如果我们想要创建包含项目依赖项的汇编二进制文件,我们可以利用其中一个Assembly Plugin的预制描述符。您可以在项目的pom.xml中配置如下:

<project>
  [...]
  <build>
  [...]
  <plugins>
    <plugin>
      <!-- NOTE: We don't need a groupId specification because the group is
         org.apache.maven.plugins ...which is assumed by default.
       -->
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.5.3</version>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
      [...]
</project>