【问题标题】:creating a jar file in spring boot that is using command line runners在使用命令行运行器的 Spring Boot 中创建一个 jar 文件
【发布时间】:2021-11-12 04:34:16
【问题描述】:

我有一个使用来自 spring-boot 的命令行运行器的应用程序。当我想通过

构建一个jar包时
.\mvnw package
.\mvnw clean install

它只是启动应用程序,而不是按预期构建 .jar。 我有以下插件

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>2.4.0</version>
    </plugin>
</plugins>

代码运行良好,但我需要使用 jar 文件。我怎样才能做到这一点?

【问题讨论】:

  • mvn 包将创建一个可执行的 jar,您可以在目标目录中找到它。它不会启动与 mvn install 相同的应用程序,它会创建 jar 并将其复制到本地 m2 中。
  • 它启动应用程序,在目标文件夹中只有类而不是jar文件
  • 不,它不会启动您的应用程序,您可能会看到正在运行的测试将启动上下文,但它不会启动您的应用程序。如果一切都成功,那么它会在目标目录中创建 jar。事实上你有一个 .jar 和 .jar.original
  • 只有在排除命令行运行器时才正确。

标签: java spring-boot jar


【解决方案1】:

正如JEY 所提到的,它在创建jar 文件之后在上下文加载时运行单元测试用例。您可以通过“mvn clean package -Dmaven.test.skip=true”跳过测试

【讨论】:

  • -Dmaven.test.skip 不是必须的,它用于跳过单元测试但不应该影响maven包的生命周期。
【解决方案2】:

如果你需要运行你的测试任务,你需要运行“mvn clean package”,否则运行“mvn clean package -Dmaven.test.skip=true”,jar文件在你的项目根路径'target'中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-09
    • 2018-04-14
    • 2023-03-30
    • 2013-03-29
    • 2012-06-29
    • 2015-10-15
    • 2012-04-06
    • 2021-10-13
    相关资源
    最近更新 更多