1. 程式人生 > >Maven專案配置多個原始檔夾

Maven專案配置多個原始檔夾

需求

Maven 為我們提供了一致的專案目錄配置(原始檔夾、資原始檔夾等),在自動構建專案時, Maven 會按照這個配置來執行操作(編譯原始檔、拷貝資原始檔)。 
當 Maven 規約的預設配置不能夠滿足我們的需求時,我們就要動手修改專案的 Maven 配置,讓我們的專案能夠與 Maven 很好地協同工作。這裡討論的需求有:

  1. 配置多個原始檔夾來管理我們專案的模組
  2. 配置多個資原始檔夾來管理我們專案模組的資原始檔
  3. 有些遺留程式碼的一些資原始檔是放在原始檔夾下的,為了不改變原有專案結構,我希望 Maven 能夠從原始檔夾下讀取資原始檔
  4. 我想將專案模組的原始檔和資原始檔放置在同一個資料夾下,以方便開發與維護

pom.xml

  1. 配置專案的pom檔案(Maven配置檔案) 
    1.1. Maven 預設的原始檔夾及資原始檔夾配置
<build>  
   ...  
   < sourceDirectory > src/main/java </ sourceDirectory >  
   < testSourceDirectory > src/test/java </ testSourceDirectory >  
   < resources >  
       < resource >  
          < directory > src/main/resources </ directory >  
       </ resource >  
   </ resources >  
   < testResources >  
       < testResource >  
          < directory > src/test/resources </ directory >  
       </ testResource >  
   </ testResources >  
   ...
</build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在 eclipse 下,專案原始檔夾及資原始檔夾展現成這樣: 
這裡寫圖片描述 
1.2 配置多個資原始檔夾 
從上面 Maven 的預設配置來看,原始檔夾和測試原始檔夾都只能配置一個,要配置多個原始檔夾比較困難。這裡我們先展示如何配置多個資原始檔夾。 
有人會認為,在 eclipse 下將這些資料夾都設定為原始檔夾不就 OK 了嗎?其實不然, Maven 在構建的時候並不會去讀取任何 IDE 的配置資訊,所以他不會知道我們在 eclipse 下指定的原始檔夾,也不會將這些原始檔夾下的程式碼編譯打包。

配置多個資原始檔夾的程式碼:

<build>  
   ...
< resources > < resource > < directory > src/main/resources </ directory > </ resource > < resource > < directory > src/labs/resources </ directory > </ resource > </ resources > ... </build>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

配置好以後, IDE ( eclipse )不會識別我們的配置,我們需要更新專案的配置: 
這裡寫圖片描述

更新後, 在 eclipse 下專案原始檔夾及資原始檔夾展現成這樣(多了一個資原始檔夾): 
這裡寫圖片描述

1.3 配置讀取原始檔夾裡的資原始檔 
為了讓 Maven 能夠從原始檔夾下讀取資原始檔(或將所有資原始檔配置到原始檔夾下),我們可以這樣配置:

<build>  
   ...  
   < resources >  
       < resource >  
          < directory > src/main/resources </ directory >  
       </ resource >  
       < resource >  
          < directory > src/labs/resources </ directory >  
       </ resource >  
       < resource >  
          < directory > src/main/java </ directory >  
          < includes >  
              < include > **/*.hbm.xml </ include >  
          </ includes >  
       </ resource >  
       < resource >  
          < directory > src/labs/java </ directory >  
          < includes >  
              < include > **/*.hbm.xml </ include >  
          </ includes >  
       </ resource >  
   </ resources >  
   ...  
</build>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

這樣,不僅 src/main/resources 和 src/labs/resources 這兩個目錄下的檔案會作為資原始檔被打包, src/main/java 和 src/labs/java 目錄下的所有 .hbm.xml 檔案也都會作為資原始檔被打包。否則, Maven 構建時不會打包這兩個目錄下的 .hbm.xml 檔案,導致執行時因為找不到資原始檔而拋異常。

1.4 配置多個原始檔夾 
前面講過, Maven 預設只支援一個原始檔夾,為了給專案配置多個原始檔夾,我們需要用到一個 Maven 外掛,目的是在 Maven 構建生命週期內為專案新增原始檔夾:

<build>  
    ...  
    <plugins>  
        ...   
        <!-- build-helper-maven-plugin, 設定多個原始檔夾 -->  
        <plugin>  
            <groupId>org.codehaus.mojo</groupId>  
            <artifactId>build-helper-maven-plugin</artifactId>  
            <version>1.4</version>  
            <executions>  
                <execution>  
                    <id>add-source</id>  
                    <phase>generate-sources</phase>  
                    <goals>  
                        <goal>add-source</goal>  
                    </goals>  
                    <configuration>  
                        <sources>  
                            <source>${basedir}/src/labs/java</source>  
                            <!-- 我們可以通過在這裡新增多個source節點,來新增任意多個原始檔夾 -->  
                        </sources>  
                    </configuration>  
                </execution>  
            </executions>  
        </plugin>  
        ...   
    </plugins>  
    ...   
</build>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

更新專案配置(操作同2.2)後,在eclipse下專案原始檔夾及資原始檔夾展現成這樣(多了一個原始檔夾): 
這裡寫圖片描述

相關推薦

Maven專案配置原始檔

