1. 程式人生 > >利用MAVEN打包時,如何包含更多的資原始檔

利用MAVEN打包時,如何包含更多的資原始檔

首先,來看下MAVENx專案標準的目錄結構:


 

一般情況下,我們用到的資原始檔(各種xml,properites,xsd檔案等)都放在src/main/resources下面,利用maven打包時,maven能把這些資原始檔打包到相應的jar或者war裡。

有時候,比如mybatis的mapper.xml檔案,我們習慣把它和Mapper.java放一起,都在src/main/java下面,這樣利用maven打包時,就需要修改pom.xml檔案,來把mapper.xml檔案一起打包進jar或者war裡了,否則,這些檔案不會被打包的。(maven認為src/main/java只是java的原始碼路徑)。網路上有很多方法,我大概試了下,幾種方法都可以,可以任選一種即可。

方法1,其中**/*這樣的寫法,是為了保證各級子目錄下的資原始檔被打包。

Xml程式碼  收藏程式碼
  1. <build>  
  2.     <finalName>test</finalName>  
  3.     <!--  
  4.     這樣也可以把所有的xml檔案,打包到相應位置。  
  5.     <resources>  
  6.         <resource>  
  7.             <directory>src/main/resources</directory>  
  8.             <includes>
      
  9.                 <include>**/*.properties</include>  
  10.                 <include>**/*.xml</include>  
  11.                 <include>**/*.tld</include>  
  12.             </includes>  
  13.             <filtering>false</filtering>  
  14.         </resource>  
  15.         <
    resource>  
  16.             <directory>src/main/java</directory>  
  17.             <includes>  
  18.                 <include>**/*.properties</include>  
  19.                 <include>**/*.xml</include>  
  20.                 <include>**/*.tld</include>  
  21.             </includes>  
  22.             <filtering>false</filtering>  
  23.         </resource>  
  24.     </resources>  
  25. </build>  

方法2,利用build-helper-maven-plugin外掛

Xml程式碼  收藏程式碼
  1. <build>  
  2.     ...  
  3.     </plugins>  
  4.         ...  
  5.         <!--  
  6.         此plugin可以用  
  7.         利用此plugin,把原始碼中的xml檔案,  
  8.         打包到相應位置,這裡主要是為了打包Mybatis的mapper.xml檔案   
  9.         -->  
  10.         <plugin>  
  11.             <groupId>org.codehaus.mojo</groupId>  
  12.             <artifactId>build-helper-maven-plugin</artifactId>  
  13.             <version>1.8</version>  
  14.             <executions>  
  15.                 <execution>  
  16.                     <id>add-resource</id>  
  17.                     <phase>generate-resources</phase>  
  18.                     <goals>  
  19.                         <goal>add-resource</goal>  
  20.                     </goals>  
  21.                     <configuration>  
  22.                         <resources>  
  23.                             <resource>  
  24.                                 <directory>src/main/java</directory>  
  25.                                 <includes>  
  26.                                     <include>**/*.xml</include>  
  27.                                 </includes>  
  28.                             </resource>  
  29.                         </resources>  
  30.                     </configuration>  
  31.                 </execution>  
  32.             </executions>  
  33.         </plugin>     
  34.         ...  
  35.     </plugins>       
  36.     ...  
  37. </build>  

方法3,利用maven-resources-plugin外掛

