2012-08-30 7 views
2

archetype-resources> src> 메인 폴더에서 매개 변수를 파일에 전달하려고합니다. 그래서 나는maven archetype에서 동적 파일을 생성하는 방법은 무엇입니까?

<requiredProperties> 
    <requiredProperty key="myParam"> 
     <defaultValue>default-value</defaultValue> 
    </requiredProperty> 
    </requiredProperties> 

으로 원형-metadata.xml에 필요한 속성을 선언하고 프로토 타입 파일에서 $ {하여 myParam}을 사용하지만, 그 값은 대체되지 않습니다. 왜?

프로토 타입 프로젝트의 pom.xml에서 사용자 정의 값을 사용하면 결과 프로젝트는 $ {myParam}의 값을 myValue로 바꿉니다. 그것은 잘 작동하지만 프로토 타입 폴더에있는 파일에 대해 동일한 작동하지 않습니다. 왜?

답변

3

파일을 Velocity 템플릿으로 사용해야한다는 사실을 Velocity 엔진에 알려줘야 파일에있는 모든 속성이 실제로 대체됩니다. archetype-metadata.xml 파일을 확장하고 fileSet을 정의하면됩니다.

나는 정확한 폴더 구조의 잘 모르겠어요 문제의 파일의 이름은 무엇인가, 그러나이 라인을 따라 뭔가 작업을해야합니다 : 위의 기본적

<?xml version="1.0" encoding="UTF-8"?> 
<archetype-descriptor name="basic"> 
    <requiredProperties> 
     <requiredProperty key="myParam"> 
      <defaultValue>default-value</defaultValue> 
     </requiredProperty> 
    </requiredProperties> 
    <fileSets> 
     <fileSet filtered="true" packaged="false"> 
      <directory>src/main</directory> 
      <includes> 
       <include>**/*</include> 
      </includes> 
     </fileSet> 
    </fileSets> 
</archetype-descriptor> 

모든 파일을 포함하도록 말하고있다 src/main 아래 중요한 부분은 filtered=true이며 모든 속성이 대체됩니다.

+0

감사합니다. filtered = "true"신고가 누락되었습니다. – Deepali

+0

@Deepali, 대답을 수락해야합니다. –