2010-08-11 9 views
11

사용자 정의 프로젝트 설정을위한 Maven 아키 타입을 작성했습니다.이 기능은 멋지게 작동합니다. 그러나 더 재미있는 템플리트를 수행 할 수 있도록 추가 매개 변수를 전달할 수 있는지 궁금합니다. 나는추가 특성을 maven archetype에 전달하십시오.

mvn archetype:generate -DarchetypeCatalog=local -DdbHost=localhost 

같은 것을 시도하고 내 템플릿에

... 
<option name="db.host.config.option" value="${dbHost}" /> 
... 

를 넣어,하지만 작동하지 않습니다. 이 작업을 아키타 입을 수있는 방법이 있습니까?

답변

16

dbHostrequiredProperty으로 입력하면 META-INF/maven/archetype-metadata.xml입니다. 이 질문에 오히려 나이가 있지만 프로젝트에서 원형을 생성하는 동안

<archetype-descriptor name="basic"> 
    <requiredProperties> 
     <requiredProperty key="dbHost"/> 
    </requiredProperties> 
</archetype-descriptor> 
+0

감사를 사용할 수 있습니다, 당신이 조금 있음에 확장 할 수 prod.ex.version 같은 이름을 사용하지 않는 것입니다? 나는 구문에 대해 충분히 익숙하지 않다. – Ceilingfish

+2

. 아키 타입 프로젝트에서 폴더 프로젝트/META-INF/maven을 만들어야합니다. 이 폴더에서 archetype-metadata.xml 파일을 만들어야합니다. 이 파일에서 원하는 각 구성 인수에 대해 requiredProperty 태그를 추가해야합니다. 자세한 내용은 http://maven.apache.org/archetype/maven-archetype-plugin/specification/archetype-metadata.html – devsprint

+0

여기에서 확인해 보았습니다. 그러나 이것을 아키타 입형으로 할 것인지, metadata.xml (제안한대로) 또는 archetype.xml에 넣고 archetype.xml의 일부 내용을 archetype-metadata.xml에 넣으면 작동하지 않는 것 같아요. 내 아키타 입니 다. http://stackoverflow.com/questions/36342578/whats-the-difference-between-archetype-xml-and-archetype-metadata-xml-in-maven – Jibbyj

7

, 나는 (생성-에서 프로젝트), 당신이 할 수있는 메이븐 3.04로

을 내 자신의 경험을 제공 할 것입니다 속성 파일을 인수로 전달하십시오. 각 속성 (key = value)이 전달되면 requiredProperty이 archetype-metadata.xml 파일에 생성되며 기본값은 "value"입니다.
한편 archetype 생성 프로세스에서는 텍스트 파일에서 "value"문자열을 찾아 "$ {key}"로 바꿉니다. (즉, dbHost = db.host.config.option은 "db .host.config.option "을 $ {dbHost}로 바꾸십시오).

우리가 -D = 으로,이 매개 변수의 값을 제공 할 수있는 기회를 제공하고 있습니다 (을 생성) 최종 프로젝트 생성을위한 원형을 사용하여 동안. 따라서 archetype-metadata.xml 파일을 직접 편집 할 필요가 없습니다.

+0

을 참조하십시오. 속성 파일을 인수로 전달하는 방법에 대한 예제를 게시 할 수 있습니까? 'mvn archetype : create-from-project'에? –

0

archetype-metadat.xml에서 유지 관리하여 속성 값을 명령 프롬프트에 전달해야하지만 여기에 "."을 포함하면 안됩니다. 기호를 사용하면 값을 업데이트 할 수 없습니다.

그것은 메이븐에 제한이 당신이 자극-전 버전

관련 문제