2011-02-26 3 views
0

http://maksim.sorokin.dk/it/2010/06/10/izpack-with-maven/izpack-maven-plugin을 사용하여 IzPack 설치 프로그램을 만드는 Maven POM을 작성했습니다.izpack-maven-plugin install.xml에서 Maven 프로젝트 속성을 사용하려면 어떻게해야합니까?

그러나 이제 artifact 이름 및 버전과 같은 플러그인 구성 매개 변수를 install.xml 파일에 전달하는 방법을 발견했습니다. 이 값을 POM에서 플러그인으로 전달하는 방법이 있습니까?

예 : 그것은처럼 보이는 있도록

<installation version="1.0"> 
<info> 
    <appname>MyApp</appname> 
    <appversion>1.0.0</appversion> 
</info> 
... 

가 어떻게 여기 메이븐 특성, project.name 및 project.version을 사용할 수 있습니다 다음 SRC/메인/자원/INSTALL.XML에서

: 자원을 필터링 할 수 있습니다

<installation version="1.0"> 
<info> 
    <appname>${project.name}</appname> 
    <appversion>${project.version}</appversion> 
</info> 
... 

답변

1

귀하 받는다는 - 자원 - 플러그인 호출은 특성 파일을 사용하여 치어 자체에 정의 된 프로젝트 속성을 사용하여, 또는 더 나은있었습니다.

<properties> 
    <your.name>world</your.name> 
</properties> 

의미 "your.name는"재산권 갖는다 "세계"값 : maven-resources-plugin usage

<build> 
... 
    <filters> 
    <filter> [a filter property or properties file] </filter> 
    </filters> 
... 
    <plugin> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.4.2</version> 
    ... 
      <resources> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
      </resources> 
    ... 
    </plugin> 
</build> 

필터 속성은 POM의 구문을 가진다.

your.name=world 

다음은 치어의 < 필터 > 요소의 파일 이름을 나타냅니다

당신이 속성 SRC/메인/자원 파일을 지정하는 경우

.

+0

큰, 당신의 신속한 답변에 감사드립니다! (필자가 POM 속성 대체를 위해 수행 한 모든 작업이 필트로 필터링되었습니다) – mjn

+0

@mjn 당신을 환영합니다. 그런 식으로 필터링을 활성화하는 것을 잊어 버렸습니다. 모든 리소스가 필터링되고 리소스 폴더에 바이너리가 있으면 더러운 일이 발생할 수 있습니다. (또는 필터링 할 리소스 만 ) –

2

이 질문은 정말로 오래되었지만, Pod 프로젝트 버전에서 자동으로 IzPack에 appversion을 가져 오는 방법을 알아 내려고 할 때 검색에 나온 질문이 일관되게있었습니다.

올바른 방법은 POM에 Maven 속성을 설정하고 @ {property} 구문을 사용하여 IzPack install.xml의 속성을 참조하는 것입니다. 필요한 자원을 필터링하지 않아도됩니다.

의 pom.xml :

... 
<properties> 
    <myproduct.name>${project.name}</myproduct.name> 
    <myproduct.version>${project.version}</myproduct.version> 
</properties> 
... 

INSTALL.XML :

... 
<info> 
    <appname>@{myproduct.name}</appname> 
    <appversion>@{myproduct.version}</appversion> 
... 

IzPack Properties documentation

관련 문제