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包以简单的一 ...
随机推荐
-
dos命令
一 .常用命令 1 dir无参数:查看当前所在目录的文件和文件夹./s:查看当前目录已经其所有子目录的文件和文件夹./a:查看包括隐含文件的所有文件./ah:只显示出隐含文件./w:以紧凑方式(一行显 ...
-
[AJAX系列]XMLHttpResponse对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
-
opencv中的.at方法
opencv中的.at方法是用来获取图像像素值得函数: interpolation:差值 histogram:直方图
-
制作动画平滑过渡效果:《CSS3 Transition》
W3C标准中对css3的transition这是样描述的:“css的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发, ...
-
【Todo】秒杀系统材料
秒杀系统:Link <一个经验证可落地的秒杀系统实践思路> 主要依赖于Redis进行处理. http://geek.csdn.net/news/detail/59847 淘宝大秒系统设 ...
-
第14章 命令模式(Command Pattern)
原文 第14章 命令模式(Command Pattern) 命令模式(Command Pattern) 概述 在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”.但在某些场合,比如 ...
-
yii2过滤器(filter)
一.VerbFilter VerbFilter检查请求动作的HTTP请求方式是否允许执行, 如果不允许,会抛出HTTP 异常 use yii\filters\VerbFilter; public fu ...
-
Mina - 模拟同步请求
这篇博客主要就铺代码吧,Mina的一些基础知识可以参考: http://www.cnblogs.com/huangfox/p/3458272.html 场景假设: 1.客户端发送用户信息,服务端根据用 ...
-
[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础
关于管道 Channel Channel 用来同步并发执行的函数并提供它们某种传值交流的机制. Channel 的一些特性:通过 channel 传递的元素类型.容器(或缓冲区)和 传递的方向由“&l ...
-
js小例子之二级联动
联动原理 当用户点击省级的下拉选项,选择所在省,下一个下拉选项里的选项,则变成用户选择省下的所有市的信息,不会出现其它省市的信息. 省市数据 把省市数据,保存在js文件中,以json形式保存,以便读取 ...