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

时间:2017-09-02 07:16:38

标签: 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

parent mvn config

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

模块A mvn config

...
<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>
...

2 个答案:

答案 0 :(得分:4)

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

所以让我勾勒出一个解决方案:

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

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

  3. 不要尝试构建非jar的依赖项。如果需要类,请使用这些类定义模块,并在需要类时使用它。

答案 1 :(得分:-1)

以下是有关maven依赖范围和类型的详细信息。 https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

这应该适合你。 (未经测试)

<scope>compile</scope>
<type>jar</type>