我有两个模块,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>
...
答案 0 :(得分:4)
首先:当A依赖于其他模块的类时,它必然取决于 jar 。您不能依赖于模块的某些部分或只依赖于类。
所以让我勾勒出一个解决方案:
如果B是<packaging>jar</packaging>
(标准,如果没有给出包装也是如此),那么你可以将它用作依赖。您不需要范围或类型条目。
如果B是其他一些包装(包括我不是专家的弹簧定义的包装类型),那么你应该不在A上定义A的相关性。相反,你定义了第三个模块C,它包括从A和B中使用的类,并让它们都依赖于C.
不要尝试构建非jar的依赖项。如果需要类,请使用这些类定义模块,并在需要类时使用它。
答案 1 :(得分:-1)
以下是有关maven依赖范围和类型的详细信息。 https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
这应该适合你。 (未经测试)
<scope>compile</scope>
<type>jar</type>