Commits

shemnon committed 779ce3e

add gradle

Comments (0)

Files changed (1)

src/main/resources/org/bitbucket/shemnon/preso/deploy/preso.md

     * DEB - Debian Package
     * RPM - Red Hat Package
 
+
+------
+
+### Native Bundles are Self Contained
+
+* JRE is embedded
+
+
+* JDK8 (draft JSR) allows for stripped runtimes
+i.e. you can strip out
+    * Swing
+    * CORBA
+    * XSLT
+    
+    
+* I Lied: you can configure it to use the System JRE if desired.
+Note: this is not the default.
+
 ------
 
 ### Four Build Approaches
 ### Maven JavaFX Plugin Goals
 
 
-* `jfx:native` - Generates the native bundles
+* `jfx:run` - Runs the program from the build directory
 
 
-* `jfx:run` - Runs the program from the build directory
+* `jfx:native` - Generates the native bundles
+results show up in `target/jfx/native/bundles/`
 
 
 * `jfx:jar` - Creates an executable 'fat' jar
+results show up in `target` 
 
 
 * `jfx:web` - Creates JNLP packaging for applet 
 
+
+results show up in 
+
+------ 
+
+[ ]()
+
+[ ]()
+
+[ ]()
+
+[ ]()
+
+# Gradle
+
+------
+
+### Gradle is the best parts of Maven and Ant
+
+* Defaults to useing the Maven Directory Layout
+
+
+* Built-in integration of Maven Repositories
+
+
+* Customizable build logic
+
+
+* Tasks are written in Groovy
+An imperative rather than declarative language for imperative work.
+
+------
+
+### Why use Gradle JavaFX Plugin?
+
+
+* Easier Multi-Platform Icons with the JavaFX Plug-in.
+
+
+* Easier Multi-Platform Configuration with the JavaFX Plug-in.
+
+
+* Easier integration of complex task logic.
+
+
+------
+
+### How to install Gradle JavaFX Plugin
+
+Two Approaches
+
+* Use a script form the internet
+`apply from: 'http://dl.bintray.com/content/shemnon/`
+`javafx-gradle/0.3.0/javafx.plugin'`
+
+
+* Embed the script in your build 
+`apply from: 'buildSrc/javafx.plugin'`
+(Copy the script from bintray into `buildSrc/javafx.plugin` first)
+
 ------
 
+### Gradle File Conventions
+
+* Unless specified otherwise, it is the same as Maven.
+
+
+* Build output is in `build` instead of `target`
 
 
+* Package Overrides are in `src/deploy/package`
+
+
+------
+
+###  Icon File Conventions
+
+* Icons are generated from source images
+
+
+Images are stored in `src/deploy/package/`
+
+File format is `<kind>[-<size>[@2x]].<png|gif>`
+
+Kinds
+
+* `shortcut`
+* `volume`
+* `setup`
+ 
+Sizes Mac is Happy to have: 16,32,128,256,512
+
+`@2x` says the icon is a retna sized icon
+
+------
+
+### Icon Build Script Conventions
+
+Icons can also be manually specified.  
+Useful for removing duplicate files. 
+
+    // app icons
+    icons {
+        shortcut = ['shortcut-16.png', 'shortcut-32.png' /*, ...*/ ]
+        volume = 'javafx-icon.png'
+        setup = 'javafx-icon.png'
+    }
+
+
+> #### Protip
+> Use only the file conventions or the build script conventions.
+> If you use build script conventions no file conventions will be used.
+
+------
+
+### Configuring MetaData Part 1
+
+Metadata is configued via a `javafx` block.
+Metadata is re-used across all tasks.
+
+
+    javafx {
+        appID 'shortName'
+        appName 'Pretty Name'
+        mainClass 'com.example.Application'
+    
+        jvmArgs = ['-XX:+AggressiveOpts', '-XX:CompileThreshold=1']
+        systemProperties = [ 'prism.disableRegionCaching':'true' ]
+        arguments = ['args']
+    
+        embedLauncher = true 
+        // caution: if embedLauncher is set to false
+        // class-path manifest attributes are erased
+------
+
+### Configuring MetaData Part 1
+    
+        // deploy/info ant attributes        
+        category = 'demo'
+        copyright = 'Copyright (c) 2013 Danno Ferrin'
+        description = 'Verbose app description'
+        licenseType = '3 clause BSD'
+        vendor = 'Me!'
+    
+        // deploy/preferences ant attributes
+        installSystemWide = true
+        menu = true
+        shortcut = true
+    
+    }
+
+------
+
+### Metadata Profiles
+
+Some configuration variables mean different things on different OSes.
+
+You can add a `profiles` block to the `javafx` block to switch them out
+
+    profiles {
+        windows {
+            id = 'c533f663-1efd-489f-b910-4c7ec20c7fd0'
+            javaRuntime = 'C:/Program Files (x86)/Java/jdk1.7.0_21'
+        }
+
+        macosx {
+            id = 'net.java.openjdk.openjfx.Ensemble2'
+            category = 'public.app-category.developer-tools'
+        }
+    }
+
+------
+
+### Gradle Tasks
+
+The ones you want to use
+
+* `assemble` - Builds the native assemblies
+Native Assemblines show up in build/deploy/bundles
+
+
+* `run` - Runs the application from the build directory
+ 
+ 
+* `debug` - Runs with the debugger started in listener mode.
+
+------
+
+### More Gradle Tasks
+
+Other ones the plugin provides that you rarely need to use
+
+* `cssToBin` 
+* `jfxjar`
+* `generateDebugKey`
+* `jfxSignJar`
+* `jfxCopyLibs`
+* `jfxDeploy`
+*  `scenicview`
+
+------
+
+[ ]()
+
+[ ]()
+
+[ ]()
+
+# Questions?
+
+[ ]()
+
+# Answers!
+
+------
+
+
+[ ]()
+
+[ ]()
+
+# Thank You!
+
+[ ]()
+
+#Danno Ferrin
+#@shemnon
+#danno.ferrin@shemnon.com
+
+------
+