IDEA+gradle将springBoot项目打可运行的Jar包

IDEA+gradle将springBoot项目打可运行的Jar包

IDEA也是最近才使用,之前一直用Eclipse
gradle也是最近在使用,之前一直用maven
刚使用新的工具总和初学者一样会遇到一些问题,就像是打包这个小事,之前用eclipse+maven特别简单,换了新的IDEA+Gradle各种不适应,打不出可以运行的jar包。去网上找了很我文章不是版本对不上就是说的不透彻;
本文用的是IntelliJ IDEA 2018.2.5 x64。废话有点多,接下来开始干活。

首先你要有SpringBoot或是SpringCloud项目

又是废话,看这篇文章的人基本上都是有项目打不出包的,那就不说创建项目的过程了。
我用的是一个SpringCloud的demo项目。

拿其中一个项目打包做例子hpt-sso,hpt-sso引用了hpt-base,打包时我会把hpt-base.jar也打进去。
步骤:

  1. 使用快捷键盘ctrl+shift+alt+s ,打开打包的界面。

  2. 点击Artifacts,再点击加号(+);点击JAR,选择From modules with dependencies…
    在这里插入图片描述在这里插入图片描述

  3. 选择Module,就是你要打包成jar的项目,选择MainClass,就是你JAR中要运行的Main方法,JAR files from libraries我选择第2项copy to the output directory and link via manifest,因为我添加依赖包的目录,依赖包在jar包的外面(lib目录与hpt-sso.jar同级);选择META-INF/MANIFEST.ME的目录,该目录下不能有META-INF/MANIFEST.ME,如果有就删除掉,不然已存在会创建失败;最后点击OK
    在这里插入图片描述

  4. 点开“Available Elements”中你要打包的项目,右击中你的项目名_main,点击Put into Output Root在这里插入图片描述在这里插入图片描述
    这时我们看到
    “hpt-base_main”,这是引用项目的(没有引用项目的没这个),因为我等下要引用htp-base.jar这里我可以先把它删除掉,不然等下可能把引用项目的class文件也打包进来了,这样hpt-base.jar和hpt-base下的所有class并存没必要。
    “hpt-sso_main”,这是hpt-sso项目的所有class文件,这肯定要保留
    除此之外还有很多我们要打包项目所依赖的第三方JAR包。

  5. 接下来我们在output root下创建一个lib文件夹,然后把所有jar包放到lib下,移动lib的时候可以用shift多选lib,然后用右键拖到lib目录下(注:左键只能拖一个),不要把我们的主jar包也放进去,hpt-sso.jar要跟lib同级;
    在这里插入图片描述

  6. 引用项目的包:如果有引用项目,可以添加引用项目的包,比如hpt-base.jar这个包是我之前像这篇文章一样创建好的,我们可以在右边的Artifacts中选择,双击就到左边来了,一样别忘了拖到lib目录下。(没有引用项目这步就可以省略了)在这里插入图片描述

  7. 添加配置文件,右击你要最终打包的jar名(hpt-sso.jar) -> +Add Copy of -> Directory Content,打开新窗口在这里插入图片描述
    选择项目中的配置文件目录(resources),点击OK
    在这里插入图片描述
    最终我们得到一个如下结构的目录
    在这里插入图片描述

  8. 编辑Class Path,将lib下的引用包放到Edit Classpath中,别忘记在包前加上lib/。如果引用jar包较多可以shift选中lib下的所有包复制到记事本或其它编辑器中编辑完再粘贴到Edit Classpath框中。我使用的是Excel编辑的。最后点击OK就完成了所有jar包打包的准备工作。
    在这里插入图片描述

  9. 打包 使用Build–>Build Artifacts,选择你要build的jar点击build,打包完成去输出目录下查看结果输出目录在
    在这里插入图片描述
    查看目录结构,lib下有我们所有的引用jar包;
    在这里插入图片描述
    用解压工具打开htp-sso.jar查看目录结构:正常,配置文件application.yml也存在;

在这里插入图片描述

