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

Kim*_*Kim 5 java spring maven

我有两个模块,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
Run Code Online (Sandbox Code Playgroud)

父 mvn 配置

...
<modules>
  <module>A</module>
  <module>B</module>
</modules>
...
Run Code Online (Sandbox Code Playgroud)

模块一个 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>
...
Run Code Online (Sandbox Code Playgroud)

JF *_*ier 5

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

所以让我草拟一个解决方案:

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

  2. 如果B是一些其他的包装(包括弹簧定义包装类型,其中我没有专家)的,则应该限定从A上B.依赖性相反,你定义一个第三模块C,其包括作为类从 A 和 B 使用,并让它们都依赖于 C。

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