gpt4 book ai didi

java - Maven 包未将依赖项分组在一起

转载 作者:行者123 更新时间:2023-12-02 03:27:12 25 4
gpt4 key购买 nike

我正在使用ms-data-core-api项目的库。所以我做了一些调整,使用 mvn package 重新编译它,这给了我一个不同的 .jar 文件,并使用 mvn install:install-file 安装它,这样我就可以使用它位于我项目的 pom 文件中。到目前为止,一切都很好。然而,当我尝试在我的项目中使用它时,我遇到了一些无法解决问题。

通过解压2.0.5 release jar ,它可以正常工作,但是没有我的修改,我意识到它内部具有所有依赖项,尽管我的没有(它只有编译后的库)。

我没有使用 Maven 的经验,所以我所做的是:

  1. 提取了工作 2.0.5 jar 内容,包含所有文件
  2. 将此内容复制到我的 2.0.6 构建文件夹(使用 mvn install:install-file 创建)
  3. 用我编译的二进制文件替换了唯一的 ms-data-core-api 部分
  4. 使用jar cf myJar.jar tweeted-2.0.5-folder重新组装它。

它仍然不起作用,在我需要的类上给我同样的无法解决错误。

通过解压步骤 4 中创建的最新 jar,我意识到它包含了包含在一个文件夹中的所有 2.0.5 内容(与 tweaked-2.0.5- 名称相同)文件夹

我在这里遗漏了一些明显的东西吗?我是否错误地打包回 jar ?或者也许有正确的方法来 mvn 打包 库,以便它一起构建所有依赖项?

最佳答案

是的,有一个正确的方法可以做到这一点。我在这里建议 2 个选项

  1. 您应该运行 mvn install而不是mvn install:install-file 。它将维持pom.xml PC 的 Maven 存储库中的 ms-data-core-api .m2 ,并且当您的项目引用ms-data-core-api时,您的项目将知道其所有依赖项(传递依赖项)

  2. 如果您仍然想制作一个包含所有依赖项的胖 Jar 文件,您可以使用 Maven Assembly Plugin。正如我从 this pom.xml 看到的,他们已经有了<artifactId>maven-assembly-plugin</artifactId> 。而不是mvn package ,您需要运行:mvn clean assembly:single

关于java - Maven 包未将依赖项分组在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38680240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com