假设我有如下简单 maven 项目
点击 File ==> Project Structure ==> Artifacts ==> 点击加号 ==> 选择JAR ==> 选择From modules with dependencies
如果你想把所有项目依赖的其他库和代码打成一个 jar,可以选择extract to the target JAR
。比如如果你项目里依赖了 fastjson.jar 等第三方 jar,可以把这些第三方 jar 也打到最终生成的 jar 里面。
1.先选择你要打包的模块和启动类,然后选择extract to the target JAR ,点击ok
2.确认要生成的 jar 名称(默认是项目或模块名),确认 jar 包的输出的目录,确认最终输出的 jar 里包含的依赖(我这里包含了14个其他依赖和项目代码,如果不想包含第三方依赖可以选中相关依赖点击减号进行排除),点击 Apply 和 Ok
3 . 点击 Build ==> Build Artifacts
先点击 clear 进行清除,然后再点击 Build 进行构建,就可以打成一个jar包了
(如果不点击 clear 进行清理上次的构建,直接点击Build 进行构建的话,可能会把上次构建的东西打进去导致 jar 包变得比较大)
4.构建打包提示成功后就可以在输出目录里找到打好的 jar 包了
如果你不想把所有项目依赖的其他库和代码都打成一个 jar,可以选择copy to the output directory and link via manifest
。比如,如果你项目里依赖了 fastjson.jar 等第三方 jar,这些第三方 jar 不会被打到最终生成的jar里面,只会把这些依赖的 jar 和最终生成的 jar 输出到一个目录下。
1.先选择你要打包的模块和启动类,然后选择copy to the output directory and link via manifest ,点击ok
2.确认要生成的 jar 名称(默认是项目或模块名),确认 jar 包的输出的目录,确认项目使用到的依赖,点击 Apply 和 Ok
3.点击 Build ==> Build Artifacts
-
先点击 clear 进行清除,然后再点击 Build 进行构建,就可以打成一个 jar 包了
(如果不点击 clear 进行清理上次的构建,直接点击Build 进行构建的话,可能会把上次构建的东西打进去导致 jar 包变得比较大)
4.构建打包提示成功后就可以在输出目录里找到打好的 jar 包了,另外项目依赖的其他 jar 包也会输出到这个目录
上面的方式是使用 idea 来打包,如果你使用的是 maven 项目,你也可以使用其他插件来打包。
在 pom.xml 中的 build 标签下的 plugins 标签下加入如下配置:
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<version>2.6.0version>
<configuration>
<mainClass>com.xtool.manager.MainDemomainClass>
<finalName>XToolfinalName>
<includes>
<include>
<groupId>nothinggroupId>
<artifactId>nothingartifactId>
include>
includes>
configuration>
<executions>
<execution>
<goals>
<goal>repackagegoal>
goals>
execution>
executions>
plugin>
说明:
在 idea 右边侧边栏的 Maven 选项卡里点击 Lifecyle 下的 package 就可以开始打包了
最终生成的 jar 包就在 target 目录下
除了上面的插件可以打包,还有maven-dependency-plugin、maven-shade-plugin、maven-assembly-plugin等插件也可以打包,这里就不再介绍了,感兴趣可以看下这篇文章:How to Create an Executable JAR with Maven