Skip to content

Commit

Permalink
release of version 8.4.0
Browse files Browse the repository at this point in the history
* updated README.md
* updated CHANGELOG.md
* changed the order of some properties inside javafx/JavaFXGradlePluginExtension.java
  • Loading branch information
FibreFoX committed Mar 11, 2016
1 parent 330003a commit a2cbb02
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 28 deletions.
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,33 @@
Release Notes
=============

# Version 8.4.0 (11-Mar-2016)

New:
* introduced `jfxRun` task
* introduced `jfxGenerateKeyStore` task
* when creating JNLP-files, your can now choose between Blob Signing (which was introduced since JavaFX but seems has never worked, and will be removed from Java 9) or normal signing done by `jarsigner` by providing the new proverty `noBlobSigning: true`

Improvement:
* added appveyor for building javafx-gradle-plugin on windows

Starting with this release I will keep the [javafx-gradle-plugin](https://github.com/FibreFoX/javafx-gradle-plugin) and the [javafx-maven-plugin](https://github.com/javafx-maven-plugin/javafx-maven-plugin) in sync. This means, that you can compare the features of each plugin by comparing its major- and minor-version-number, I'm using [semantic versioning v2](http://semver.org/spec/v2.0.0.html).

Next thing will be to create some tests and example-projects.



# Version 1.3 (08-Mar-2016)

Bugfixes:
* replace backslash with normal slash within JNLP-files
* add signing-feature for bundler with ID "jnlp" (by setting `"jnlp.allPermisions": true` inside bundleArguments)
* fixed size-attributes within JNLP-files when using bundler with ID "jnlp" and requesting to sign the jars

Next versions will be in sync with the javafx-maven-plugin, mostly to have a better visual sign what feature-set exists. This means to me, that I still have to do some work ;)



# Version 1.2 (10-Feb-2016)

New:
Expand All @@ -9,6 +36,7 @@ New:
As there seems to be no good way for having something like maven-invoker-plugin (which is used for the javafx-maven-plugin), I still need to find a nice way having buildable example-projects.



# Version 1.1 (28-Jan-2016)

