GroovyFX应用程序使用gradle运行

时间:2014-09-15 18:41:57

标签: groovy gradle groovyfx

我有下一个样本(来自groovyfx网站),这是一个简单的窗口。

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)
        }
      }
    }
  }
}

如何使用gradle run运行它?

我的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
}

我可以从IDE运行它,但是如何使用cli运行它,然后使用Main类的路径构建jar?

1 个答案:

答案 0 :(得分:1)

它适用于以下配置。

结构:

  • 的build.gradle
  • 的src /
      • 常规
        • Main.groovy

<强>的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)
        }
      }
    }
  }
}

您是否已经看过this网站?