【问题标题】:custom ant build and JavaFX自定义 ant 构建和 JavaFX
【发布时间】:2014-12-10 07:26:38
【问题描述】:

使用您的常规 netbeans javaFX 项目,开发人员能够执行以下操作 -制作一个javaFX jar文件 -在浏览器上用javaFX制作一个html -制作一个jnlp webstart

我想用 ant build(在 netbeans IDE 中)实现相同的输出,但到目前为止,我的成功仅限于 javaFX jar 文件,我也想用 ant 制作 html 文件和 jnlp

我使用的是 netbeans 8.0.2,我有一个标准的 java 库(非 javaFX)项目,这个项目包含一个后端和两个前端 SWING 和 javaFX,使用 ant 构建脚本我成功地生成了两个独立的和 self包含 dssSWING.jar 和 dssJavaFX.jar 的 jar 文件,每个文件都能够自行提取其中的数据库并在每个文件中嵌入第三方依赖项,这是我用来生成两者的 ant 代码


<!--this build target is meant for building the AJAX SWING (web version) and the Desktop version-->    
<target name="_desktop_SWING_RedistributableSingleJarFile">
    <jar destfile="${basedir}/dss.jar">                    
        <zipgroupfileset dir="protected/lib" includes="h2-1.4.182.jar"/>               
        <zipgroupfileset dir="protected/lib" includes="commons-csv-1.0.jar"/>      
        <fileset dir="${basedir}/build/classes">
            <exclude name=".netbeans_automatic_build"/> 
            <exclude name=".netbeans_update_resources"/> 
            <exclude name="mobileView/**"/>
        </fileset>
        <fileset dir="protected/data" includes="dss.mv.db" />
        <fileset dir="img" >
            <exclude name="Thumbs.db"/>                  
        </fileset> 
        <manifest>
            <attribute name="Main-Class" value="desktopView.WelcomePage"/>
        </manifest>        
    </jar>
</target>

<!--this build target is meant for building the JavaFX version--> 
<target name="_desktop_javaFX_RedistributableSingleJarFile">
    <jar destfile="${basedir}/dss_javaFX.jar">        
        <zipgroupfileset dir="protected/lib" includes="h2-1.4.182.jar"/>             
        <zipgroupfileset dir="protected/lib" includes="commons-csv-1.0.jar"/>                        
        <zipgroupfileset dir="protected/lib" includes="jfxtras-labs-8.0-r4-20141129.090224-39.jar"/>          
        <fileset dir="${basedir}/build/classes">
            <exclude name=".netbeans_automatic_build"/> 
            <exclude name=".netbeans_update_resources"/> 
            <exclude name="desktopView/**"/>
        </fileset>        
        <fileset dir="protected/data" includes="dss.mv.db" />
        <fileset dir="img" >
            <exclude name="Thumbs.db"/>                  
        </fileset> 
        <manifest>
            <attribute name="Main-Class" value="mobileView.Main"/>
        </manifest>        
    </jar>
</target>

请不要告诉它进入 javaFX 项目(简单的方法),我想学习确切的 ant 脚本来生成嵌入在 javaFX jar 文件以及 jnlp 文件中的 HTML 文件

【问题讨论】:

    标签: java netbeans ant javafx-8


    【解决方案1】:

    This website 应该告诉你所有你需要知道的关于 ant 部署任务的幕后发生的事情,因此,它还包括指向你需要的所有 ant 任务和设置的链接,以便创建诸如 jnlp 等之类的东西。

    TL;DR,您与 ant-javafx.jar 交互,您“重载”(或您在 ant 世界中的任何名称)fx:deploy 任务,设置一些属性,然后奇迹发生了。

    如果您想了解 netbeans 如何处理 .jnlp 创建的细节,我将(最)相关(3000 行).xml 文件上传到 pastebin http://pastebin.com/hRBpMuUG

    希望对您有所帮助.. 祝您好运!

    【讨论】:

      【解决方案2】:

      TL;DR;事实上,我已经成功生成了 jnlp 和 html 文件,它的确切代码是,此代码输出 java_DSS.jnlp、java_DSS.html 最后要使其正常工作,原始 javaFX jar 文件必须位于同一目录中


      <fx:deploy width="100%" height="100%"
              outdir="web-dist" outfile="java_DSS" 
              offlineAllowed="true">
          <fx:info title="java DSS"/>
          <fx:application refid="java DSS"/>
          <fx:resources>
              <fx:fileset dir="${basedir}">
                 <include name="dss_javaFX.jar"/>
              </fx:fileset>
          </fx:resources>
      </fx:deploy>  
      

      最后我的努力变成了浪费,需要对 javaFX webstart 或 HTML 嵌入进行签名,以便能够以对数据库的写/读访问权限运行,我有可用的 ant 代码来进行签名,但我没有有效的'keyStore' 文件为了让它签名,签名过程也不接受用&lt;target&gt; 构建的jar 文件,它必须用&lt;fx:jar&gt; 构建才能工作,不幸的是&lt;fx:jar&gt; 不支持嵌入外部库文件,您必须先解压缩库,然后才能添加它们,TLDR

      如果您想要自定义 ant 构建的 javaFX jar、jnlp、html 文件,甚至不用费心,您会浪费很多时间。我浪费了 6 个小时试图以无法在 webstart 或 html 嵌入模式下运行的未签名输出结束

      解决方案

      我所做的是构建 ant javaFX jar 文件,创建了一个新的 javaFX 项目并在那里添加了 javaFX jar 文件,使该项目的主类成为我的 javaFX jar 文件的“启动器”,在 5 分钟内我有一个签名的 jar 、jnlp 和 html,而无需将我的“主”项目转换为 javaFX 项目,简而言之,只需制作一个 javaFX 的“启动器”项目而不是自己制作,netbeans 将处理所有签名和复杂的东西

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-23
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        • 2015-07-04
        • 1970-01-01
        • 2019-02-09
        • 1970-01-01
        相关资源
        最近更新 更多