最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

maven插件maven-assembly-plugin打包歸納文件zip/tar使用

 更新時間:2024年02月20日 09:16:46   作者:老碼龍  
java項目運行的文件需要jar或者war格式,同時還需要使用Java命令,本文主要介紹了maven插件maven-assembly-plugin打包歸納文件zip/tar使用,具有一定的參考價值,感興趣的可以了解一下

前言

java項目運行的文件需要jar或者war格式,同時還需要使用Java命令。同時還可能包含一些外部的資源文件。因此要運行一個Java項目,需要多個文件配合才能啟動。因此再發(fā)布的時候,我們可以使用maven-assembly-plugin插件,將我們項目需要的所有資源打包成一個zip或者gz的壓縮包,這樣我們發(fā)布出去的項目就是一整套運行環(huán)境,我們常用的一些中間件,比如Tomcat、zookeeper等都這樣發(fā)布。下面給大家詳細(xì)介紹通過maven-assembly-plugin來制作自己的發(fā)布包。

一、使用方式

和其他插件一樣,要使用maven-assembly-plugin插件,我們在pom.xml中進行如下配置:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-assembly-plugin</artifactId>
	<version>3.4.2</version>
	<configuration>
		<descriptors>
			<descriptor>assembly/package.xml</descriptor>
		</descriptors>
	</configuration>
	<executions>
		<execution>
			<id>make-assembly</id>
			<phase>package</phase>
			<goals>
				<goal>single</goal>
			</goals>
		</execution>
	</executions>
</plugin>

二、assembly配置文件詳解

在上面的配置中descriptor標(biāo)簽引用了一個package.xml文件,這個文件也是assembly插件的解析文件,package.xml的內(nèi)容如下面所示:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    <id>win64.vm-${build.version}</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>true</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>plugins</directory>
            <outputDirectory>\plugins</outputDirectory>
            <includes>
                <include>plugin.test.dll</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>prod/jvm</directory>
            <outputDirectory>\</outputDirectory>
            <includes>
                <include>ServiceUpdate.bat</include>
            </includes>
        </fileSet>

        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory>\</outputDirectory>
            <includes>
                <include>RaspberryAgent.exe</include>
            </includes>
        </fileSet>


    </fileSets>
</assembly>

下面對assembly配置進行詳細(xì)說明

1.id

id標(biāo)簽可以指定生成的歸納文件名稱,但如果我們在插件的configuration標(biāo)簽里面加入:

<configuration>
    <appendAssemblyId>false</appendAssemblyId>
    <finalName>${build.finalName}</finalName>
    <descriptors>
        <descriptor>assembly/package.xml</descriptor>
    </descriptors>
</configuration>

這樣ID標(biāo)簽就無效,生成的歸納文件名稱由finalName來指定,當(dāng)我們?nèi)サ鬭ppendAssemblyId和finalName,那么生成的文件就由id標(biāo)簽來指定,同時descriptors標(biāo)簽下可以添加多個配置文件,因此我們可以在一次構(gòu)建時打包成多個歸納文件,這個時候就需要使用ID來指定歸納文件的名稱。

2.formats

指定歸納文件的格式,支持的格式包含:

  • zip
  • tar
  • tar.gz (or tgz)
  • tar.bz2 (or tbz2)
  • tar.snappy
  • tar.xz (or txz)
  • tar.zst (or tzst)
  • jar
  • dir
  • war

3.includeBaseDirectory

表示生成的歸納文件是否包含根目錄,如果包含解壓時會生成和文件名相同的根目錄

4.fileSet

這里是需要將哪些資源文件打包到歸納文件里面,具體使用如下:

<fileSet>
    <directory>plugins</directory>
    <outputDirectory>\plugins</outputDirectory>
    <includes>
        <include>*.dll</include>
    </includes>
</fileSet>

directory

表示源文件目錄

outputDirectory

表示打包到歸納文件后的目錄

includes、excludes

過濾作用,includes可以指定需要的文件。excludes可以排除不需要的文件??梢允褂谜齽t表達式來進行篩選配置。

5.dependencySets

這個配置可以將所有的jar文件提取出來,常見配置如下:

<dependencySets>
    <dependencySet>
        <useProjectArtifact>true</useProjectArtifact>
        <outputDirectory>lib</outputDirectory>
        <excludes>
            <exclude>
                ${groupId}:${artifactId}
            </exclude>
        </excludes>
    </dependencySet>
</dependencySets>

這樣會在歸納文件中生成一個lib目錄,里面包含了項目所依賴的所有jar文件。

useProjectArtifact

是否把本項目添加到依賴文件夾下。

outputDirectory

提取的jar依賴存放的文件夾,當(dāng)打包成歸納文件時,歸納文件就會生成一個lib的文件夾

excludes

表示要排除的依賴,上面的配置我們是排除了本項目的,這樣就不會把本項目的jar文件打入到lib目錄下,當(dāng)然我們也可以不配置excludes,而配置false也能達到同樣的效果。如果要排除其他的內(nèi)庫,配置格式: g r o u p I d : {groupId}: groupId:{artifactId}。如下配置:

<dependencySets>
  <dependencySet>
    ....
    <excludes>
      <exclude>org.apache.commons:commons-lang3</exclude>
      <exclude>org.apache.logging.log4j:log4j-1.2-api</exclude>
    </excludes>
  </dependencySet>
  ....
</dependencySets>

這樣就會把commons-lang3和log4j-1.2-api的依賴去掉

三、使用assembly打包jar文件

