2011-05-01 4 views
3

내 src/main/resources에 두 개의 파일이 있고 한 파일의 본문을 다른 파일의 특정 위치에 삽입하고 싶습니다. 그래서 하나의 파일은 템플릿이어야하고 또 다른 파일은이 템플릿을 채울 데이터입니다 (Apache Velocity와 비슷합니다).하나의 파일을 Maven으로 다른 파일에 삽입하는 방법은 무엇입니까?

기존 Maven 플러그인으로이 작업을 수행 할 수 있습니까?

미리 감사드립니다.

솔루션 :

<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

나는 당신이 원하는 것을 제공하는 플러그인을 모른다, 그러나 시작으로 : 나는 특별 플러그인을 사용하지만, pom.xml 파일이 추가하지 않기로 결정 본문을 속성으로 읽고 리소스 필터링을 사용하여 해당 속성을 두 번째 파일에 삽입 할 수 있습니다.

1

이와 관련된 작업을 수행하는 플러그인을 작성하는 방법에 대한 예는 Apache Mahout의 코드 생성기 mojo를 참조하십시오. 속도를 사용하여 자바 코드를 생성하는 플러그인입니다.

관련 문제