2013-06-19 59 views
1

我正在嘗試將屬性文件讀入我的父項pom.xml。從那裏我需要把讀取的屬性放到我的html文件中定義的變量中。使用maven將過濾器應用於html文件

代碼,包括屬性文件:

<plugins> 
      <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>properties-maven-plugin</artifactId> 
      <executions> 
       <!-- Associate the read-project-properties goal with the initialize phase, to read the properties file. --> 
       <execution> 
       <phase>initialize</phase> 
       <goals> 
        <goal>read-project-properties</goal> 
       </goals> 
       <configuration> 
        <files> 
        <file>${basedir}/build.${build.env}.properties</file> 
        </files> 
       </configuration> 
       </execution> 
      </executions> 
      </plugin> 


      <!-- Maven War file generator plugin --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <configuration> 
        <webResources> 
         <resource> 
          <directory>${basedir}/src/main/java</directory> 
          <targetPath>WEB-INF/classes</targetPath> 
          <includes> 
           <include>**/*.properties</include> 
           <filtering>false</filtering> 
           <include>**/*.xml</include> 
           <filtering>false</filtering> 
           <include>**/*.css</include> 
           <filtering>false</filtering> 
           <include>**/*.html</include> 
           <filtering>true</filtering> 
          </includes> 
         </resource> 
        </webResources> 
       </configuration> 
       <version>2.3</version> 
      </plugin> 

      <!-- Maven compiler plugin --> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
       <version>2.3</version> 
      </plugin> 
      </plugins> 

我是用螞蟻之前還有我用filterset標籤應用這些過濾器像

代碼中的build.xml:

<filterset> 
      <filter token="HOSTNAME_PREFIX" value="${hostname.prefix}"/> 
      <filter token="MIN_SUFFIX" value="${min.suffix}"/> 
      <filter token="APP_VERSION" value="${build.app.version}"/> 
     </filterset> 

但我不知道如何使用maven實現同樣的事情。

代碼index.html中被替換爲:

<link rel="shortcut icon" href="@[email protected]/app-logo.ico" type="image/png"/> 
<link rel="stylesheet" href="@[email protected]/[email protected][email protected]" /> 

回答

0

您需要在戰爭中的插件配置多個資源元素,實現這一點,一個是要篩選的資源,以及一個用於資源你沒有。

<webResources> 
    <resource> 
     <directory>${basedir}/src/main/java</directory> 
     <targetPath>WEB-INF/classes</targetPath> 
     <filtering>false</filtering> 
     <includes> 
      <include>**/*.properties</include> 
      <include>**/*.xml</include> 
      <include>**/*.css</include> 
     </includes> 
    </resource> 
    <resource> 
     <directory>${basedir}/src/main/java</directory> 
     <targetPath>WEB-INF/classes</targetPath> 
     <filtering>true</filtering> 
     <includes> 
      <include>**/*.html</include> 
     </includes> 
    </resource> 
</webResources> 

另外,我建議不要把你的資源放在/src/main/java;該目錄用於Java文件,而不是該資源。

+0

謝謝你的回答。只是想知道這將如何插入所需屬性的值。正如我在螞蟻的例子中提到的那樣。 –

+0

有多種方法可以提供屬性值。請檢查[Maven POM參考文檔](http://maven.apache.org/pom.html#Properties)。您也可以找到[資源過濾概述](http://maven.apache.org/guides/getting-started/index.html#How_do_I_filter_resource_files)有幫助。 – user944849

+0

它沒有解決我在index.html中替換標記的目的。引用中提到的解決方案是創建一個單獨的filter.properties文件,然後將值傳遞給application.properties文件,但該解決方案對我無效 –

相關問題