By default, Spring Boot repackages your JAR into an executable JAR, and it does that by putting all of your classes inside BOOT-INF/classes
, and all of the dependent libraries inside BOOT-INF/lib
. The consequence of creating this fat JAR is that you can no longer use it as a dependency for other projects.
From Custom repackage classifier:
By default, the
repackage
goal will replace the original artifact with the repackaged one. That's a sane behaviour for modules that represent an app but if your module is used as a dependency of another module, you need to provide a classifier for the repackaged one.The reason for that is that application classes are packaged in
BOOT-INF/classes
so that the dependent module cannot load a repackaged jar's classes.
If you want to keep the original main artifact in order to use it as a dependency, you can add a classifier
in the repackage
goal configuration:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.1.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
With this configuration, the Spring Boot Maven Plugin will create 2 JARs: the main one will be the same as a usual Maven project, while the second one will have the classifier appended and be the executable JAR.
相关推荐
总之,"springboot工程jar包加密"是一个关于保护Java应用安全的重要主题,通过使用工具如xjar,我们可以有效地加密jar包,防止源代码泄露,确保应用在生产环境中的安全运行。在实际操作中,应结合项目需求和安全策略...
在Spring Boot项目中,经常需要将项目打包成一个可执行的Jar文件,便于部署和分发。而Maven作为构建工具,提供了强大的自动化构建功能,能够帮助开发者轻松地实现这一目标。 #### 知识点详解 ##### 1. Maven与...
这种JAR文件包含了运行SpringBoot应用所需的所有依赖,包括Spring框架、应用代码和其他第三方库,使得用户可以直接通过`java -jar`命令运行,无需额外设置类路径或服务器环境。 描述中的重复内容暗示了SpringBoot ...
然而,在某些情况下,可能会遇到主项目(比如这里的A项目)在编译成一个独立的JAR文件后,无法正确扫描并加载来自子项目(如B项目)中的注解的情况。本文将详细介绍这一问题的原因以及如何通过调整Maven配置来解决这...
在不使用Maven的情况下,在Eclipse中...每个jar包都在Spring Boot生态中扮演着特定的角色,共同构建了一个完整的运行环境。在没有构建工具的情况下,你需要仔细跟踪和更新这些依赖,以确保项目始终与最新的版本兼容。
在IT行业中,Spring Boot是一个广泛使用的Java框架,用于简化微服务和Web应用程序的开发。它提供了内置的HTTP服务器,自动配置和其他便利特性,使得开发者能够快速构建可部署的应用程序。而Shell脚本则是Linux或Unix...
在Spring Boot应用开发中,有时候我们需要将多个独立的Spring Boot项目合并到一个单一的jar包中,以便于管理和部署。这个过程通常被称为多项目打包。本文将深入探讨如何实现Spring Boot多项目打包,并提供相关源代码...
SpringBoot 是一个基于 Spring 框架的快速开发工具,它简化了创建独立、生产级别的基于 ...理解每个 jar 包的功能和在整个 SpringBoot 生态系统中的作用至关重要,这有助于构建和维护一个稳定、可扩展的应用程序。
在 SpringBoot 中,Maven 或 Gradle 负责下载和管理所有的依赖,确保项目运行时所有必要的库都已到位。 7. **Actuator**: SpringBoot Actuator 是一个用于生产环境的增强工具,提供了一套丰富的端点来监控和管理...
在本案例中,我们关注的是非 Maven 构建的 SpringBoot jar 包,这意味着项目可能是通过 Gradle 或者手动构建的。 1. **非 Maven 构建** Maven 是一种流行的 Java 项目管理工具,用于构建、依赖管理和项目信息管理...
SSO是公司一个已经存在了若干年的项目,后端采用SpringMVC、...编码简单,SpringBoot只需要在pom文件中添加一个starter-web依赖,即可帮助开发者快速启动一个web容器,非常方便。配置简单,SpringBoot可以通过简单
在本文中,我们将深入探讨如何使用Spring Boot和Maven来构建一个项目,使得依赖和配置文件被打包到jar包外部,以实现更加灵活的项目管理。这个方法对于那些需要根据不同环境进行定制配置或者频繁更新配置的应用来说...
在IT行业中,SpringBoot是一个非常流行的Java开发框架,它简化了Spring应用的初始搭建以及开发过程。本教程将详细介绍如何使用IntelliJ IDEA (IDEA) 这款强大的集成开发环境来快速搭建一个SpringBoot项目。 1. **...
Spring Boot 项目从 JAR 到 WAR 的转换 ...将 Spring Boot 项目从 JAR 转换为 WAR 需要添加依赖项、插件和继承 SpringBootServletInitializer 三步骤。这样我们就可以将 Spring Boot 项目部署到外部服务器上去了。
在IT行业中,SpringBoot是一个非常流行的Java开发框架,它简化了Spring应用的初始搭建以及配置工作,使得开发者能够快速地创建高效、独立的运行服务。本文将深入探讨"springboot+java类热加载"这一主题,包括其核心...
Spring Boot 项目依赖 jar 失败解决方案 标题解释 本文的标题“项目依赖 Springboot jar ...本文提供了一个实用的解决方案来解决 Spring Boot 项目中的 jar 包依赖问题,对大家的学习或者工作具有一定的参考学习价值。
在上述配置中,`${spring-boot.version}</version>`应替换为你正在使用的SpringBoot版本号,确保与项目中其他依赖匹配。 3. **依赖排除**: `excludes`部分可以用来排除你不想包含在最终JAR中的依赖,例如Lombok...
下面将详细介绍如何在Spring Boot项目中集成这两个关键的Elasticsearch依赖,并探讨其工作原理。 首先,Spring Boot提供了对Elasticsearch的便捷支持,通过添加对应的起步依赖,我们可以快速地将Elasticsearch集成...
SpringBoot服务通常是一个独立的可执行jar文件,包含所有的依赖库,可以直接通过`java -jar`命令启动。每个服务都有自己的配置、端口和上下文路径,因此可以在同一台机器上并行运行,而不会相互干扰。这种设计允许...
在Spring Boot应用开发中,"项目启动找不到启动类"是一个常见的问题,这通常是由于配置不当或者编码错误导致的。Spring Boot的设计目标是简化Spring应用程序的初始设置和配置,因此一个可运行的Spring Boot应用通常...