需求Maven 為我們提供了一致的專案目錄配置(原始檔夾、資原始檔夾等),在自動構建專案時, Maven 會按照這個配置來執行操作(編譯原始檔、拷貝資原始檔)。 當 Maven 規約的預設配置不能夠滿足我們的需求時,我們就要動手修改專案的 Maven 配置,讓我們的專案能夠與 Maven 很好地協同工作。這裡

spring boot專案配置環境

比如我的spring boot專案有開發(dev)、測試(test)、生產(prod)三個環境,需要有三套對應的配置檔案。如下 在專案裡application.yml為主配置檔案,另外三個分別對應

nginx 一個域名配置資料

server {     listen       80;     server_name  mall.cn;     #charset koi8-r;     access_log  logs/access.log  main;     client_max_body_

Git本地專案配置遠端倉庫

目錄 Git一個專案多個遠端倉庫的使用 本地專案配置多個遠端倉庫 現在專案中有一個需求就是一個專案需要推送到多個遠端倉庫。 首先在工作目錄開啟git-bash 然後輸入git rem

Maven專案Java Resoures資原始檔出現小紅叉解決方案

錯誤說明:eclipse+maven下Java Resoures資原始檔夾出現小紅叉。 錯誤提示內容:One or more constraints have not been satisfied. 錯誤原因: Deployment Assembly跟Jav

Android Studio 配置程式碼倉庫(maven)

收集了一些。方便copy使用。 repositories { mavenCentral() maven { url "https://jitpack.io" } maven { url "http://maven.aliyun.com/nexus/content/grou

nginx配置前端專案

最近一臺伺服器要配置多個前端專案,當然前後端分離就需要nginx來配置了。 單個專案還好說,如下 修改nginx的nginx.conf配置檔案 #user nobody; worker_processes 1; #error_log logs/error.log; #

Nginx同一個域名配置專案

使用Nginx要在同一個域名下配置多個專案有兩種方式: nginx按不同的目錄分發給不同的專案 啟用二級域名,不同的專案分配不同的二級域名 1.nginx按不同的目錄分發給不同的專案: server { listen 80; server_nam

Nginx配置專案放在不同的tomcat中,共享同一個埠

一、準備兩個tomcat以及Nginx安裝包 1.1分別命名為tomcat1,tomcat2。 1.2在兩個tomcat的webapps下面分別新建個專案 server1,server2. 二、配置Ngnix的配置檔案 http { include

nginx tomcat 配置 二級域名 專案

我想要的是 訪問 news.test.com , 實際訪問的是 tomcat 下面的news 專案 ,訪問 forum.test.com ,實際訪問的是 tomcat 下面的 luntan 專案,但是瀏覽器地址 欄url news.test.com 、forum.test.com 不變 ,不要變成 news

Tomcat 利用server.xml配置專案部署

tomcat的conf目錄下的server.xml配置檔案進行web專案的對映部署,把不在webApp目錄的專案部署執行起來 這樣只需要指定編譯後的目錄和tomcat部署的目錄相同 <Host

maven倉庫中心mirrors配置下載中心(執行最快的映象)

在日常生活中,我們使用maven下載需要的jar包,但是很多的時候由於中央倉庫沒有,所以我們沒有辦法下載到需要的jar包,手動去下載上,然後放入到lib下,然後build path有的時候會感到很不舒服,不是很是不實用。所以此處可以在maven的設定中心新增多個下載倉庫,這樣

Tomcat8.5 配置專案的方法

一、 需要的環境  :自行安裝好 Tomcat 8.5  。 以及兩個以上java的 web專案,打包成war包。 二 、把war包放在 webapps 目錄下面 , 如下(根據自己路徑來放置) E:\wamp\Tomcat 8.5\webapps 三、開啟配置

Tomcat8配置埠訪問各埠對應的JavaWeb專案

背景:最近遇到個專案部署的小要求:一個tomcat下配置多個埠去訪問埠對應的JavaWeb專案原理:tomcat中conf下server.xml檔案中的service節點即可配置tomcat的埠號及對應的專案配置步驟:1.開啟tomcat下conf資料夾中的serve.xml

tomcat配置虛擬host,訪問不同的web專案

      想要在一個tomcat下訪問兩個web專案時,可以通過新增虛擬host的方式來解決。       詳細步驟如下:        1、將兩個專案打包放入tomcat的webapps目錄下;         2、修改tomcat的server.xml檔案,原來的程式

Maven pom中配置遠端倉庫

原文地址:http://www.xuebuyuan.com/1124933.html <repositories> <repository> <id>datanucleus</id> <url>

通過htaccess文件配置一級域名指向根目錄的子文件

域名 yml con 系統 ase div color abc engine 創建.htaccess文件,在Windows系統創建時要寫成“.htaccess.”,不帶雙引號,否則不會創建成功。 <IfModule mod_rewri

apache 配置埠,部署專案

修改httpd.conf配置檔案     1、新增監聽埠 Listen 70   2、配置要訪問的專案,在httpd.conf檔案中新增如下內容 <VirtualHost *:70>     DocumentRoot /home/CMS/GYCMS/

Maven配置映象(切換倉庫下載Jar包)

<!--配置兩個映象,達到多個倉庫資料來源--><mirrors>   <!--你的私服倉庫-->    <mirror>      <id>resposity1</id>      <mirror

使用maven整合web專案war合併

              再執行mvn package -f pom-all.xml 即可<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x