【问题标题】:Can spring-boot-maven-plugin be used for non spring project?spring-boot-maven-plugin 可以用于非 spring 项目吗?
【发布时间】:2017-07-30 12:08:52
【问题描述】:

spring-boot-maven-plugin 的主要目标是将 Spring Boot 应用程序打包到具有所有依赖项的可执行 jar 中。可以在没有spring或spring boot的项目中使用吗?我的意思是不使用 spring 依赖项,而只是使用类加载器机制来加载依赖的 jar。

【问题讨论】:

  • 不。一旦你导入 spring boot 依赖项,它必须是一个 spring 项目。

标签: java spring-boot spring-boot-maven-plugin


【解决方案1】:

是的,你可以! 实际上,我进行了测试,我很高兴发现 spring-boot-maven-plugin repackage 完全不知道 Main 类的用途,并且在大多数情况下完全与Springframework(不幸的是文档没有提到这一点,但我猜Spring真的想要使用他们的东西)。

它基本上是 onejar plugin 的 Spring 版本(但它也将自己的 shell 脚本添加到 jar 中)。

spring-boot-maven-plugin 重新打包 (spring-boot:repackage) 本质上创建了自己的微型容器,带有一个小型加载程序,用于查找由项目打包确定的特定布局(罐子所在的位置)(即 <packaging>war</packaging> 或 @ 987654330@)。小型加载器不会加载任何 Springframework 代码

当然,您的Main 类必须知道如何启动 servlet 容器(或您计划加载的任何内容)。大多数 servlet 容器都有关于如何在嵌入式模式下运行的文档。

至于代码示例,您可以将以下内容放在<build> 部分:

        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
                <fork>true</fork>
            </configuration>
        </plugin>

然后像mvn package spring-boot:repackage 一样运行构建。 documentation for the plugin其实还不错。

【讨论】:

【解决方案2】:

我猜 Spring Boot maven 插件仅适用于 Spring 项目,以便将所有依赖项集中在一起。

如果您在识别依赖项时遇到问题,您可以简单地创建一个 Spring Boot 项目。完成后,您将获得 spring 项目中的所有库。在没有 spring 的情况下复制或导入项目中的这些库。

使用这种方法,所有依赖项的项目设置将变得更加容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-16
    • 2019-04-17
    • 2017-06-20
    • 1970-01-01
    • 2015-06-04
    • 1970-01-01
    • 2015-08-01
    • 2018-05-06
    相关资源
    最近更新 更多