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

发布于 2024-10-19 03:00:25 字数 914 浏览 8 评论 0原文

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

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

Following http://maksim.sorokin.dk/it/2010/06/10/izpack-with-maven/ I wrote a Maven POM which creates an IzPack installer, using the izpack-maven-plugin.

However I found now way to pass plugin configuration parameters such as the artifact name and version to the install.xml file. Is there a way to pass these values from the POM to the plugin?

Example:

In the src/main/resources/install.xml:

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

How can I use the Maven properties, project.name and project.version here, so it looks like:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黑凤梨 2024-10-26 03:00:26

我知道这个问题确实很老了,但是当我试图弄清楚如何从 POM 项目版本中自动提取 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 属性文档

I know this question is really old, but this was consistently the question that came up in searches when I was trying to figure out how to get the appversion in IzPack to be automatically pulled from the POM project version.

The right approach to this is to set a Maven Property in your POM and reference the property in the IzPack install.xml using the @{property} syntax. No filtering of resources needed.

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

零度° 2024-10-26 03:00:26

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

<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”属性具有“world”值。

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

your.name=world

然后在中指明文件名; pom 中的元素。

Your maven-resources-plugin invocation can filter the resources involved using project properties defined in the pom itself, or better using a properties file. 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>

A filter property has this syntax in the pom:

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

meaning "your.name" property has "world" value.

If you specify a properties file in src/main/resources:

your.name=world

and then indicate the filename in the <filter> element in the pom.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文