如何在izpack-maven-plugin install.xml中使用Maven项目属性?

时间:2011-02-26 11:00:39

标签: java maven izpack

关注http://maksim.sorokin.dk/it/2010/06/10/izpack-with-maven/我写了一个使用IzPack创建izpack-maven-plugin安装程序的Maven POM。

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

示例:

在src / main / resources / 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>
...

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您的maven-resources-plugin调用可以使用pom本身定义的项目属性来过滤所涉及的资源,或者更好地使用属性文件。 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 / resources中指定属性文件:

your.name=world

然后在&lt; filter&gt;中指明文件名pom中的元素。