在assembly的配置中可以選擇jar和war格式的文件。因此assembly也可以用來進行jar打包,能實現(xiàn)maven-jar-plugin插件的功能。

如果我們只打包一個內(nèi)庫的jar文件,可以添加如下配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.4.2</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

另外我還可以使用assembly打包一個可執(zhí)行的jar文件,配置如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.4.2</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.example.testmvnpkgexespringboot.TestMvnPkgExeSpringbootApplication</mainClass>
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

注意這兩種配置方式都會將項目依賴的所有依賴都會打包到這個jar文件中,我們可以解壓打包的jar文件,內(nèi)容如下:

在這里插入圖片描述

同樣,如果我要打包可執(zhí)行的jar文件時,manifest的配置和maven-jar-plugin的配置一樣,大家可以參照我的上一篇文章【maven插件maven-jar-plugin構(gòu)建jar文件詳細(xì)使用

總結(jié)

使用assembly來打包可執(zhí)行的jar文件,目前貌似只能用于普通的Java項目,如果要打包springboot項目還有一些問題,如果要定制化springboot項目的jar文件,還是需要借助maven-jar-plugin插件,有興趣的同學(xué)可參照我的另外一篇文章:【使用maven對springboot項目進行瘦身分離jar的多種處理方案

到此這篇關(guān)于maven插件maven-assembly-plugin打包歸納文件zip/tar使用的文章就介紹到這了,更多相關(guān)maven-assembly-plugin打包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-Plus分頁的使用與注意事項

    Mybatis-Plus分頁的使用與注意事項

    分頁查詢每個人程序猿幾乎都使用過,下面這篇文章主要給大家介紹了關(guān)于Mybatis-Plus分頁的使用與注意事項的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Java中Hashtable集合的常用方法詳解

    Java中Hashtable集合的常用方法詳解

    本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Java中Hashtable集合的常用方法詳解,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。下面我們就來學(xué)習(xí)一下吧
    2021-11-11
  • 超詳細(xì)講解SpringCloud?Commons公共抽象的用法

    超詳細(xì)講解SpringCloud?Commons公共抽象的用法

    這篇文章主要介紹了超詳細(xì)講解SpringCloud?Commons公共抽象的用法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • springboot訪問請求404的原因及解決辦法

    springboot訪問請求404的原因及解決辦法

    在使用Spring Boot開發(fā)應(yīng)用程序時,有時可能會遇到訪問請求出現(xiàn)404錯誤的情況,即請求的資源未找到,這篇文章主要給大家介紹了關(guān)于springboot訪問請求404的原因及解決辦法,需要的朋友可以參考下
    2023-09-09
  • Mybatis中的resultType和resultMap使用

    Mybatis中的resultType和resultMap使用

    這篇文章主要介紹了Mybatis中的resultType和resultMap使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Android中PreferenceFragment的使用詳解

    Android中PreferenceFragment的使用詳解

    本文主要介紹了Android中PreferenceFragment的使用詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 詳解Spring 中如何控制2個bean中的初始化順序

    詳解Spring 中如何控制2個bean中的初始化順序

    本篇文章主要介紹了Spring 中如何控制2個bean中的初始化順序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java處理字節(jié)類型數(shù)據(jù)的實現(xiàn)步驟

    Java處理字節(jié)類型數(shù)據(jù)的實現(xiàn)步驟

    字節(jié)(Byte)是計算機信息技術(shù)用于計量存儲容量的一種基本單位,通常簡寫為B,在ASCII編碼中1Byte可以表示一個標(biāo)準(zhǔn)的英文字符,包括大寫字母、小寫字母、數(shù)字、標(biāo)點符號和控制字符等,本文給大家介紹了Java如何優(yōu)雅的處理字節(jié)類型數(shù)據(jù),需要的朋友可以參考下
    2024-07-07
  • 詳解Java中$符的各種使用場景

    詳解Java中$符的各種使用場景

    在Java編程中,我們會經(jīng)常看到$符的身影,比如經(jīng)常在配置文件中看到$符號作為變量占位符,用于在運行時動態(tài)地獲取變量值。本文將詳細(xì)介紹$符號在Java編程中的各種應(yīng)用場景,以幫助您更好地理解和運用這個符號,感興趣的小伙伴可以收藏一下
    2023-04-04
  • SpringBoot實現(xiàn)健康檢查的完整指南

    SpringBoot實現(xiàn)健康檢查的完整指南

    本文介紹了Spring Boot實現(xiàn)健康檢查的方法,包括使用Actuator進行應(yīng)用健康檢查,自定義健康檢查項目,搭建可視化監(jiān)控大屏和配置告警系統(tǒng),此外,還提供了實戰(zhàn)案例和避坑指南,幫助讀者更好地理解和應(yīng)用Spring Boot健康檢查功能,需要的朋友可以參考下
    2025-12-12

最新評論

交城县| 平利县| 石台县| 陵水| 丹凤县| 松江区| 普宁市| 靖宇县| 尉氏县| 乌兰浩特市| 广宗县| 二连浩特市| 贺兰县| 和林格尔县| 建始县| 囊谦县| 托克托县| 鹿泉市| 西充县| 九龙坡区| 石屏县| 滕州市| 南皮县| 雷山县| 通山县| 闽清县| 遵化市| 汉中市| 甘洛县| 兴和县| 渝北区| 香港| 黄平县| 沛县| 中江县| 顺义区| 肇源县| 团风县| 准格尔旗| 偃师市| 若尔盖县|