zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Spring阶段性学习:基础、配置解析、回调
    谈谈Spring对于@Configuration的Cglib代理
    IDEA使用Docker插件部署jar
    实用的IDEA插件
    Alibaba Cloud Toolkit插件部署jar
    谈谈Spring的ImportSelector和ImportBeanDefinitionRegistrar
    谈谈Spring的ConfigurationClassPostProcessor
    Mariadb使用总结
    分布式开放消息系统(RocketMQ)的原理与实践
    redis学习笔记
  • 原文地址:https://www.cnblogs.com/runnerjack/p/9461211.html
Copyright © 2011-2022 走看看