1. 程式人生 > >Maven打jar包之maven-jar-plugin配置詳解,自動生成MANIFEST.MF檔案

Maven打jar包之maven-jar-plugin配置詳解,自動生成MANIFEST.MF檔案

一、maven-jar-plugin配置介紹

最近學習springboot多模組打jar包部署專案,用到了maven-jar-plugin外掛,好好研究一番,廢話不多說,請往下看:

maven 外掛功能:compile、package、deploy...都是在${project.build.directory }/classes 檔案路徑下,測試是在test-classes下操作,如圖:

明確了這一點方便我們理解maven打包外掛。

<plugin>  
    <groupId>org.apache.maven.plugins</groupId>  
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.2</version>
    <configuration>
        <archive>                                         <!-- 存檔 -->
          <addMavenDescriptor/>                 <!-- 新增maven 描述,就是META-INF下的maven資料夾 -->
          <compress/>                                  <!-- 壓縮 -->
          <forced/>                                      <!-- 是否強制重建存檔 -->
          <index/>                                       <!-- 建立的存檔是否包含 INDEX.LIST檔案 -->
          <manifest>                                   <!-- 配置清單(MANIFEST)-->
            <addClasspath/>                         <!-- 是否建立Class-Path清單條目-->
            <addDefaultImplementationEntries/> 
            <addDefaultSpecificationEntries/>
            <addExtensions/>
            <classpathLayoutType/>
            <classpathMavenRepositoryLayout/>
            <classpathPrefix/>                      <!-- classpath 字首 -->
            <customClasspathLayout/>
            <mainClass/>                            <!-- 程式主函式入口 -->
            <packageName/>                          <!-- 打包名稱 -->
            <useUniqueVersions/>                    <!-- 使用唯一版本 -->
          </manifest>
          <manifestEntries>                     <!-- 配置清單(MANIFEST)屬性 -->                       
            <key>value</key>
          </manifestEntries>
          <manifestFile/>                       <!-- MANIFEST 檔案位置 -->
          <manifestSections>
            <manifestSection>
              <name/>
              <manifestEntries>
                <key>value</key>
              </manifestEntries>
            <manifestSection/>
          </manifestSections>
          <pomPropertiesFile/>
        </archive>
         
        <excludes>                          <!-- 過濾掉不希望包含在jar中的檔案  --> 
            <exclude/>
        </excludes>  
        
        <includes>                          <!-- 新增檔案到jar中的檔案  --> 
            <include/>
        </includes>
    </configuration>  
</plugin>

有興趣的可以去官網補充一下,我列了一些可能用到的

二、實戰

本外掛用於指定本專案生成的jar包中的MANIFEST.MF檔案中的配置,如Class-Path和Main-Class,常用的配置為:

新增依賴

父級:

子級:

執行maven打包,target生成jar檔案,如下圖:

拷貝到桌面,用WinRAR開啟,目錄如下:

MANIFEST.MF檔案在上面標紅的資料夾裡。

以上打包方法還沒有生成執行所需要的依賴jar檔案,下一篇接著學習。本次主要是生成本子專案的jar檔案和MANIFEST.MF檔案。專案資訊如下圖: