Maven微服务(多模块)打jar包之maven-assembly-plugin配
置详解(⼆)
⼀、maven-assembly-plugin插件介绍
Assembly 插件的主要作⽤是,允许⽤户将项⽬输出与它的依赖项、模块、站点⽂档、和其他⽂件⼀起组装成⼀个可分发的归档⽂件,简单
的说,就是⾃定义打包的⼯具,有⾃⼰的配置⽂件(Assembly描述符⽂件)。微服务使⽤这个插件的概率⽐较⾼,平时普通的项⽬不需要
这样的实现⽅式。
使⽤此插件有两个步骤:
第1步骤:l⽂件⾥配置maven-assembly-plugin,指定描述⽂件
第2步骤:引⼊Assembly描述符⽂件。配置Assembly描述符⽂件信息,如下:
xml version="1.0" encoding="utf-8">
<assembly
xmlns="/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/plugins/maven-assembly-plugin/assembly/1.1.2 /xsd/assembly-1.1.2.xsd">
<!-- id 标识符,添加到⽣成⽂件名称的后缀符-->
<id>${project.version}</id>
<!-- 指定打包格式。maven-assembly-plugin插件⽀持的打包格式有zip、tar、 (or tgz)、tar.bz2 (or tbz2)、jar、dir、war,可以同时指定多个打包格式 -->
<formats>
<format>jar</format>
</formats>
<!-- 指定打的包是否包含打包层⽬录(⽐如finalName是terminal-dispatch,当值为true,所有⽂件被放在包内的terminal-dispatch⽬录下,否则直接放在包的根⽬录 <includeBaseDirectory>true</includeBaseDirectory>
<!-- 指定将⼯程依赖的包打到包⾥的指定⽬录下 -->
<dependencySets>
<dependencySet>
<useProjectArtifact>true</useProjectArtifact> <!-- 指定打包时是否包含⼯程⾃⾝⽣成的jar包 -->
<outputDirectory>lib</outputDirectory> <!-- 指定将这些依赖包打到包⾥lib⽬录下 -->
<scope>runtime</scope> <!-- ⽤于管理依赖的部署,runtime表⽰只在运⾏时使⽤ -->
</dependencySet>
</dependencySets>
<!-- 指定要包含的⽂件集,可以定义多个fileSet -->
<fileSets>
<fileSet>
<directory>src/main/java</directory> <!-- 指定要打成jar包的⽬录(下的⽂件及⽂件夹) -->
<outputDirectory>bin</outputDirectory> <!-- 指定要将当前⽬录(<directory>标签中的⽬录放在归档⽂件(要打的jar包)bin⽬录下) -->
<includes>
<include>dao</include> <!-- 精确控制要包含的⽂件,<exclude>⽤于精确控制要排除的⽂件 -->
<include>server</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>conf</outputDirectory>
<includes>
<include>config.properties</include>
<include&l</include>
</includes>
</fileSet>
</fileSets>
</assembly>
⼆、实战
项⽬路径:
添加依赖
⽗级:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
</plugin>
⼦级:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- 打包的⽂件名称是否包含Assembly描述符⽂件的id -->
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/l</descriptor> </descriptors>
</configuration>
<executions>
<execution>
<id>dist</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Assembly描述符⽂件路径
Assembly描述符⽂件配置
<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="/plugins/maven-assembly-plugin/assembly/1.1.3" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="maven.
<formats>
<format>zip</format>
</formats>
maven打包本地jar包<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>src/main/java</directory>
<outputDirectory>bin/</outputDirectory>
</fileSet>
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>bin/</outputDirectory>
</fileSet>
</fileSets>
<dependencySets>
<dependencySet>
<outputDirectory>lib/</outputDirectory>
<scope>runtime</scope>
<excludes>
<exclude>${groupId}:${artifactId}</exclude>
</excludes>
</dependencySet>
</dependencySets>
</assembly>
执⾏maven打包,target⽣成zip⽂件,如下图:
解压缩⽬录:
以上打包⽅法的主要作⽤是⽣成微服务admin运⾏所需要的jar⽂件,下⼀篇继续学习整合springboot微服务模块maven打包整合终结篇。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论