spring 引导构建为 war 并包含外部模块

spring boot build as war and include external module

我正在尝试构建一个 spring 引导 Maven 项目作为 War 文件部署在服务器上。

我有第二个项目 "lib",其中包含到数据库的 pojo,并在多个项目之间共享。我想将当前项目构建为 war 但似乎无法设置 <packaging>war</packaging> 当定义了一个模块时,它只允许 pom 的类型。

    <modules>
    <module>../lib</module>
    </modules>

我的问题是,如何在保持模块包含的同时将项目构建为 war?

模块在父 pom 中用于定义其子项,其 packaging 应为 pom

如果您想在应用程序中包含其他项目,请改用依赖项。

<dependency>
    <groupId>lib.project.group.id</groupId>
    <artifactId>lib</artifactId>
    <version>lib.project.version</version>
</dependency>

在哪里

  • lib.project.group.id : Lib项目组id
  • lib - Lib 项目工件 ID
  • lib.project.version 你的 lib 项目的版本

注意:在构建 war 项目之前先构建您的 lib 项目,否则构建将失败。

更简洁的方法是创建一个父 pom 并将 war_project 和 lib_project 定义为它的模块并构建父 pom,这就是没有依赖关系失败的方式,你会得到你的已加载 war.

您需要一个具有 war 和 jar 的父 pom:

    <groupId>com.greg</groupId>
    <artifactId>spring-boot</artifactId>
    <version>0.1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>

    <modules>
      <module>jar-project</module>
      <module>war-project</module>
   </modules>

在您的 war 项目中包含 jar 文件作为依赖项:

 <parent>
    <groupId>com.greg</groupId>
    <artifactId>spring-boot</artifactId>
    <version>0.1.0</version>
  </parent>

  <artifactId>war-project</artifactId>
  <packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>com.greg</groupId>
      <artifactId>jar pfoject</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>