【问题标题】:Spring Boot : package maven project multi modulesSpring Boot:打包maven项目多模块
【发布时间】:2020-10-15 18:02:02
【问题描述】:

我有一个包含 4 个模块和一个父 POM 的 maven 项目。 在“mvn clean package”之后,生成了4个jar文件:

application-0.0.1-SNAPSHOT.jar
domain-0.0.1-SNAPSHOT.jar
exposition-0.0.1-SNAPSHOT.jar
infrastructure-0.0.1-SNAPSHOT.jar

但是,我想在 tomcar 服务器上部署这个应用程序。 我尝试在父 pom 中添加它,但包不起作用。

<build>
<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</pluginManagement>

我不知道如何获取战争文件... 感谢您的帮助!

编辑

展示包的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.example.projetfilrouge</groupId>
    <artifactId>profil-skype</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>exposition</artifactId>
   
      <dependencies>
        <dependency>
            <groupId>com.example.projetfilrouge</groupId>
            <artifactId>application</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- AOP dependencies -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>

        <!-- springfox-swagger2 dependencies -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>

        <!-- spring-security-test dependencies -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- DevTools -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
          <!-- JWT -->
          <dependency>
              <groupId>io.jsonwebtoken</groupId>
              <artifactId>jjwt</artifactId>
              <version>0.9.1</version>
          </dependency>

    </dependencies>
</project>

【问题讨论】:

  • 所有这些项目都是spring-boot项目吗?还是只有一个是 Spring Boot 项目,其他是库?
  • 这是一个带有 4 个 maven 项目模块的 spring boot 项目。
  • 这 4 个人是否在其中一个类中都有 @SpringBootApplication 注释?
  • 不,只有一个包:“博览会”;这个包包含带有@SpringBootApplication注解的RestController和主类
  • 可以分享一下 exposition 模块的 pom.xml 文件吗?

标签: spring-boot maven deployment


【解决方案1】:

据我了解,您有一个包含 4 个模块的 maven 项目。其中只有一个 expositionSpring Boot Application ,其他可能是内部库项目。

您需要更改您的 pom.xml 的博览会模块。 添加

<artifactId>exposition</artifactId>
<packaging>war</packaging>

这会告诉maven你想要的是war包而不是Jar。

现在您需要告诉Spring,您需要war。改变你Application类(带有@SpringBootApplicaiton注解的类,如下所示。)

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class YourSpringBootApplication extends SpringBootServletInitializer {
  public static void main(String[] args) {
    SpringApplication.run(YourSpringBootApplication.class, args);
  }
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(DemoApplication.class);
  }
}

这个SpringBootServletInitializer 将配置spring 来构建一个war. 现在运行mvn clean package 并且你的展示模块应该会产生一个战争。这是你需要部署的战争。复制战争并将其部署到tomcat。

【讨论】:

    猜你喜欢
    • 2015-10-10
    • 2014-06-02
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多