Maven:如何管理从一个子模块到另一个子模块的依赖关系

时间:2019-02-06 10:23:20

标签: maven parent-child maven-resources-plugin maven-install

我有一个Maven父子项目,其中父项有多个子模块。子模块之一正在生成一个jar,而另一个依赖于该jar。

项目结构如下:一个父模块具有三个子模块。每个都有自己的pom.xml。 Child1生成jar文件,其他则生成war文件。只有Child3依赖于Child1 jar。

是否有使用pom.xml管理此类依赖关系的最佳方法。

Project Structure

已更新:当我在Child3中添加依赖项时,我能够构建Child3模块,但是当我尝试将其部署在tomcat上时,它将引发错误:

Caused by: java.lang.NoClassDefFoundError: org/ifxforum/xsd/_1/CIMBAcctInfoInqSvc
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:613)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:524)
at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:510)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:247)
... 57 more Caused by: java.lang.ClassNotFoundException: org.ifxforum.xsd._1.CIMBAcctInfoInqSvc
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104)
... 64 more

我对Child3的pom.xml的依赖为:

<dependency>
        <groupId>myGroupId</groupId>
        <artifactId>myArtifactId</artifactId>
        <version>1</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/src/main/resources/lib/myJar.jar</systemPath>
    </dependency>

我可以看到 org / ifxforum / xsd / _1 / CIMBAcctInfoInqSvc 在罐子里。

1 个答案:

答案 0 :(得分:3)

您只需在Child3的Child1坐标上声明一个maven依赖项。对于该版本,您可以使用${project.version}