maven-resources-plugin插件使用

maven-resources-plugin主要是將項目中的資源文件編譯、打包;注意,資源文件不是源代碼,一般是環境的配置文件,默認存在src/main/resources和src/test/resources中。

maven-resources-plugin的三個目標(goal):

  • resources:resources:用來將目錄中的資源文件src/main/resources拷貝到編譯目錄${project.build.outputDirectory}。這個目標默認綁定到了Maven的process-resources階段,所以process-resources階段被執行,這個目標就會自動觸發。
  • resources:testResources:用來將目錄中的資源文件src/test/resources拷貝到編譯目錄${project.build.testOutputDirectory}。這個目標默認綁定到了Maven的process-test-resources階段,所以process-test-resources階段被執行,這個目標就會自動觸發。
  • resources:copy-resources:用來將指定目錄中的資源文件拷貝到指定目錄,注意需要自己設置資源文件目錄和目標目錄。

resources插件的配置

如果默認的配置文件不能滿足我們的需求,比如資源文件中使用了佔位符${},需要由屬性文件替換。那就需要我們進行相關的配置,有兩個地方需要進行配置:

1.在<build />下配置一些全局信息

<filters>
    <filter>src/main/filters/dev.properties</filter>
</filters>
<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
            <include>*.properties</include>
        </includes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
        <excludes>
            <exclude>*.xml</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>${basedir}/${environment.dir}</directory>
        <includes>
            <include>${environment}.properties</include>
        </includes>
    </resource>
</resources>
<testResources>
    <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
        <includes>
            <include>*.properties</include>
        </includes>
    </testResource>
</testResources>

配置的解釋如下:

  • <filters />表示用來進行屬性替換的屬性文件路徑。屬性文件是用來替換資源文件中的變量的,比如屬性文件中有個個鍵值對”key1=val1“,那麼在資源文件中有個”${key1}“,就會被替換爲”val1“(假設資源文件開啓了filter),默認路徑爲”${basedir}/src/main/filters“
  • <resources />配置main的資源信息
    • <directory/>配置資源文件的原始目錄
    • <filtering/>表示是否開啓過濾,過濾的意思就是用屬性文件來替換資源文件中的變量
    • <includes/>表示包含哪些文件
    • <excludes/>表示去除哪些文件
  • <testResources />配置test的資源信息

2. 在maven-resources-plugin下配置

在插件標籤<configuration/>下,和全局使用方式一樣,這裏列舉一個設置字符集的例子:

a、指定project.build.sourceEncoding屬性,maven-resources-plugin會自動使用這個屬性作爲字符集

<project ...>
 ...
 <properties>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   ...
 </properties>
 ..
</project>

b、在maven-resources-plugin插件裏自己設置 

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          ...
          <encoding>UTF-8</encoding>
          ...
        </configuration>
      </plugin>
    </plugins>
    ...
  </build>
  ...
</project>
發佈了57 篇原創文章 · 獲贊 21 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章