2011-05-01 102 views
3

我在我的src/main/resources中有兩個文件,我想將一個文件的主體注入到另一個文件的特定位置。所以一個文件應該是一個模板,另一個文件將填充這個模板的數據(類似於Apache Velocity)。如何使用Maven將一個文件注入到另一個文件中?

我可以使用一些現有的Maven插件嗎?

預先感謝您。

解決方案: 我決定不使用特殊的插件,但把它添加到pom.xml中:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.6</version> 
      <executions> 
       <execution> 
        <id>rng-injection</id> 
        <phase>generate-resources</phase> 
        <configuration> 
         <target> 
          <echo message="Injecting RNG schemes"/> 

          <copy file="${main.resources}/RNG/enets-template.rng" 
            tofile="${main.resources}/RNG/enets.rng" 
            verbose="true" 
            overwrite="true"/> 

          <copy file="${main.resources}/RNG/modeldefinition-template.rng" 
            tofile="${main.resources}/RNG/modeldefinition.rng" 
            verbose="true" 
            overwrite="true"/> 


          <property name="enets-def" value="${main.resources}/RNG/enetsdefinitions.rng"/> 
          <loadfile property="def-file" srcfile="${enets-def}"/> 
          <replace file="${main.resources}/RNG/enets.rng"> 
           <replacefilter token="{!enets-definition!}" value="${def-file}"/> 
          </replace> 

          <replace file="${main.resources}/RNG/modeldefinition.rng"> 
           <replacefilter token="{!enets-definition!}" value="${def-file}"/> 
          </replace> 
         </target> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 

      </executions> 
     </plugin> 
    </plugins> 
</build> 

回答

2

我不知道,只要你想做的事任何插件,但作爲啓動您可能能夠將主體讀入屬性並使用資源過濾將該屬性注入到第二個文件中。

1

有關如何構建插件以執行相關操作的示例,請參閱Apache Mahout中的集合codegenerator mojo。它是一個使用velocity來生成java代碼的插件。

相關問題