springboot-33-使用maven打瘦包
直接使用maven的插件打包的话, 打出来一个jar, 会非常大, 有时候在服务上传的时候会非常不方便,
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定SpringBoot程序的main函数入口类 -->
<mainClass>com.letv.bigdata.idfa.Main</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
因此需要打出来的jar包不带以来, 依赖防止在lib目录下, 配置文件放在config目录下
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<mainClass>com.letv.bigdata.idfa.Main</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>../libs/</classpathPrefix>
</manifest>
<manifestEntries>
<!--<Class-Path>./</Class-Path>-->
<Class-Path>../config</Class-Path>
</manifestEntries>
</archive>
<excludes>
<exclude>application*.yml</exclude> //指定打包时要排除的文件,支持正则
</excludes>
</configuration>
</plugin> <!--拷贝依赖jar到指定的目录-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<!--<version>2.2</version>-->
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/libs</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.</version>
<configuration>
<descriptors>
<descriptor>${project.basedir}/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-package</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
使用的assembly放在项目根目录下, 和src一个级别
aseembly.xml
<?xml version="1.0" encoding="UTF-8"?>
<assembly>
<!-- 最终生成的包名称为artifactId-version-id.format,
id主要用来区分包是由哪个assembly文件生成的,本例中
artifactId:test
version:1.0.
id:bin
format:tar.gz
最终将会在target文件夹下生成一个名为test-1.0.-bin.tar.gz的包 -->
<id>bin</id>
<!-- zip, tar, tar.gz, tar.bz2, jar, dir, war 也是支持的 -->
<formats>
<!-- 可以同时打多种格式的包 -->
<format>tar.gz</format>
<!-- <format>zip</format> -->
</formats>
<!-- 默认值是true,此时将创建一个名为artifactId-version的根文件夹,
所有outputDirectory标签指定的路径将变为相对于该文件夹的路径。
例如:outputDirectoryS的值为/test,则最终径为/artifactId-version/test
如果includeBaseDirectory的值是false,则最终路径为/test -->
<includeBaseDirectory>true</includeBaseDirectory> <dependencySets>
<dependencySet>
<!-- true是默认值,本次构建出来的jar包属于当前这个dependencySet,
此时jar包将会被添加至新的tar.gz包中 -->
<useProjectArtifact>true</useProjectArtifact>
<outputDirectory>/libs</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets> <fileSets>
<!-- 如果存在fileSet标签,并且在标签中没有使用includes标签指定打入包中的文件,
默认情况下,工程中的所有文件(源文件、编译后产生的.class文件、配置文件等)
都会被打入包中 -->
<fileSet>
<directory>${project.basedir}/src/main/resources</directory>
<outputDirectory>/config</outputDirectory>
<includes>
<include>**/*.*</include>
</includes>
</fileSet>
<!--
<fileSet>
<directory>${project.basedir}/dic</directory>
<outputDirectory>/dic</outputDirectory>
<includes>
<include>*</include>
</includes>
</fileSet>
-->
<fileSet>
<directory>${project.basedir}/script</directory>
<outputDirectory>/bin</outputDirectory>
<includes>
<include>*</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.basedir}/logs</directory>
<outputDirectory>/logs</outputDirectory>
<includes>
<include>*</include>
</includes>
</fileSet> </fileSets> </assembly>
这样打出来的是tar.gz包, 执行脚本放在bin目录下(http://www.cnblogs.com/wenbronk/p/9021542.html), conf目录下放application.yml文件等, lib目录下放所有的jar包
springboot-33-使用maven打瘦包的更多相关文章
- springboot项目用maven打jar包
clean package -Dmaven.test.skip=true idea eclipse STS
- JAVA生成(可执行)Jar包的全面详解说明 [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]
辛苦所得,转载还请注明: https://www.cnblogs.com/applerosa/p/9739007.html 得空整理了关于java 开发中,所有打包方式的 一个操作方法, 有基于ID ...
- 搭建SpringBoot+dubbo+zookeeper+maven框架(二)
上一篇文章是关于搭建SpringBoot+dubbo+zookeeper+maven框架的,但是里面的功能还不够完善,今天就日志管理方面做一些改善. 下了demo的网友可能会发现项目在启动时会有警告: ...
- 搭建SpringBoot+dubbo+zookeeper+maven框架(一)
这几天项目还没来,所以就自己试着参考网上的一些资料,搭建了一个SpringBoot+dubbo+zookeeper+maven框架,网上参考的很多资料照着他们一步一步搭建,最后很多都运行不通,很是郁闷 ...
- java服务安装(一):使用java service wrapper及maven打zip包
目录(?)[+] 1概述 1_1为什么要用服务形式运行 1_2如何让java程序以服务形式运行 1_3打包需求 2程序示例 3maven打zip包 3_1maven-assembly-plugin介绍 ...
- Springboot 创建的maven获取resource资源下的文件的两种方式
Springboot 创建的maven项目 打包后获取resource下的资源文件的两种方式: 资源目录: resources/config/wordFileXml/wordFileRecord.xm ...
- maven2 com.jhlabs.imaging 01012005 maven安装jar包imaging命令
com.jhlabs:imaging:jar:01012005 所在仓库+captcha验证码maven依赖 maven 安装jar包 到本地仓库 命令maven 3.0安装jar包 到本地仓库 co ...
- Maven开发基础总结(Maven自启动,Maven打war包,Maven热部署)
学习内容: 1.不依赖外部Tomcat,自己启动方式部署 2.Maven打war包,远程部署到centOS 3.Maven热部署(不关闭Tomcat部署应用) 做maven开发前提: 1.编码UT ...
- maven添加jar包依赖
maven的东西使用了一段时间,但是每次使用都多少有点含糊,所以总结一下. 目前主要使用是在jar包的控制上 原理: 在本地,指定一个文件夹,便是maven的仓库,maven会从远程的中央仓库中下载你 ...
随机推荐
- (转)php语法(符号用法)
转自:http://blog.unvs.cn/archives/php-equal-bracket.html 学习PHP过程中,会常碰到一些特殊的符号,比如:=.==.===.->.=>. ...
- (转)使用 vs.php 调试PHP
转自:http://www.jb51.net/article/24618.htm 早先在asp横行的年代,php和asp一样,大都都是html中夹杂代码,说实话,这时候IDE的确用处不是很大,倒是 ...
- WMS和WMTS的区别
- centos修改主机名命令
centos修改主机名命令 需要修改两处:一处是/etc/sysconfig/network,另一处是/etc/hosts,只修改任一处会导致系统启动异常.首先切换到root用户. vi / ...
- noip第1课作业
1. 求三个数的乘积和三次方和 [问题描述] 编程实现输入任意三个整数a, b, c,将这三个数的乘积以及三次方和输出: [样例输入] 1 2 3 [样例输出] 6 36 #include &l ...
- The Seven Percent Solution
Problem Description Uniform Resource Identifiers (or URIs) are strings like http://icpc.baylor.edu/i ...
- android sqlite select count
用sqlite 查数据多次都没有成功,原来是sql语句不对. 正确的示例如下: select count(*) as mycount from kehu
- Flume source 支持的type类型
Flume是一个分布式的高可用的消费组件.通过修改配置文件,可以启动不同的agent处理不同来源的数据. agent包含source,channel,sink三个组件.今天我们学习下source的ty ...
- VBA 代码
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA& ...
- AJPFX平台讲述买卖、点差、单位,外汇的交易时间以及外汇交易者的参与者
AJPFX平台讲解:买(多).卖(空).点差.单位 外汇保交易也就是通过外汇的升值和贬值来赚取利润.以EURUSD(欧元/美元)为例.假设目前价格为1.3820左右,即1欧元兑换1.3820美元.这个 ...