IDEA打jar包

一、打包方式介绍

idea实际上只有一种打包方式,但是springboot自带打包插件。所以对于springboot的项目有两种打包方式,一种是idea自带打包方式,另一种springboot插件打包方式。在我们的项目中,推荐使用springboot的打包方式。

两种打包也有不少差异,主要体现在两个方面。一是打包操作不一样。另一种是组包的结构目录不一样。下面介绍一下idea自带打包和springboot打包具体操作。

二、idea自带打包(不推荐!坑很多!!!若是普通maven工程,请使用五中的方法进行打包)

1、打开Idea的file->Project Structure,进入项目配置页面,如下图

 

 

 

2、点击Artifacts,进入Artifacts配置页面,点击 + ,选择如下图的选项。

 

 

3、进入Create JAR from Modules页面,按照如下图配置。

 

 

 

4、删除打成包的依赖jar包

 

 

5、创建jar包,回到IDEA,点击Build->Build Artifacts,选择build。

 

 

6、jar包在out目录下

 

 坑:当jar包根目录下的文件过多时,jar包在运行时可能会报找不到主类!!!

解决办法:将依赖的jar包放进文件夹中(减少根目录下的文件数),完美解决!!!

 

三、springboot打包(推荐,只适用于springboot项目

说明:如果要用springboot打包方式,在pom文件中不要加任务其他打包插件。只要留springboot打包插件,如下面,其他打包插件统统不要,如果加上其他打包插件会导致打的包不能正常使用,因为打包机制不一样,打出来的包不伦不类。第四节介绍两种打包后包的组织结构。

 

 

1、点击Help->FindAction

 

 

2、查找maven->点击MavenProject

 

 

 

3、点击package

 

 

4、找到jar包所在位置

 

 

四、两种打包目录结构介绍

1、 idea自带打包jar包目录结构。结构目录较多,但是一定有META-INF目录。

 

 

2、 springboot打包jar包目录结构。springboot打出的包永远只有这三个层级目录。

 

五、普通maven打包

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>

<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<addClasspath>true</addClasspath>
     //主函数入口
<mainClass>service.ba.exchange.receiver.DataReceiver</mainClass>
</manifest>
</archive>
</configuration>

<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

 

posted @ 2018-08-11 21:41  Runner_Jack  阅读(697)  评论(0编辑  收藏  举报