如何在maven项目中添加类文件作为依赖项(而不是jar)?

2023-11-29

我有两个模块,A 和 B,它们位于同一个父级下。现在 A 需要 B 作为依赖。我不能只用jar作为依赖类型,因为模块 B 正在使用spring-boot-maven-plugin,所以我想知道如何设置A的pom配置以使A不依赖于B的编译类jar?

- root
  - A
    - src         # module A's source code
    - target
      - classes   # module A's compiled classes
      - A.jar     # module A's compiled jar output
    - pom.xml     # module A's mvn config
  - B
    - src         # module B's source code
    - target
      - classes   # module B's compiled classes, HOW CAN I IMPORT THESE TO A?
      - B.jar     # module B's mvn config
    - pom.xml     # module B's mvn config
  - pom.xml       # parent mvn config

父级 mvn 配置

...
<modules>
  <module>A</module>
  <module>B</module>
</modules>
...

模块 A mvn 配置

...
<parent>
  <!- pointed to parent ->
</parent>
<dependencies>
  <dependency>
    <groupId></groupId>
    <artifactId>B</artifactId>
    <scope>??????????????</scope>   # WHAT SHOULD I PUT HERE?
    <type>???????????????</type>    # WHAT SHOULD I PUT HERE?
  </dependency>
<dependencies>
...

首先:当 A 依赖于其他模块的类时,它必然依赖于jar。您不能依赖模块的某些部分或仅依赖类。

那么让我画出一个解决方案:

  1. 如果 B 是<packaging>jar</packaging>(标准,如果没有给出包装也是如此),那么你可以将它用作依赖项。您不需要范围或类型条目。

  2. 如果 B 是其他一些包装(包括 spring 定义的包装类型,我不是这方面的专家),那么你应该not定义 A 对 B 的依赖关系。相反,您定义第三个模块 C,其中包括 A 和 B 使用的类,并让它们都对 C 具有依赖关系。

不要尝试构建对非 jar 的依赖关系。如果您需要类,请使用这些类定义一个模块,并在需要这些类时使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在maven项目中添加类文件作为依赖项(而不是jar)? 的相关文章

随机推荐