2011-02-26 54 views
0

正在关注http://maksim.sorokin.dk/it/2010/06/10/izpack-with-maven/我写了一个Maven POM,它使用izpack-maven-plugin创建了一个IzPack安装程序。如何在izpack-maven-plugin install.xml中使用Maven项目属性?

但是我现在发现了将插件配置参数(如工件名称和版本)传递给install.xml文件的方法。有没有办法将这些值从POM传递给插件?

例子:

在src /主/资源/ INSTALL.XML:

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

我如何在这里使用Maven的性质,project.name和project.version,所以它看起来像:

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

回答

1

Maven的资源,插件调用可以过滤涉及的资源使用的聚甲醛本身定义的项目属性,或更好的使用属性文件。 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:

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

意为 “your.name” 酒店有 “世界” 的价值。

如果指定属性文件中的src/main /资源:

your.name=world 

,然后表示在POM的<过滤>元素的文件名。

+0

太好了,谢谢您的快速答复! (设置过滤为真是我所要做的POM房产替代) – mjn 2011-02-26 11:44:01

+0

@mjn欢迎您;我忘了说这样激活过滤,所有的资源都会被过滤掉,如果你的资源文件夹中有二进制文件,会发生令人讨厌的事情。你最好他们(或只有你想过滤的资源) – 2011-02-26 11:47:25

2

我知道这个问题确实很旧,但是这始终是我在试图弄清楚如何让IzPack中的appversion自动从POM项目版本中提取时出现在搜索中的问题。

正确的做法是在您的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

相关问题