应该在哪里放置安装程序资源(wxs文件,dmg-script,图标)以及如何在部署自包含应用程序时配置maven antrun

我应该在哪里删除自定义配置的WIX安装程序配置文件以及如何使用antrun插件在基于maven的java fx项目中配置javafx packger工具? 我成功地使用默认的包资源制作了基本的MSI安装程序,它运行正常。 现在我已经将安装程序WXS文件配置为fxpackager底层,在创建MSI时使用wix工具集。

使用此自定义MSI安装程序和此如何在Windows上为javafx本机程序包图标设置自定义图标我已设法添加Icon。 但部署任务不是选择自定义配置文件,即WXS

我还阅读了官方指南http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html

我的项目结构看起来像这样

项目结构

您可以看到我已在两个位置添加,即在java-client / package / windows /下 我还在src / main / deploy / package / windows /中添加了 正如相关问题所述。 但两种方式都不适用于我的maven ant插件。 我的思绪在爆炸。

从Oracle文档中他们指出“打包工具在恢复到内置资源之前在类路径上查找自定义资源。默认情况下,Java Packager将”。“(当前工作目录)添加到类路径中。因此,要替换应用程序图标,将自定义图标复制到运行javapackager的目录中的./package/macosx/DemoApp.icns(通常是根项目目录)。“

我还尝试将$ {basedir}添加到a​​nt class-path看看我的pom的构建部分

   org.apache.maven.plugins maven-compiler-plugin 3.1  ${maven.compiler.source} ${maven.compiler.target}    maven-surefire-plugin 2.9   **/*Test.class     maven-jar-plugin 2.3.1   default-jar none     maven-antrun-plugin 1.7   create-temp-jar prepare-package  run                   create-deployment-bundle install  run                             com.oracle ant-javafx ${javafx.version} ${javafx.tools.ant.jar} system   com.oracle javafx ${javafx.version} ${fx.home} system     maven-assembly-plugin 2.2.1   make-assembly package  single      src/main/assembly/jar-with-dependencies.xml  ${project.build.finalName} false   ${javafx.version} ${exec.mainClass} com/javafx/main/Main       

能帮到我,请帮我搞清楚这个问题。

经过这么多尝试后,我终于解决了我的问题并帮助其他人,我在这里发布解决方案。

项目结构应该是这样的

在此处输入图像描述

和pom.xml应该像这样

  4.0.0 com.client JavaClient 5.2.0-SNAPSHOT jar JavaClient  com.client.MainApp 2.2.67 ${java.home}/lib/jfxrt.jar ${java.home}/../lib/ant-javafx.jar ${project.basedir}/lib/javafx-dialogs-0.0.1.jar 1.7 1.7 UTF-8 ${project.build.directory}/diploy ${project.basedir}    org.oracle javafx ${javafx.version} ${fx.home} system   junit junit 4.11 test   xmlpull xmlpull 1.1.3.1   xpp3 xpp3_min 1.1.4c   com.thoughtworks.xstream xstream 1.4.7   com.oracle javafx-dialogs 0.0.1 system ${javafx-dialogs.jar}   org.apache.logging.log4j log4j-core 2.0.2      org.apache.maven.plugins maven-compiler-plugin 3.1  ${maven.compiler.source} ${maven.compiler.target}    maven-surefire-plugin 2.9   **/*Test.class     maven-antrun-plugin 1.6   create-temp-jar prepare-package  run                   create-deployment-bundle install  run                   maven-assembly-plugin 2.2.1   make-assembly package  single      src/main/assembly/jar-with-dependencies.xml  ${project.build.finalName} false   ${javafx.version} ${exec.mainClass} com/javafx/main/Main        

现在我会向你解释我的错误。 仔细查看问题的构建部分。 在ant-run插件中,当我们进入fx:deploy任务时,你会发现我有类路径的入口。 我搞砸了这部分很简单。 现在看看我的Pom吧。 类路径现在更新。 首先我提到基础目录然后是ant-fx-plugin路径然后是jfxrt.jar路径。 jfxrt可能没有必要。 在此之后我删除了插件的依赖项部分。 这很关键。 如果我不删除此部分,那么我的antrun插件alwasy会查看maven提供的依赖项,但不会在ant-classpath中。 在ant-classpath顺序中非常重要。 你的基础必须始终在ant-run.jar之前。 而已

希望这对将面临这个问题的人有所帮助。