SpringBoot使用Maven插件进行项目打包的方法
作者:削个橘子皮 发布时间:2022-12-21 21:07:34
SpringBoot自带Tomcat,所以我们的项目可以单独部署,不需要依赖Window、Linux系统中的服务器,所以打包出来的Jar包是可以直接运行的。Windows中直接cmd命令行模式下,cd切换到jar路径中,使用java 命令运行jart包,Linux环境也是一样的命令,如下图:
现在我们开始打包,我介绍两种方式,不管那种方式首先先在项目Pom.xml文件中引入Maven插件。
<build>
<plugins>
<!-- 设置jdk版本为1.8 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<outputDirectory>${project.build.directory}/${project.name}</outputDirectory>
<addResources>false</addResources>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<outputDirectory>
${project.build.directory}/${project.name}
</outputDirectory> <!-- 表示把配置文件拷到和jar包同一个路径下 -->
<resources>
<resource>
<directory>src/main/resources/</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources-classes</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<outputDirectory>
${project.build.directory}/classes
</outputDirectory> <!-- 表示把配置文件拷到和jar包同一个路径下 -->
<resources>
<resource>
<directory>src/main/resources/</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<compilerArguments> <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath> </compilerArguments>
如果是在Windows下面开发,${java.home}/lib/rt.jar ; ${java.home,这里中间是;号隔开,Linux中则是:号隔开,这是个很坑的地方我提一下。
第一种是IDEA 带的打包方式,快捷键Ctry+Alt+Shift+S同时按会出现下图页面
点击 + 号!!!
首先这里有几个注意的地方,MainClass选择启动类,JarFiles选择第二个,.MF文件位置请选项目的根目录位置,也就是Src的上一级目录,然后点OK,确定,然后在build。
这样就打包成功了,不过一堆jar包在你的项目classic路径下,在部署的时候必须把所有的jar放在同一个文件夹下,这是这种打包方式的缺点。
现在说第二种方式,很简单,我推荐这种方式,而且能生成单独一个Jar包,不像第一种方式生成了一堆Jar。
配置好Pom.xml之后,一定要是Jdk1.8。
在IDEA的右上角,有个Maven Project。
先点Clean,然后点package然后项目目录多了个target文件夹,里面就生成了你要的jar包了,现在就可以去部署在服务器啦。
来源:https://blog.csdn.net/wangjianguo777/article/details/82218619


猜你喜欢
- 一、匿名结构体struct{ char name[20]; int age;}s1;匿名
- Java8 移除两个相同List对象List<Data> data1 = new ArrayList<>(
- 本文实例为大家分享了C#实现温度转换功能的具体代码,供大家参考,具体内容如下界面图代码using System;using System.C
- 可能经常看面经的同学都知道,面试所遇到的排序算法,快速排序占主要位置,热度只增不减啊,其次就是归并和堆排序。其实以前写过一篇排序的文章,写的
- 前言本文主要介绍了如果通过输入年份月份输出天数的相关内容,下面话不多说了,来一起看看详细的介绍吧示例代码package com.ambow.
- 在为什么阿里巴巴不建议在for循环中使用”+”进行字符串拼接一文中,我们介绍了几种Java中字符串拼接的方式,以及优缺点。其中还有一个重要的
- 本文告诉大家简单的方法进行时间计算。实际上使用 TimeSpan 可以做到让代码比较好懂,而代码很简单。例如我使用下面的代码表示 5 秒co
- 本文实例讲述了C#实现的阴历阳历互相转化类。分享给大家供大家参考,具体如下:最近郁闷地发现网上现有的相当一部分万年历上干支纪年的算法都是错误
- 流程图 * vs过滤器 * 是SpringMVC的技术过滤器的Servlet的技术先过过滤器,过滤器过完才到DispatcherServle
- 废话不多说了,直接步入正题了。1、批量添加元素session.insert(String string,Object o)public vo
- Android 关闭多个Activity的实现方法总的来说有四种方法:1、使用Application来进行关闭public class Ap
- mybatis中的#和$的区别1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#
- 本文实例讲述了Java包装类原理与用法。分享给大家供大家参考,具体如下:产生:为了提高数据类型的的面向对象性,所以产生了包装类,包装类中有各
- Maven 多profile及指定编译要点项目A依赖项目B,项目A、B都有对应的多个profile,通过mvn –P参数指定profile,
- 一、JPype简述1.JPype是什么?JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python
- 本文实例讲述了C#使用iTextSharp将PDF转成文本的方法。分享给大家供大家参考。具体实现方法如下:using System;usin
- CountDownLatch简介CountDownLatch顾名思义,count + down + latch = 计数 + 减 + 门闩(
- json是种常用的数据传输格式,在android开发中,如何借助java语言实现对json数组对象的解析呢,请参阅下面的关键代码:impor
- 下面是利用Java实现读写文件功能的示例代码读文件TextRead.javaimport java.io.BufferedReader;im
- 给对象按照字符串属性进行排序在java中对象进行排序,排序的属性是string,我们只需要实现Comparator接口,然后实现比较的方式。