运行多模块Maven项目[英] Run a multi-module Maven project

问题描述

这是一个基本问题,我只是不太熟悉 Maven 多模块结构.说,我有一个网络应用程序.我想将一些模块连接到它(一些服务).我是否需要制作一个 Web 应用程序只是其中一个模块,依赖于其他一些模块,然后运行它?起初我以为我可以运行整个项目,但这个选项在我的 IDE 中是不活动的(我现在使用的是 NetBeans),这让我觉得我应该运行一个主模块(在这种情况下是一个 Web 应用程序)).是这样吗?提前致谢.

推荐答案

如果你有一个多模块项目,你需要一个像下面这样的结构,它也将由文件夹结构表示.

+-- root (pom.xml)
     +--- module-1
     +--- module-2
     +--- module-war 

而根模块包含这样的东西:

<project ..>

  <groupId>com.test.project</groupId>
  <artifactId>parent</artifactId>
  <version>1.0-SNAPSHOT</version>

  <modules>
    <module>module-1</module>
    <module>module-2</module>
    <module>module-war</module>
  </modules>

</project>

在 module-1 中,您的 pom 应如下所示:

<project ..>
  <parent>
    <groupId>com.test.project</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <artifactId>module-1</artifactId>

  dependencies for the module

</project>

在模块 2 中,它看起来或多或少是一样的.在战争模块中,它看起来像:

<project ..>
  <parent>
    <groupId>com.test.project</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <packaging>war</packaging>
  <artifactId>module-war</artifactId>

  dependencies for the module

</project>

如果模块之间存在依赖关系,例如 module-1 依赖于 module-2,它在 module-1 中如下所示:

<project ..>
  <parent>
    <groupId>com.test.project</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>

  <artifactId>module-1</artifactId>

  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>module-2</artifactId>
      <version>{project.version}</version>
    </dependency>

    ..other dependencies..

  </dependencies>

</project>

要构建和打包您的项目,您将转到父文件夹并执行简单的操作

mvn clean package

本文地址:https://www.itbaoku.cn/post/978445.html