Xml程式碼  收藏程式碼
  1. <build>  
  2.     ...  
  3.     </plugins>  
  4.         ...  
  5.         <!--  
  6.         此plugin可以用  
  7.         利用此plugin,把原始碼中的xml檔案,打包到相應位置,  
  8.         這裡主要是為了打包Mybatis的mapper.xml檔案   
  9.         -->  
  10.         <plugin>  
  11.             <artifactId>maven-resources-plugin</artifactId>  
  12.             <version>2.5</version>  
  13.             <executions>  
  14.                 <execution>  
  15.                     <id>copy-xmls</id>  
  16.                     <phase>process-sources</phase>  
  17.                     <goals>  
  18.                         <goal>copy-resources</goal>  
  19.                     </goals>  
  20.                     <configuration>  
  21.                         <outputDirectory>${basedir}/target/classes</outputDirectory>  
  22.                         <resources>  
  23.                             <resource>  
  24.                                 <directory>${basedir}/src/main/java</directory>  
  25.                                 <includes>  
  26.                                     <include>**/*.xml</include>  
  27.                                 </includes>  
  28.                             </resource>  
  29.                         </resources>  
  30.                     </configuration>  
  31.                 </execution>  
  32.             </executions>  
  33.         </plugin>     
  34.         ...  
  35.     </plugins>       
  36.     ...  
  37. </build>  

相關推薦

利用MAVEN打包如何包含原始檔

首先,來看下MAVENx專案標準的目錄結構:   一般情況下,我們用到的資原始檔(各種xml,properites,xsd檔案等)都放在src/main/resources下面,利用maven打包時,maven能把這些資原始檔打包到相應的jar或者war裡。 有

安裝了JDK1.8後配置了環境變數但是Maven打包依然讀取的是JDK1.6的問題解決辦法

     問題描述:使用maven對springboot打包時,報瞭如下錯誤,      錯誤描述:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compil

Jenkins 通過maven打包發現resource下的properties 配置檔案未生成 導致在執行時報錯

場景: Jenkins 構建WebDriver 專案時,報如下圖錯誤: idea 執行時是沒問題的,經過對比發現是因為Jenkins構建時,發現resource下的properties 配置檔案未生成,找到不所以才提示錯誤 解決方法: 程式碼路徑: 在pom.x

maven 打包jar should not point at files within the project directory 問題解決

原來是web專案,想通過自動部署外掛把web專案打成war放到tomcat下 在專案根部加了一個pom檔案 但打包的時候卻報錯 should not point at files within th

maven 打包src/main/java目錄下的xml等原始檔沒有打包進去的問題

工作中,給同事除錯maven的自動化打包時,發現src/main/java中一些關於mybatis的xml都沒有打包進去,導致war包啟動不起來,在此記錄一下,解決方法。 預設maven在src/main/java中只編譯java檔案,其他的檔案會被忽略,但可以通過配置po

使用eclipse對maven項目打包報 invalid LOC header (bad signature)異常處理

http switch ati exception ogg 異常處理 name .org and 在eclipse上打包,報錯: [INFO] Including org.codehaus.groovy:groovy-all:jar:2.4.3 in the shade

Maven打包出現“Show Console View”錯誤彈出框錯誤詳情為“An internal error has occurred. java.lang.NullPointerException”的解決方法

開開 exceptio 技術 point org ali ava src cor 今天為項目打包時出現了下面的錯誤提示: 打開Details裏面寫的是“An internal error has occurred. java.lang.NullPointerExcepti

maven打包包含本地jar

專案中需要使用maven的打包工具,生成zip壓縮包,使用的外掛是assembly-plugin。因為一些特殊的原因,需要使用一些本地的jar進行依賴,載入外部jar後編碼過程中沒有任何問題,但是打包時一直報“程式包不存在”。 思考一下:Maven本質上是一個外掛框架,它的核心並不執行任何具體的構建任務,所

Maven 打包遇到的坑哭會

我用的是ecplise自帶的maven外掛建立的工程,jdk版本都換了,還是說沒有jre環境。 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.2:

Android打包如何打包包含依賴包

Eclipse中的實現是非常簡單的。 Eclipse如上圖去掉勾選就可以打出所需的包了! AndroidStudio 相比較而言,AndroidStudio 就比較麻煩一點。鑑於gradle提供的一體化功能,很多規則已經給你定好了。 AndroidStudi

Android Studio打包問題:gradle打包Android程式如何打包包含依賴包

在一個Android專案的build.gradle中,dependencies閉包中有以下幾種形式的宣告: compile 'com.android.support:appcompat-v7:22.2.1' 編譯的內容為單個檔案 compile f

利用MAVEN打包可執行jar包包括依賴的第三方包

看下專案pom.xml的配置,首先要配置maven-jar-plugin,把自己的程式碼編譯打包成jar檔案,然後配置maven-assembly-plugin,把整個專案打包成一個釋出包。 Xml程式碼  收藏程式碼 <build>       <pl

利用java反射機制一次性呼叫實體類get和set方法簡化程式碼。

外部呼叫getProperty方法時只需要傳入實體物件即可;例如TestUtil.getProperty(new User()); 外部呼叫setProperty方法時只需要傳入實體物件和要set的值即可;例如TestUtil.setProperty(new User()

maven package 打包執行 mybatis-generator-maven-plugin 外掛問題

maven package打包時,會自動執行 mybatis-generator-maven-plugin 外掛,導致mapper對映檔案被追加而出現錯誤,實體也會被覆蓋。在pom.xml的mybatis-generator-maven-plugin外掛中設定<exec

maven打包出現【java source 1.3中不支援泛型 請使用 -source 5 或高版本以啟用泛型】錯誤的解決方法

出現【java source 1.3中不支援泛型 請使用 -source 5 或更高版本以啟用泛型】問題的原因是因為jdk版本使用不對,maven編譯打包時找到的是低版本的jdk,可以在總pom中新增以下語句顯示指明使用版本為1.6的jdk即可解決這個問題 <buil

Maven打包自動選擇不同的配置(利用profile和filter外掛)

專案開發時,一般都會部署到兩套以上不同的環境中(比如開發環境和生產環境)。打包的時候需要修改配置檔案中的很多資訊、或替換不同的配置檔案,很容易出錯而且不方便。下面舉例介紹如何利用Maven的profi

maven 打包動態替換properties資源文件中的配置值

mave tools false sof get per 執行 ces pre pom build節點下面添加resource配置: [html] view plain copy <resources>

程序員如何利用好自己的時間學習的知識?

程序員如何正確的制定目標我相信絕大多數的人應該都制定過目標,比如“我要減肥”,“我要學習XXX技術”,“我要看書”,“我要寫博客” …. 。那麽請問:你曾經制定的目標完成了嗎?我猜肯定有人是從入門到放棄,有的人甚至還有些不甘心,當時間過了之後就把之前的目標時間延後,如:2017年過了但是還是沒完成年度目標,於

eclipse使用maven打包去掉測試類

size efi pom maven打包 clip 配置 pid code xml文件 eclipse使用maven打包時去掉測試類 在pom.xml文件中增加如下配置: <plugin> <groupId>org.apache.mav

input屬性type為file打開文件資源管理器如何限制次選取或只能一次選取的行為

esc image object ttr itl 文件 ctu 轉化 idt 1、input標簽沒有設置multiple屬性,文件資源管理器默認一次選取 <!doctype html> <html lang="en"> <head>