打包SpringBoot -- 可执行Jar包

本文介绍了一种针对SpringCloud项目中各模块进行独立打包的方法,通过修改pom.xml文件并添加特定配置来实现,最终使得各个模块可以独立部署。

最近开始学习SpringCloud,想给项目里的模块单独打包,方便多次部署。可是在网上找了很多的解决方案,都没有操作成功的。最后查看官网的文档才找到解决方案,顺便把成功的打包方式贴出来吧。

首先,修改pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!-- ... -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.0.3.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

这里主要是添加了版本和<executions>标签。

然后,使用maven命令打包:

mvn clean package

打包完成后,就可以直接用java -jar module.jar运行了

还有一点要注意的是,Spring Boot 2以上的版本需要用到JDK8以上,低版本打包会出错。

### 打包可执行 JAR 文件 尽管 Spring Boot 提供了一种简单的方式来创建可执行JAR 文件,但在某些情况下可能需要打包一个非可执行JAR 文件。通过 Gradle 构建工具可以轻松实现这一目标。 为了构建非可执行JAR 文件,在 `build.gradle` 文件中可以通过调整插件配置以及任务设置来完成此操作。默认情况下,Spring Boot 的 Gradle 插件会自动将项目构建成可执行JAR 文件。然而,禁用该功能并生成普通的 JAR 文件是可行的[^1]。 以下是具体的解决方案: #### 修改 build.gradle 配置 在项目的 `build.gradle` 文件中,移除或禁用 Spring Boot 的特定行为以防止其生成可执行 JAR 文件。具体来说,可以通过以下方式实现: ```groovy plugins { id 'java' id 'org.springframework.boot' version '3.0.0' apply false // 禁用自动应用插件 } jar { enabled = true // 启用标准 JAR 打包任务 } ``` 上述代码片段中的关键部分在于设置了 `enabled = true` 来启用标准的 JAR 任务,并且显式地关闭了 Spring Boot 自动应用的功能 (`apply false`)。这样能够确保最终产物是一个不带启动脚本或其他附加元数据的纯 JAR 文件[^2]。 #### 调整依赖范围 如果仅需发布库而不需要运行时支持,则应考虑更改依赖关系声明的方式。例如,对于测试环境下的依赖项,应该标记为 `testImplementation` 或者其他类似的限定词;而对于那些只用于编译阶段而非实际部署场景里的组件则设成 `compileOnly` 类型。 另外需要注意的是,当切换至生产模式下进行分发前,请务必确认所有必要的第三方模块均已正确引入到最终制品当中去[^3]。 ```groovy dependencies { implementation 'org.springframework:spring-core' testImplementation 'junit:junit:4.13.2' compileOnly 'javax.servlet:javax.servlet-api:4.0.1' } ``` 以上展示了如何定义不同类型的需求集合以便更好地管理整个工程结构及其关联资源。 ### 结论 综上所述,虽然 Spring Boot 默认倾向于制作自容式的应用程序容器形式即所谓的“fat jar”,但我们仍然有能力定制化自己的构建流程从而得到传统意义上的不可执行版本档案文件——只需合理配置好对应的构建描述文档(build script),就能满足相应需求[^1]^。 ```python print("成功生成非可执行JAR") ``` 相关问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值