Gradle задача для запуска Nashorn JavaScript

Может ли быть аналог gradle/groovy кода для запуска java -Djava.library.path=lib -jar lib/avatar-js.jar helloWorld.js, то есть, запуская файл.js с Java 8 и передавая некоторые библиотеки

или используя определенные зависимости

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'

repositories {
    maven {
        url "https://maven.java.net/content/repositories/public/"
    }
}

dependencies {
    compile "com.oracle:avatar-js:0.10.25-SNAPSHOT"
    compile "com.oracle:libavatar-js-win-x64:0.10.25-SNAPSHOT"
}

task copyLibs(type: Copy) {
    from configurations.compile
    into 'lib'
}

sourceSets {
    main {
        java {
            srcDir 'src'
        }
        resources {
            srcDir 'src '
        }
    }
}

Единственные связанные документы, которые я нашел ( Построить и запустить jar внутри задачи Gradle) - это строка из главы 45. Плагин приложения

 startScripts   jar     CreateStartScripts  Creates OS specific scripts to run the project as a JVM application.

Плагины приложений зависят от Java, для определения задачи для JavaScript или C/C++ не требуется CreateStartScripts String mainClassName (не файл для запуска)

Источники на https://github.com/PaulVI/NashornSandbox

1 ответ

Решение

Здесь у вас есть 2 задачи, которые будут запускать сервер:

task runHelloWorld(type: Exec) {
    commandLine 'java', '-Djava.library.path=lib', '-jar', 'lib/avatar-js.jar', 'helloWorld.js'
}

task runHelloWorld2(type: JavaExec) {
    args 'helloWorld.js'
    main 'com.oracle.avatar.js.Server'
    systemProperties 'java.library.path':'lib'
    classpath 'lib/avatar-js.jar'
}
Другие вопросы по тегам