当前位置: 首页 > 面试题库 >

Maven包含父类

董法
2023-03-14
问题内容

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

我究竟做错了什么?


问题答案:

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

  • 父母(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>


 类似资料:
  • 我有一个结构如下的maven项目: 我希望maven jar插件在构建jar文件时打包到数据库文件夹中。我尝试过包含这里概述的内容:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html,但它找不到目录“../database”(或../../database或../../../database

  • 问题内容: 我正在研究Bill Burke编写的带有JAX-RS的Restful Java中的示例。我正在使用intellij并创建了一个Maven项目来制作“ Hello World” Web服务。我了解JAX-RS是规范,而不是实现。我想尝试Apache CXF实现。 我如何找出哪个jar或哪个Maven工件包含以下必需的类: 问题答案: 尝试在Central上搜索课程。看起来就是您要找的东西

  • 我有这个工作简单的dockerfile。来自openjdk: 8-jdk-alpine WORKDIR /data复制目标/*. jar,myapp.jar入口点["java","-jar",myapp.jar] 我在本地或管道中使用maven构建jar,然后使用它。罐子在这里。我见过很多例子在dockerfile中安装maven,而不是以前进行构建。这难道不是让图像变大了吗?这样做有好处吗?

  • 我需要你的帮助来解决这个问题,我想从不同的包中包含子fxml。如果child.fxml在同一位置,我可以将它们包含到parent.fxml中,但不知道如何将child.fxml添加到parent.fxml中,当两者都在不同的位置/包中时。 先谢谢你。

  • 问题内容: 我有一些可怕的行为。我有以下Maven配置: 这将创建包含所有类的JAR文件,但我在类路径中有一些资源也应包括在内。如果我将参数放在阶段的前面,那么我的所有资源都会包括在内。如果我使用运行Maven ,则不包含任何资源。我的资源位于(不是通常的目录)下。 问题答案: 目标配置中未正确定义资源的源目录。同样,outputDirectory元素将资源放置在dir中,默认情况下将其打包。试试