springboot打成jar包和war包的两种方式,并引入第三方jar包!
springboot打成jar包和war包的两种方式,并引入第三方jar包!
首先把需要引入的第三方jar包引入到本地项目中,在引用的模块下加一个lib文件夹
一、打成jar包
1.修改pom文件里的打包方式
<packaging>jar</packaging>
2.引入第三方依赖包
<!--本地sdk的第三方包-->
<dependency>
<groupId>com.alipay</groupId>
<artifactId>alipay-sdk-java-DEV20171211110402</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/alipay-sdk-java-DEV20171211110402.jar</systemPath>
</dependency>
3..修改pom文件中的build
<build>
<defaultGoal>clean package</defaultGoal>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
<includeSystemScope>true</includeSystemScope><!--把第三方jar包打包进来-->
<mainClass>com.bosssoft.MpayMercPlatformWebApplication</mainClass><!--主程序启动类-->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!-- 可以把依赖的包都打包到生成的Jar包中 -->
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
二、打成war包
1.修改pom文件的打包方式
<packaging>jar</packaging>
2.排除内嵌的tomact
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--排除内嵌的tomcat,打成war包时开启,开发使用时需要注释掉-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3.修改主程序启动类
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class MpayMercPlatformWebApplication extends SpringBootServletInitializer {
/**
* 工程打成war需要继承SpringBootServletInitializer,重写configure方法
* @param application
* @return
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MpayMercPlatformWebApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MpayMercPlatformWebApplication.class, args);
}
}
4.修改build文件,添加plgin插件
<!--打成war包时开启-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!--<resourceEncoding>UTF-8</resourceEncoding>-->
<!-- 释放将项目的类文件打成jar放到lib目录中。 打成jar的好处是:只修改class时,可以只更新jar。<archive></archive> -->
<attachClasses>true</attachClasses><!-- 把class打包jar作为附件 -->
<archiveClasses>true</archiveClasses><!-- 把class打包jar -->
<webResources>
<resource>
<directory>src/main/resources</directory>
<targetPath>WEB-INF/classes</targetPath>
<excludes>
<exclude>**/*.class</exclude>
</excludes>
</resource>
<!--引入第三方包-->
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
<packagingExcludes>
WEB-INF/lib/*-classes.jar
</packagingExcludes>
</configuration>
</plugin>
springboot打成jar包和war包的两种方式,并引入第三方jar包!的更多相关文章
- SpringBoot集成Mybatis实现多表查询的两种方式(基于xml)
下面将在用户和账户进行一对一查询的基础上进行介绍SpringBoot集成Mybatis实现多表查询的基于xml的两种方式. 首先我们先创建两个数据库表,分别是user用户表和account账户表 ...
- 手机App测试如何获取包名的入口【两种方式】
在进行手机APP测试的时候经常要获取包名.那么何为包名呢?简单来说其实就是手机APP的安装apk文件的名称,每个手机APP(软件)的包名都是唯一的. 那么我们怎样来获取包名以及包名的入口呢? 方法一: ...
- laravel扩展包服务提供者的注册的两种方式
一. 包自动发现 在 Laravel 应用的配置文件 config/app.php 中,providers 配置项定义了一个会被 Laravel 加载的服务提供者列表.当安装完新的扩展包后,在老版本中 ...
- springboot整合mybatis的两种方式
https://blog.csdn.net/qq_32719003/article/details/72123917 springboot通过java bean集成通用mapper的两种方式 前言:公 ...
- java中调用本地动态链接库(*.DLL)的两种方式详解和not found library、打包成jar,war包dll无法加载等等问题解决办法
我们经常会遇到需要java调用c++的案例,这里就java调用DLL本地动态链接库两种方式,和加载过程中遇到的问题进行详细介绍 1.通过System.loadLibrary("dll名称,不 ...
- SpringBoot快速引入第三方jar包
工作中,我们常会用到第三方jar包,而这些jar包往往在maven仓库是搜不到的,下面推荐一种简单.快速的引入第三方依赖的方法: 比如第三方jar包在lib文件夹下,对pom.xml的配置如下: &l ...
- maven生成war包的两种方式
war包即对WEB应用程序进行打包,用于应用容器的部署.如在jboss中只要把war包丢入deploy目录下即可发布自己的应用了.打包方式有很多中,很多工具本身就支持此功能.下面主要介绍通过maven ...
- Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式
转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFES ...
- java打jar包和运行jar包的两种方式
java打jar包和运行jar包的两种方式更详细的打包方式请参考https://www.cnblogs.com/mq0036/p/8566427.html 一.java类不依赖第三方jar包以简单的一 ...
随机推荐
- %s 表示格式化一个对象为字符
比如: name=“good” print('%s'%name)会打印出good print('%3s'%name) 会打印出good,当%和s之间的数字,小于字符串长度时,实际打印出字符串的长度 ...
- 乔悟空-CTF-i春秋-Misc-爆破3
hehe,第一次用这个,开始CTF刷题之旅 2020.09.02 题目地址 学习 题目分析 下边是题目给的php源码,意思就是进行源码审计,分析出能输出flag的条件. 这东西我是真小白,so,积累经 ...
- MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解
文章出处:https://www.souyunku.com/2018/07/30/mysql/?utm_source=tuicool&utm_medium=referral MySQL/Inn ...
- Scala的lazy应用
如果将一个变量声明为lazy,则只有在第一次使用该变量时,变量对应的表达式才会起作用. 例如:对于特别耗时的的计算操作特别有用,如打开文件IO,网络IO等. import scala.io.Sourc ...
- python的循环结构
遍历循环 计数循环(N次)/(特定次)/字符串遍历循环 列表遍历循环/文件遍历循环......字典遍历循环等等 例子--计数循环 输出从1到6的整数,以2为步长 字符串遍历循环 列表遍历循环 文件遍历 ...
- netty之pipeline
转载自https://blog.csdn.net/zxhoo/article/details/17264263 Netty4学习笔记(1)-- ChannelPipeline Netty4Netty是 ...
- 代码检查工具 Sonar 安装&使用
本文主要说明Sonar的安装方式并附上依赖安装包,本文目标只实现本地搭建测试的Sonar环境,以及本地的测试项目的非定制化扫描 本机测试环境:Win10-X64,.vs2017 依赖包: 1 ...
- 容器云平台No.6~企业级分布式存储Ceph
简介 ceph作为一个统一的分布式存储系统,提供了高性能,高可用性,高扩展性.ceph的统一体现在其可以提供文件系统.块存储.对象存储,在云环境中,通常采用ceph作为后端存储来保证数据的高可用性. ...
- 面试的加分项:懂点 Nginx 反向代理与负载均衡
学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等.用一句别人开玩笑的话来说,java十年前的技术现在还能用,而前端的技术就不是这样的了 突然想起了d ...
- PHP代码审计学习(1)
全局变量与超全局变量 $GLOBALS $GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问,$GLOBALS 是一个包含了全部变量的全局组合数组.变量的名字就是数 ...