Maven包没有将依赖关系分组在一起

时间:2016-07-31 02:30:08

标签: java maven jar

我正在使用ms-data-core-api库进行项目。所以我做了一些调整,使用mvn package重新编译它,它给了我一个不同的.jar文件,并使用mvn install:install-file安装它,所以我可以在我的项目中使用它{{1}文件。到现在为止还挺好。但是,当我尝试在我的项目中使用它时,我遇到了一些pom个问题。

通过解压缩2.0.5 release jar,它正确地工作但是没有我的修改,我意识到它具有所有的依赖性,虽然我没有(它只有编译)图书馆)。

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

  1. 提取了包含所有文件的工作cannot be resolved jar内容
  2. 将此内容复制到我的2.0.5构建文件夹(使用2.0.6创建)
  3. 用我编译的二进制文件替换了唯一的mvn instal:install-file部分
  4. ms-data-core-api重新组装。
  5. 它仍然无法正常工作,在我需要的类上给出了相同的jar cf myJar.jar tweaked-2.0.5-folder错误。

    通过解压缩在步骤4中创建的最新jar,我意识到它将所有cannot be resolved内容都包含在一个文件夹中(与2.0.5同名。

    我错过了一些明显的东西吗?我是否错误地打包回tweaked-2.0.5-folder?或者是否有正确的方法来jar库,以便它一起构建所有依赖项?

1 个答案:

答案 0 :(得分:2)

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

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

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

  3. 而不是mvn clean assembly:single