0

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

但是我现在找到了将插件配置参数(例如工件名称和版本)传递给 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>
...
4

2 回答 2

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>
...

安装.xml:

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

IzPack 属性文档

于 2016-09-13T15:46:21.560 回答
1

您的 maven-resources-plugin 调用可以使用 pom 本身中定义的项目属性过滤所涉及的资源,或者更好地使用属性文件。maven 资源插件的使用

<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>

意思是“你的名字”属性有“世界”的价值。

如果在 src/main/resources 中指定属性文件:

your.name=world

然后在 pom.xml 的 <filter> 元素中指明文件名。

于 2011-02-26T11:13:17.040 回答