小编典典

Maven包含父类

java

我有一个相当简单的行家化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程序包会
导致“找不到符号”消息。

我究竟做错了什么?


阅读 219

收藏
2020-11-13

共1个答案

小编典典

我会像这样更改您项目的结构:

  • 父母(pom)
    • 核心(jar,具有以前在父类中的所有类)
    • 孩子(战争,取决于核心)

上级:

<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>
2020-11-13