maven三個常用的插件使用介紹

背景

maven 常用的三個插件對打包有不同的作用:

maven-jar-plugin:處理 jar 包生成;

spring-boot-maven-plugin:SpringBoot 項目打包;

maven-assembly-plugin:自定義打包結構。

而實際開發過程中這三個插件可能都綜合使用,本文類介紹混合使用這些插件時需要註意的事項。

SpringBoot 打包時排除文件

SpringBoot 項目打包時一般會抽出配置文件和靜態資源文件到指定目錄,然後通過 --spring.config.additional-location=file:xxx 額外指定配置文件。

這樣的話,SpringBoot 打包時就需要排除配置文件和靜態資源文件,可以用 maven-ja-pluginr 插件來排除:

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-jar-plugin</artifactId>
     <version>3.2.0</version>
     <configuration>
         <excludes>
             <exclude>*.yml</exclude>
             <exclude>static/**</exclude>
             <exclude>lib/**</exclude>
         </excludes>
     </configuration>
 </plugin>

註意:如果排除文件夾,需要後面兩個星星。

Spring 打包本地依賴 jar

如果項目需要依賴本地某目錄下的 jar 包,而它又沒有在倉庫中發佈的話,可以通過如下方式添加依賴:

<dependency>
   <groupId>XXXX</groupId>
   <artifactId>XXX</artifactId>
   <version>1.0.0</version>
   <scope>system</scope>
  <systemPath>${project.basedir}/src/main/resources/lib/xxx.jar</systemPath>
</dependency>

值得註意的是,如果項目用瞭 SpringBoot 打包插件,默認是不會將 system 作用域的 jar 打入 lib 目錄的,需要添加 includeSystemScope 配置將第三方 jar 包加入到 lib :

<plugin>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-maven-plugin</artifactId>
     <configuration>
         <includeSystemScope>true</includeSystemScope>
     </configuration>
 </plugin>

編譯時排除指定文件

pom.xml 的 resources 配置可以對資源文件進行篩選,常見配置如下:

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <excludes>
            <exclude>static/**</exclude>
            <exclude>*.yml</exclude>
        </excludes>
    </resource>
</resources>

該方式會直接影響編譯時資源文件的處理過程,即 target 目錄下的 classes 目錄中就不包括指定文件,從而導致本地運行時缺少配置文件,所以開發期間不建議用這種方式。

復制粘貼的原則

想起以前看到的一段經典話語:

我從互聯網上得到的最好的經驗之一,就是永遠不要復制和粘貼不是自己編寫的代碼。如果你一定要復制,那就照著它逐字輸入,逼著自己思考,這些代碼實際上是什麼意思。

除瞭代碼需要復制粘貼,平時文檔編寫時也免不瞭拿舊文檔做模板。

word 文檔編寫過程中,如果內容是復制、粘貼的,我的經驗是,完成後必做幾項檢查:

標題:檢查文檔中的標題、系統名稱是否更正為目標文檔的內容。目錄更正:文檔頁碼變化後,必須重新生成目錄與之對應。修改內容校對:修改過的內容,需要校對至少三遍。

總結

到此這篇關於maven三個常用的插件使用介紹的文章就介紹到這瞭,更多相關maven插件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: