【问题标题】:How to use all the common dependencies of one common project into another project by adding common project as jar如何通过将公共项目添加为jar,将一个公共项目的所有公共依赖项使用到另一个项目中
【发布时间】:2021-06-10 07:25:15
【问题描述】:

我有一个常见的 java 项目,它在 pom.xml 中有多个依赖项。现在,当我导入公共项目时,我想在另一个项目中使用的公共相同依赖项中添加了任何依赖项。

比如一个普通的项目有spring-MVC、hibernate等很多依赖。现在,我的子项目中还需要 hibernate 和 spring-mvc 依赖项,其中 common 被添加为 jar。 由于我的公共项目已经下载了所需的依赖项,并且它作为我的 jar 文件的一部分存在。 现在我想使用这些依赖项而不将它们添加到子项目中。

【问题讨论】:

  • 我目前的问题是我有多个项目,其中 common 被添加为依赖项,并且对于所有这些项目,所有必需的依赖项都正在下载,当我得到最终的 war 文件时,它的大小非常大。
  • 对不起,我不明白这个问题。如果 A 依赖于 B 并且 B 依赖于 C,则将自动添加到类路径中,因为它是传递依赖。

标签: java spring spring-boot maven dependency-management


【解决方案1】:

在您的子项目 pom.xml 中添加项目(具有所有常见依赖项)作为父项目。所以你不必添加它们

<parent>
    <groupId>com.xxxxx.xxx</groupId>
    <artifactId>your-parent-project</artifactId>
    <version>snapshot id of parent project</version>
    <relativePath/> 
</parent>

【讨论】:

    【解决方案2】:

    据我所知,您希望包含一个通用工件,但这也带来了它自己的依赖项。为避免这种情况,您可以在添加 Maven 依赖项时排除不需要的工件,如下所示

    <dependencies>
    <dependency>
      <groupId>sample.ProjectB</groupId>
      <artifactId>Project-B</artifactId>
      <version>1.0-SNAPSHOT</version>
      <exclusions>
        <exclusion>
          <groupId>sample.ProjectD</groupId> <!-- Exclude Project-D from Project-B -->
          <artifactId>Project-D</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    

    在此处查看更多信息Dependency Exclusions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      相关资源
      最近更新 更多