【问题标题】:Third party jar depending on other third party jars第三方 jar 取决于其他第三方 jar
【发布时间】:2015-07-09 08:48:41
【问题描述】:

我想使用第三方jar,我们称之为Third.jar。这个 Third.jar 文件位于目录 A/ 中。在 A/lib/ 中有更多的罐子(假设来自 X 方和 Y 方)。当我使用 maven-install-plugin 时,我只在本地 Maven 存储库中提供 Third.jar,但是当我尝试运行它时它会失败,因为它找不到包含在那些 X 方和 Y 方 jar 中的类.

既然我不应该关心 Third.jar 的内部依赖关系,那么 Apache Maven 3.3.3 应该如何解决这个问题?

【问题讨论】:

    标签: java maven


    【解决方案1】:

    如果你只能在 maven repository 中找到一个 jar,你不需要关心它的内部依赖,因为 maven 会为你处理这个。但是,如果您使用 maven-install-plugin 将第三方 jar 添加到本地存储库中,那么您是唯一应该处理添加的 jar 的内部依赖项的人。这意味着您需要使用 maven-install-plugin 并在本地仓库中添加 party Xparty Y jar,并将它们与 pom.xml 一起添加到 Third.jar

    【讨论】:

    • 是否还有一种方法可以将 A/lib 中的所有 jar 与 Third.jar 结合起来创建一个 Fourth.jar 文件,然后我可以依赖该文件,这样当 A/lib 在下一个版本中包含一个附加文件,它会神奇地运行我不关心细节?
    • 不错,解压所有的jar包,将三个jar包的内容压缩到一个jar包中;)。
    【解决方案2】:

    除非你知道你不需要依赖项,否则你必须假设你需要它们。

    如果您需要节省空间,您可以删除一个您知道自己没有使用的依赖项,但是通常这很耗时且容易出错,我会避免这样做。

    【讨论】:

      【解决方案3】:

      如果您确实确定不想要其他 jar 并且您的应用程序没有损坏,那么您可以像这样在 pom.xml 依赖项中指定排除项。

          你的组第三个版本版本>
          
          
              XGroupX排除>
          
              YGroup排除>
        排除>
      

      如果其他 jar 没有添加到本地存储库中,则删除第三个 maven 存储库的 pom.xml 中的其他依赖项。

      【讨论】:

        猜你喜欢
        • 2011-11-25
        • 1970-01-01
        • 1970-01-01
        • 2016-02-28
        • 2018-01-31
        • 2012-02-21
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多