直接使用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打瘦包的更多相关文章

  1. springboot项目用maven打jar包

    clean package -Dmaven.test.skip=true idea eclipse STS

  2. JAVA生成(可执行)Jar包的全面详解说明 [打包][SpringBoot][Eclipse][IDEA][Maven][Gradle][分离][可执行]

    辛苦所得,转载还请注明: https://www.cnblogs.com/applerosa/p/9739007.html  得空整理了关于java 开发中,所有打包方式的 一个操作方法, 有基于ID ...

  3. 搭建SpringBoot+dubbo+zookeeper+maven框架(二)

    上一篇文章是关于搭建SpringBoot+dubbo+zookeeper+maven框架的,但是里面的功能还不够完善,今天就日志管理方面做一些改善. 下了demo的网友可能会发现项目在启动时会有警告: ...

  4. 搭建SpringBoot+dubbo+zookeeper+maven框架(一)

    这几天项目还没来,所以就自己试着参考网上的一些资料,搭建了一个SpringBoot+dubbo+zookeeper+maven框架,网上参考的很多资料照着他们一步一步搭建,最后很多都运行不通,很是郁闷 ...

  5. java服务安装(一):使用java service wrapper及maven打zip包

    目录(?)[+] 1概述 1_1为什么要用服务形式运行 1_2如何让java程序以服务形式运行 1_3打包需求 2程序示例 3maven打zip包 3_1maven-assembly-plugin介绍 ...

  6. Springboot 创建的maven获取resource资源下的文件的两种方式

    Springboot 创建的maven项目 打包后获取resource下的资源文件的两种方式: 资源目录: resources/config/wordFileXml/wordFileRecord.xm ...

  7. maven2 com.jhlabs.imaging 01012005 maven安装jar包imaging命令

    com.jhlabs:imaging:jar:01012005 所在仓库+captcha验证码maven依赖 maven 安装jar包 到本地仓库 命令maven 3.0安装jar包 到本地仓库 co ...

  8. Maven开发基础总结(Maven自启动,Maven打war包,Maven热部署)

    学习内容: 1.不依赖外部Tomcat,自己启动方式部署 2.Maven打war包,远程部署到centOS 3.Maven热部署(不关闭Tomcat部署应用)   做maven开发前提: 1.编码UT ...

  9. maven添加jar包依赖

    maven的东西使用了一段时间,但是每次使用都多少有点含糊,所以总结一下. 目前主要使用是在jar包的控制上 原理: 在本地,指定一个文件夹,便是maven的仓库,maven会从远程的中央仓库中下载你 ...

随机推荐

  1. SpringMVC随笔之——@responsebody【引用snowolf博文】

    首先说RESTful 风格是什么 :(RESTful 风格:把请求参数变成请求路径的一种风格.) OK,一句话总结完毕 @responsebody表示该方法的返回结果直接写入HTTP response ...

  2. js-图片轮播

    <!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...

  3. codeforces 475D

    题意:给定n(n<=100000)个1e9以内的数的数组a,然后最多有3*1e5的询问,对于每个询问,给定一个x,问有多少个(l<=r&&gcd(a[l],a[l+1].. ...

  4. 使用PinYin4j.jar将汉字转换为拼音

    package com.Test.util; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j ...

  5. 分形之科赫(Koch)雪花

    科赫曲线是一种分形.其形态似雪花,又称科赫雪花.雪花曲线.瑞典人科赫于1904年提出了著名的“雪花”曲线,这种曲线的作法是,从一个正三角形开始,把每条边分成三等份,然后以各边的中间长度为底边.分别向外 ...

  6. python做数据分析pandas库介绍之DataFrame基本操作

    怎样删除list中空字符? 最简单的方法:new_list = [ x for x in li if x != '' ] 这一部分主要学习pandas中基于前面两种数据结构的基本操作. 设有DataF ...

  7. .Net Mvc AutoMapper简单使用

    1.安装automapper nuget包. 2.新建一个AutoMapper配置类并实现一个静态配置方法. 方法一. using AutoMapper; using AutoMapperTest.M ...

  8. 201621123018《Java程序设计》第5周学习报告

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口.interface.implements.Comparable.Comparator. 1.2 尝试使用思维导图将这些关键 ...

  9. Django(视图 CBV、FBV)

    day67 参考:http://www.cnblogs.com/liwenzhou/articles/8305104.html CBV和FBV 我们之前写过的都是基于函数的view,就叫FBV.还可以 ...

  10. 从工程化角度讨论如何快速构建可靠React组件

    前言 React 的开发也已经有2年时间了,先从QQ的家校群,转成做互动直播,主要是花样直播这一块.切换过来的时候,业务非常繁忙,接手过来的业务比较凌乱,也没有任何组件复用可言. 为了提高开发效率,去 ...