查看META-IN\MANIFEST.MF内容,都正常,这样打包就成功了。在这里插入图片描述
12. 运行 用cmd命令,进入jar包所在目录,执行命令:java -jar xxx.jar,项目运行成功。在这里插入图片描述
最后:IDEA+GRADLE打个可运行的jar包挺麻烦的。
再最后:整体结束,形成一篇文章好累啊。
再再最后:一遍操作成功,后面再操作就简单了,这个打包自由配置度很灵活,能打出自己想要的jar包中的内容,付出的代价就是复杂点,要自己配置。
最后一个最后:如果idea能有个默认的傻瓜一键打jar包就好了,再有这个灵活配置,二者并存,完美。


此文写了有半年了,是初学时的打包痛点。
傻瓜一键打jar就是bootJar这个插件。很简单。祝大家学习愉快。

<think>嗯,用户想了解如何将Spring Boot项目打包JAR文件在Windows本地运行。首先,我需要回想一下SpringBoot打包流程。根据之前的引用内容,用户可能遇到了打包后没有主清单属性或者生成多个JAR的问题。记得Maven和Gradle有不同的插件配置,用户可能用的是Maven,因为引用里提到了Maven的插件。第一步应该确认项目结构是否正确,比如是否有主类,且使用了@SpringBootApplication注解。然后检查pom.xml中的打包插件是否正确配置,特别是spring-boot-maven-plugin,这个插件负责生成可执行的JAR。用户可能在打包时生成了.original文件,这时候需要确认是否使用了正确的插件,因为标准Maven插件生成的JAR含依赖,而Spring Boot插件生成的含依赖。接下来,用户需要在Windows环境下运行JAR,可能需要指导他们使用命令行,比如java-jar命令。同时,如果出现没有主清单属性的错误,应该检查MANIFEST.MF文件是否含Main-Class信息,这时候可能需要重新配置插件或者清理Maven缓存。 用户可能还遇到依赖问题,比如打包时缺少某些依赖,这时候需要确认pom.xml中的依赖是否正确,且资源插件版本是否兼容。例如引用3中提到需要添加maven-resources-plugin的特定版本,这可能解决资源过滤的问题。另外,用户可能在打包步骤中漏掉了清理或重新打包的步骤,比如需要先执行mvnclean再执行mvn package,以确保没有旧的构建文件影响。此外,运行时的环境问题,比如Java版本是否匹配,也是需要考虑的。最后,用户可能需要常见问题的解决方法,比如处理依赖冲突或配置文件路径错误。这时候应该提醒他们检查日志,定位具体错误,参考官方文档或社区解决方案。需要确保回答结构清晰,步骤明确,覆盖从配置到打包再到运行的整个流程,针对常见问题给出解决方案,帮助用户顺利完成本地运行。</think>### 如何将Spring Boot项目打包JAR文件在Windows本地运行 #### 一、环境准备 1. 确保已安装以下工具: - **Java JDK 8+**(推荐JDK 11/17) - **Maven 3.6+**(或Gradle) - **IDE**(如IntelliJ IDEA或Eclipse) 2. 验证环境配置: ```bash java -version mvn -v ``` #### 二、项目配置 1. **确认主类存在** 主类需添加`@SpringBootApplication`注解,例如: ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 2. **配置Maven插件** 在`pom.xml`中必须含`spring-boot-maven-plugin`(否则生成不可执行的`.original`文件): ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.7.0</version> <!-- 与Spring Boot版本一致 --> </plugin> </plugins> </build> ``` #### 三、打包与运行步骤 1. **清理打包项目** 在项目根目录执行: ```bash mvn clean package ``` - 成功后会生成`target/项目名.jar`(可执行JAR)和`项目名.original`(仅项目代码)[^1] 2. **运行JAR文件** ```bash java -jar target/项目名.jar ``` - 若控制台显示`Started Application in X seconds`表示运行成功 #### 四、常见问题解决 1. **报错“没有主清单属性”** - **原因**:未正确配置`spring-boot-maven-plugin`或插件版本冲突[^2] - **解决方案**: - 检查`pom.xml`插件配置 - 清理Maven缓存:`mvn clean install -U` 2. **依赖缺失导致打包失败** - **原因**:资源过滤插件未正确配置[^3] - **解决方案**:在`pom.xml`中添加: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.0</version> </plugin> ``` #### 五、Windows本地运行优化 1. **后台运行** ```bash javaw -jar 项目名.jar ``` 2. **指定配置文件** ```bash java -jar 项目名.jar --spring.profiles.active=dev ```
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值