我有一个相当简单的行家化Java项目,但是在解决这个问题时遇到了麻烦。
我的父模块定义了许多Java类(和依赖项),我希望它们对几个子模块很有用。子模块之一专用于部署Web应用程序,因此它需要一些额外的类(Servlet)以及父模块中的所有内容。
文件结构如下所示
- parent - src - pom.xml - child - src - pom.xml
我的父母pom看起来像这样:
<project> <groupId>my.group</groupId> <artifactId>parent</artifactId> <version>0.0.1</version> <packaging>pom</packaging> ... <modules> <module>child</module> </modules> </project>
孩子看起来像这样:
<project> <artifactId>child</artifactId> <packaging>war</packaging> <parent> <artifactId>parent</artifactId> <groupId>my.group</groupId> <version>0.0.1</version> </parent> ... </project>
这是我需要让孩子知道父级中定义的类和依赖项的全部吗?它似乎不是:eclipse会产生编译错误,并且在提到父类时,从父文件夹或子文件夹运行 mvn clean程序包会 导致“找不到符号”消息。
我究竟做错了什么?
我会像这样更改您项目的结构:
上级:
<project> <groupId>my.group</groupId> <artifactId>parent</artifactId> <version>0.0.1</version> <packaging>pom</packaging> <modules> <module>core</module> <module>child</module> <!-- possibly more modules... --> </modules> </project>
核心:
<project> <parent> <groupId>my.group</groupId> <artifactId>parent</artifactId> <version>0.0.1</version> </parent> <artifactId>core</artifactId> <packaging>jar</packaging> </project>
儿童:
<project> <parent> <groupId>my.group</groupId> <artifactId>parent</artifactId> <version>0.0.1</version> </parent> <artifactId>module1</artifactId> <packaging>war</packaging> <dependencies> <dependency> <groupId>my.group</groupId> <artifactId>core</artifactId> <version>${project.version}</version> </dependency> </dependencies> </project>