【问题标题】:Create an Spring Boot Executable jar AND a regular library jar创建一个 Spring Boot Executable jar 和一个常规库 jar
【发布时间】:2018-05-23 03:12:29
【问题描述】:

我有一个常规的 Java 项目,它创建一个 jar 文件,该文件是一个在 webapp 中使用的东西库。这是一个创建 jar 的 Spring Boot 启动器。简单的东西。

我希望能够将其作为独立的可执行 jar 文件运行。所以我编写了一个实现 CommandLineRunner 的标准 Application.java 并将其添加到我的插件中:

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

然后,我的 jar 是可执行的。

但是,该插件更改了目录结构,使其不再是常规库 jar,并且我的 web 应用程序无法在其中找到类。当我删除 pom 中的插件条目时,webapp 工作正常,但 jar 不再可执行。

两者都可以吗?如果有,怎么做?

【问题讨论】:

  • 正确的做法是将常用的东西移动到单独的 maven 项目中,并在 Spring Boot 和您的 Web 应用程序中引用它。或者,您可以使用 maven 程序集插件生成第二个 jar 工件。

标签: java spring maven jar


【解决方案1】:

在 Spring Boot 1.4.1 之前有可能,但从那以后就不行了。 1.4.1 改变了可执行jar中的目录结构。对于 1.4.1 及更高版本,jar 可以是可执行文件或库,但不能同时执行。

如果您确实需要同一个 jar 既是可执行文件又是库,则需要恢复到 Spring Boot 1.4.0 或更早版本。

【讨论】:

    猜你喜欢
    • 2015-01-14
    • 1970-01-01
    • 2016-06-05
    • 2016-11-13
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    相关资源
    最近更新 更多