i have the next sample (from groovyfx site), it's simple window.
import static groovyx.javafx.GroovyFX.start
start {
stage(title: 'GroovyFX Hello World', visible: true) {
scene(fill: BLACK, width: 700, height: 250) {
hbox(padding: 60) {
text(text: 'Groovy', font: '80pt sanserif') {
fill linearGradient(endX: 0, stops: [PALEGREEN, SEAGREEN])
}
text(text: 'FX', font: '80pt sanserif') {
fill linearGradient(endX: 0, stops: [CYAN, DODGERBLUE])
effect dropShadow(color: DODGERBLUE, radius: 25, spread: 0.25)
}
}
}
}
}
How to run it with gradle run
?
my build.gradle
:
apply plugin: 'groovy'
sourceCompatibility = 1.8
targetCompatibility = 1.8
project.ext.set('javafxHome', System.env['JAVAFX_HOME'])
repositories {
mavenCentral()
}
configurations {
ivy
}
dependencies {
ivy "org.apache.ivy:ivy:2.3.0"
compile 'org.codehaus.groovy:groovy-all:2.3.6'
compile 'org.codehaus.groovyfx:groovyfx:0.4.0'
compile files("${javafxHome}/rt/lib/jfxrt.jar")
}
tasks.withType(GroovyCompile) {
groovyClasspath += configurations.ivy
}
I might run it from IDE, but how to run it with cli and then build jar with path to Main class?
It works in the following configuration.
Structure:
build.gradle
apply plugin: 'groovy'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
configurations {
ivy
}
dependencies {
ivy "org.apache.ivy:ivy:2.3.0"
compile 'org.codehaus.groovy:groovy-all:2.3.6'
compile 'org.codehaus.groovyfx:groovyfx:0.4.0'
compile files("${System.getenv('JAVA_HOME')}/jre/lib/ext/jfxrt.jar")
}
tasks.withType(GroovyCompile) {
groovyClasspath += configurations.ivy
}
task run(type: JavaExec) {
main = 'Main'
classpath sourceSets.main.runtimeClasspath
}
Main.groovy
import static groovyx.javafx.GroovyFX.start
start {
stage(title: 'GroovyFX Hello World', visible: true) {
scene(fill: BLACK, width: 700, height: 250) {
hbox(padding: 60) {
text(text: 'Groovy', font: '80pt sanserif') {
fill linearGradient(endX: 0, stops: [PALEGREEN, SEAGREEN])
}
text(text: 'FX', font: '80pt sanserif') {
fill linearGradient(endX: 0, stops: [CYAN, DODGERBLUE])
effect dropShadow(color: DODGERBLUE, radius: 25, spread: 0.25)
}
}
}
}
}
Have You already seen this site?