【问题标题】:java externals jars not included when using maven?使用 maven 时不包括 java externals jars?
【发布时间】:2014-09-11 04:47:42
【问题描述】:

各位,

我是 Java 新手。我已经看到包括外部 jar 并对其进行编译。外部 jars 通常包含很多类文件。因此,当我在我的项目中包含这些外部 jar 并且如果我创建一个新的 JAR 时,我可以看到这些外部 jar 包含在我的 JAR 文件中。

但我见过在使用 Maven 时这些外部 jar 不包含在我的 JAR 文件中的情况?为什么会这样? (例如,当您在 java 中编写 hadoop map reduce 程序时,您引用了很多外部 jar,但这些外部 jar 都不包含在我从项目创建的最终 jar 中。)

谢谢, 约翰

【问题讨论】:

    标签: java eclipse maven jar external


    【解决方案1】:

    如果你想把所有的外部库打包到jar中,你需要使用像OneJar这样的工具。在https://code.google.com/p/onejar-maven-plugin/ 有一个用于 OneJar 的 Maven 插件。

    【讨论】:

    • 所以外部 jar 不是在客户 PC 中执行我的 jar 所必需的吗?不需要将这些外部 jar 打包到我的 RAR 中以便在不同的 pc 中执行?
    • 运行程序时,外部 JAR 需要存在于类路径中,否则运行时会出现 UnsatisfiedLinkExceptions。 OneJar 将确保所有外部 JAR 都存在于您可以提供给客户的一个大 Jar 中。
    • 但是当我创建一个可运行的 jar 以开发 map reduce 程序时,我在这个项目中包含了很多来自 apache 的外部 jar。但是当我创建可运行的 jars 时,提取时没有包含任何 apache hadoop jars。但是当我在集群中运行这个程序时它工作正常吗?那么这是从哪里获取外部 JARS 的呢?
    猜你喜欢
    • 2010-12-29
    • 2013-06-15
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 2023-04-09
    • 2014-11-04
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多