Bugfixes:
Expand Down
97 changes: 77 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
[![Build Status](https://travis-ci.org/FibreFoX/javafx-gradle-plugin.svg?branch=master)](https://travis-ci.org/FibreFoX/javafx-gradle-plugin)
[![Build status](https://ci.appveyor.com/api/projects/status/19tkbde1wrw8mc8h/branch/master?svg=true)](https://ci.appveyor.com/project/FibreFoX/javafx-gradle-plugin/branch/master)
[![Maven Central](https://img.shields.io/maven-central/v/de.dynamicfiles.projects.gradle.plugins/javafx-gradle-plugin.svg)](https://maven-badges.herokuapp.com/maven-central/de.dynamicfiles.projects.gradle.plugins/javafx-gradle-plugin)

# JavaFX-Gradle-Plugin
JavaFX-Gradle-Plugin
====================

In the need of some equivalent of the [javafx-maven-plugin](https://github.com/javafx-maven-plugin/javafx-maven-plugin) just for gradle, this project was born. A lot of you might have used the [`javafx-gradle`-plugin from Danno Ferrin](https://bitbucket.org/shemnon/javafx-gradle/), but he decided [to not continue](https://bitbucket.org/shemnon/javafx-gradle/issues/47/adding-manifest-attribute-javafx#comment-24360784) that project.

I've never got green with gradle myself, but that didn't withhold me from doing some research and finally I tinkered this tiny gradle-plugin.
Using javafx-gradle-plugin enhances your build-script with `javapackager`-power. No more using Apache Ant-calls, because this gradle-plugin wraps all calls and introduces workarounds and fixes for not-yet-fixed JDK-bugs.

As this is my very first productive contact with gradle, please file separate issues so discuss the current solution.

# Example `build.gradle`
Example `build.gradle`
======================

Please adjust your parameters accordingly:

```groovy
buildscript {
dependencies {
classpath group: 'de.dynamicfiles.projects.gradle.plugins', name: 'javafx-gradle-plugin', version: '1.2'
classpath group: 'de.dynamicfiles.projects.gradle.plugins', name: 'javafx-gradle-plugin', version: '8.4.0'
}
repositories {
Expand All @@ -40,39 +42,94 @@ apply plugin: 'javafx-gradle-plugin'
// configure javafx-gradle-plugin
jfx {
verbose = true
mainClass = 'com.something.cool.MainApp'
appName = 'project'
manifestAttributes = [
someElement: "hello world"
]
jfxMainAppJarName = 'myProject.jar'
mainClass = "com.something.cool.MainApp"
jfxAppOutputDir = "build/jfx/app"
jfxMainAppJarName = "project-jfx.jar"
deployDir = "src/main/deploy"
// gradle jfxJar
css2bin = false
preLoader = null
updateExistingJar = false
allPermissions = false
manifestAttributes = null // Map<String, String>
addPackagerJar = true
// gradle jfxNative
identifier = null // setting this for windows-bundlers makes it possible to generate upgradeable installers (using same GUID)
vendor = "some serious business corp."
nativeOutputDir = "build/jfx/native"
bundler = "ALL" // set this to some specific, if your don't want all bundlers running, examples "windows.app", "jnlp", ...
jvmProperties = null // Map<String, String>
jvmArgs = null // List<String>
userJvmArgs = null // Map<String, String>
launcherArguments = null // List<String>
nativeReleaseVersion = "1.0"
needShortcut = false
needMenu = false
bundleArguments = [
// dont bundle JRE (not recommended, but increases build-size/-speed)
runtime: null
]
// to only use ONE bundler, you can specify it by name
// bundler = "windows.app"
appName = "project" // this is used for files below "src/main/deploy", e.g. "src/main/deploy/windows/project.ico"
additionalAppResources = null // path to some additional resources when creating application-bundle
secondaryLaunchers = [[appName:"somethingDifferent"], [appName:"somethingDifferent2"]]
fileAssociations = null // List<Map<String, Object>>
noBlobSigning = false // when using bundler "jnlp", you can choose to NOT use blob signing
skipNativeLauncherWorkaround124 = false
skipNativeLauncherWorkaround167 = false
skipJNLPRessourcePathWorkaround182 = false
skipSigningJarFilesJNLP185 = false
skipSizeRecalculationForJNLP185 = false
// gradle jfxGenerateKeyStore
keyStore = "src/main/deploy/keystore.jks"
keyStoreAlias = "myalias"
keyStorePassword = "password"
keyPassword = null // will default to keyStorePassword
keyStoreType = "jks"
overwriteKeyStore = false
certDomain = null // required
certOrgUnit = null // defaults to "none"
certOrg = null // required
certState = null // required
certCountry = null // required
}
```

To create jfx-jar just call `gradle jfxJar`, for creating native bundle just call `gradle jfxNative`.

Gradle Tasks
============

* `gradle jfxJar` - Create executable JavaFX-jar
* `gradle jfxNative` - Create native JavaFX-bundle (will run `jfxJar` first)
* `gradle jfxRun` - Create the JavaFX-jar and runs it like you would do using `java -jar my-project-jfx.jar`
* `gradle jfxGenerateKeyStore` - Create a Java keystore


Last Release Notes
==================

**Version 1.2 (10-Feb-2016)**
**Version 8.4.0 (11-Mar-2016)**

New:
* added workaround for issue #12 regarding [file descriptor leak inside the JDK starting from 1.8.0_60](https://bugs.openjdk.java.net/browse/JDK-8148717)
* introduced `jfxRun` task
* introduced `jfxGenerateKeyStore` task
* added the ability to sign jar-files with normal jarsigner-method instead of the deprecated blob-signing method which was introduced with JavaFX

Improvement:
* added appveyor for building javafx-gradle-plugin on windows

Starting with this release I will keep the [javafx-gradle-plugin](https://github.com/FibreFoX/javafx-gradle-plugin) and the [javafx-maven-plugin](https://github.com/javafx-maven-plugin/javafx-maven-plugin) in sync. This means, that you can compare the features of each plugin by comparing its major- and minor-version-number, I'm using [semantic versioning v2](http://semver.org/spec/v2.0.0.html).

As there seems to be no good way for having something like maven-invoker-plugin (which is used for the javafx-maven-plugin), I still need to find a nice way having buildable example-projects.
Next thing will be to create some tests and example-projects.


(Not yet) Release(d) Notes
==================
==========================

upcoming Version 8.4.1 (???-2016)

upcoming Version 1.3 (???-2016)
*(nothing changed yet)*
* nothing changed yet
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ dependencies {

group = 'de.dynamicfiles.projects.gradle.plugins'
archivesBaseName = 'javafx-gradle-plugin'
version = '8.4.0-SNAPSHOT'
version = '8.4.0'

ext.isReleaseVersion = !version.endsWith("SNAPSHOT")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,22 +56,22 @@ public class JavaFXGradlePluginExtension {
private Map<String, String> bundleArguments = null;
private String appName = null;
private String additionalAppResources = null;
private boolean skipNativeLauncherWorkaround124 = false;
private boolean skipNativeLauncherWorkaround167 = false;
private List<Map<String, Object>> secondaryLaunchers = null;
private List<Map<String, Object>> fileAssociations = null;

private boolean skipNativeLauncherWorkaround124 = false;
private boolean skipNativeLauncherWorkaround167 = false;
private boolean skipJNLPRessourcePathWorkaround182 = false;
private boolean skipSigningJarFilesJNLP185 = false;
private boolean skipSizeRecalculationForJNLP185 = false;
private boolean noBlobSigning = false;

// GenerateKeyStoreMojo
private String keyStore = "src/main/deploy/keystore.jks";
private String keyStoreAlias = "myalias";
private String keyStorePassword = "password";
private String keyPassword = null;
private String keyStoreType = "jks";
private boolean skipSigningJarFilesJNLP185 = false;
private boolean skipSizeRecalculationForJNLP185 = false;
private boolean noBlobSigning = false;

// GenerateKeyStoreMojo
private boolean overwriteKeyStore = false;
private String certDomain = null;
private String certOrgUnit = null;
Expand Down

0 comments on commit a2cbb02

Please sign in to comment.