Maven:如何管理从一个子模块到另一个子模块的依赖关系
Maven: How to manage dependency from one child module to another child module
我有 Maven 父子项目,其中父项有多个子模块。其中一个子模块正在生成一个 jar,另一个依赖于该 jar。
项目结构如下:一个父模块具有三个子模块。每个都有自己的 pom.xml。 Child1 生成 jar 文件,其他人正在生成 war 文件。只有 Child3 依赖于 Child1 jar。
是否有使用 pom.xml.
管理此类依赖关系的最佳方法
更新:当我在 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 在罐子里。
您只需在 Child3 中声明一个 Child1 坐标上的 Maven 依赖项。对于版本,可以使用${project.version}
.
我有 Maven 父子项目,其中父项有多个子模块。其中一个子模块正在生成一个 jar,另一个依赖于该 jar。
项目结构如下:一个父模块具有三个子模块。每个都有自己的 pom.xml。 Child1 生成 jar 文件,其他人正在生成 war 文件。只有 Child3 依赖于 Child1 jar。
是否有使用 pom.xml.
管理此类依赖关系的最佳方法更新:当我在 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 在罐子里。
您只需在 Child3 中声明一个 Child1 坐标上的 Maven 依赖项。对于版本,可以使用${project.version}
.