1 <project name="Test" default="package"  xmlns:fx="javacom.sun.javafx.tools.ant">
   2   <echo>
   3     java_home
   4   </echo>
   5 <echo>
   6   ${java.home}
   7 </echo>
   8 
   9 <taskdef resource="com/sun/javafx/tools/ant/antlib.xml"
  10          uri="javacom.sun.javafx.tools.ant"
  11          classpath="${java.home}/lib/ant-javafx.jar;."/>
  12 
  13 <property name="src.dir" value="src"/>
  14 <property name="build.dir" value="build"/>
  15 <property name="classes.dir" value="${build.dir}/hello.world"/>
  16 <property name="bundles.dir" value="output"/>
  17 
  18 <target name="clean">
  19   <delete dir="${build.dir}"/>
  20   <delete dir="${bundles.dir}"/>
  21 </target>
  22 
  23 <target name="compile">
  24   <mkdir dir="${build.dir}"/>
  25   <mkdir dir="${classes.dir}"/>
  26   <javac includeantruntime="false"
  27          srcdir="${src.dir}"
  28          destdir="${classes.dir}"/>
  29   <copy todir="${classes.dir}">
  30     <fileset dir="${src.dir}">
  31       <exclude name="**/*.java"/>
  32     </fileset>
  33   </copy>
  34 </target>
  35 
  36 <target name="jar" depends="compile">
  37   <mkdir dir="${build.dir}/modules"/>
  38   <jar destfile="${build.dir}/modules/hello.world.jar" basedir="${build.dir}/hello.world">
  39     <manifest>
  40        <attribute name="Main-Class" value="com.greetings.HelloWorld"/>
  41      </manifest>
  42   </jar>
  43 </target>
  44 
  45 <mkdir dir="${bundles.dir}"/>
  46 
  47 <target name="package" depends="jar">
  48     <fx:deploy outdir="${bundles.dir}"
  49                outfile="Test"
  50                nativeBundles="native"
  51                verbose="true"
  52                versionCheck="false">
  53 
  54         <fx:runtime detect-modules="true" strip-native-commands="false">
  55             <fx:add-modules value="java.base"/>
  56             <fx:add-modules value="jdk.packager.services,javafx.controls"/>
  57             <fx:limit-modules value="java.sql"/>
  58             <fx:limit-modules value="jdk.packager.services,javafx.controls"/>
  59             <fx:module-path value="${java.home}/../images/jmods"/>
  60             <fx:module-path value="${build.dir}/modules"/>
  61         </fx:runtime>
  62 
  63         <fx:application id="Test"
  64                         name="Test"
  65                         version="1.0"
  66                         module="hello.world"
  67                         mainClass="com.greetings.HelloWorld">
  68         </fx:application>
  69 
  70         <!-- Used to include resources -->
  71         <!--<resources>
  72             <fileset dir="${bundles.dir}" includes="**/*"/>
  73         </resources>-->
  74 
  75         <fx:info title="Test"
  76                   vendor="Oracle"
  77                   description="Java Packager Demo"
  78                   category="Test"
  79                   copyright="(c) 2016 Oracle"
  80                   license="3 Clause BSD">
  81         </fx:info>
  82 
  83         <fx:bundleArgument arg="win.exe.systemWide" value="true"/>
  84         <fx:bundleArgument arg="win.menuGroup" value="Games"/>
  85         <fx:bundleArgument arg="mac.dmg.simple" value="true"/>
  86         <fx:bundleArgument arg="signBundle" value="false"/>
  87         <!-- <fx:bundleArgument arg="linux.bundleName" value="file-association-demo"/> -->
  88         <!-- <fx:bundleArgument arg="email" value="maintainer@example.com"/> -->
  89         <fx:bundleArgument arg="mac.CFBundleName" value="Test"/>
  90 
  91         <fx:secondaryLauncher name="Test2"
  92                               module="hello.world"
  93                               mainClass="com.greetings.HelloWorld">
  94             <!--<fx:jvmuserarg name="-Xmx" value="1g"/>-->
  95         </fx:secondaryLauncher>
  96     </fx:deploy>
  97 </target>
  98 
  99 </project>