我有同样的问题。由于我在项目中使用了copy-maven-problem,因此我还使用它来project.nsh
处理 Groovy 代码段:
<resource>
<targetPath>${project.build.directory}</targetPath>
<file>${project.build.directory}/installer-header.nsh</file>
<destFileName>installer-header-processed.nsh</destFileName>
<!-- groovy extension point -->
<process>{{
def versionsList = project.version.replaceFirst("-SNAPSHOT", "").tokenize('.')
while(!(versionsList.size >= 4)){
versionsList.add('0')
}
files[0].append("!define VI_PRODUCT_VERSION \"" + versionsList.join('.') + "\"\n")
}}</process>
</resource>
<resource>
<targetPath>${project.build.directory}</targetPath>
<file>${project.build.directory}/installer-header-processed.nsh</file>
<destFileName>installer-header.nsh</destFileName>
<move>true</move>
</resource>
检查该插件的文档并调整变量/文件名(即我称之为头文件installer-header.nsh
)
在此之后,您在标题中有一个变量VI_PRODUCT_VERSION
(根据需要重命名),您可以在setup.nsi
.
我知道这看起来像 q bad hack,但它现在有效。我希望将来会有插件生成的变量..
PS:在打包阶段调用 nsis-maven-plugin 之前的 copy-maven-plugin 以使其工作。我在 nsis 插件之前定义了 copy 插件——它.nsh
是在 prepare-package 阶段生成的,所以它在处理之前就存在了。