【问题标题】:Maven Project with the need of several local libraries需要几个本地库的 Maven 项目
【发布时间】:2017-01-31 13:02:45
【问题描述】:

我已经阅读了很多关于此的帖子,但我仍然无法找到明确的答案。

我们需要在我们的 maven 项目中使用专有 SDK,该 SDK 包含大约 30 行代码(SAP 产品)所需的约 315 个 jar 文件。我读到的每个答案都涉及将单个罐子添加到您当地的 maven 存储库中。这很好,我理解,但是否可以添加整个库目录。这些库仅在编译项目时需要,因为它们已经在目标服务器的类路径中(它们都将按照 pom 中提供的范围进行限定)。

我已经标记了 Netbeans 8,因为那是我正在使用的 IDE,所以如果有人知道如何在 Netbeans 中使用 Netbeans 类路径上的库编译的 maven 项目,这也是一个很好的解决方案......

【问题讨论】:

  • 这里缺少的重要信息是 - SAP 产品是什么?可能有现有的解决方案 - 例如这篇文章提供了一种使用 maven 为 SAP HANA Cloud 构建应用程序的方法 - scn.sap.com/community/developer-center/cloud-platform/blog/2014/…
  • 这不是你需要的吗:stackoverflow.com/questions/22508433/… 如果部署的服务器上可用,依赖项也应该具有“提供”类型
  • @DennisR 那是一个 jar 文件。再说一次,我不需要再做 314 次吗?
  • @Nate - SAP Business Objects 4.2。我使用了几个搜索工具来查看它们是否都存在于任何没有运气的仓库中......

标签: java maven netbeans-8


【解决方案1】:

JAR 只是在文件夹中组织和压缩的 java .class。将所有这 315 个 JAR 提取到某个地方,从而合并它们的所有内容,然后将其再次压缩到一个单独的胖 JAR 文件。正如您在其他地方阅读的那样,将此胖 JAR 添加到您的本地存储库中。

另一个问题可以帮助您解决 JAR 合并问题:How to combine two Jar files

【讨论】:

    【解决方案2】:

    尽管有很多混乱的解决方法,但理想的做法是让编译失败并使用诸如 agent ransack 之类的搜索实用程序搜索丢失的编译 jar,您可以在该目录中的 jar 中搜索在编译器错误。当你找到你需要的 jars 时,将它们作为依赖项添加到提供的范围内。

    一个不太干净的选项是压缩所有的 jar,使用依赖插件将它们解压到一个文件夹,然后将该文件夹添加到构建的类路径中,然后将它们从最终包中删除或排除。

    【讨论】:

      猜你喜欢
      • 2015-05-13
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 2016-11-13
      • 1970-01-01
      相关资源
      最近更新 更多